AWS и бессерверная архитектура

Это руководство для начинающих по бессерверной архитектуре и AWS. В нем обсуждается, что на самом деле представляют собой эти термины, и объясняется, как они используются. Он не будет использоваться и развертываться, но, пожалуйста, вернитесь к будущему сообщению по этим темам.

Что такое «бессерверная архитектура»?

Для тех, кто только когда-либо знал мир, в котором приложение может быть «бессерверным», может быть трудно точно определить, что именно это означает, поскольку в наши дни это очень распространенная структура. Это также может быть трудно определить, потому что на самом деле имя не является точным дескриптором. «Бессерверный» подразумевает, что архитектура не имеет сервера, тогда как на самом деле это просто означает, что сервер и все сопутствующие ему обслуживание, подготовка и масштабирование не являются обязанностью владельца приложения. Скорее, владелец приложения развернул приложение, используя что-то вроде AWS, Azure или Heroku (которое также фактически работает на AWS), которое управляет всем сервером и получает плату за свои услуги.

Использование бессерверной архитектуры оказалось чрезвычайно полезным для мира технологий, особенно на начальных этапах разработки новых приложений и платформ. Вот лишь некоторые из преимуществ:

  1. Простота развертывания. Любой, у кого есть доступ в Интернет, может установить и запустить свое приложение на Heroku, который использует AWS под капотом. Уже одно это невероятно. Нет необходимости приобретать и поддерживать сервер. Благодаря интеграции с GitHub это так же просто, как автоматическое повторное развертывание, когда новый код помещается в основную ветку. Бессерверная архитектура устранила огромный барьер, сделав создание и развертывание приложений бесконечно более доступным и доступным.
  2. Возможность масштабирования. Бессерверная архитектура также устраняет самые большие препятствия для масштабирования приложения. Если приложение становится вирусным, нет необходимости создавать дополнительные серверы для обработки трафика. Это просто вопрос смены пакета услуг у провайдера. Более того, это масштабирование можно выполнять постепенно, что подводит меня к следующему пункту…
  3. Эффективное использование. Это в некоторой степени связано с возможностью масштабирования. По существу (для всех моих коллег-экономистов) мы говорим об экономии и, на самом деле, о недостатке эффекта масштаба. Бессерверная архитектура по существу устраняет вес недостатков масштаба в самом высоком смысле. С некоторыми пакетами вы подписываетесь по определенной цене, а затем платите только за то, что фактически используете. Серверы не просто простаивают и ждут, когда их задействует одно приложение, и такое эффективное использование позволяет устанавливать конкурентоспособные и растущие цены.

В мире технологий (и в остальном мире тоже) экономичность + простота + высокое качество = чертовски популярная вещь.

Если вы ищете более простую аналогию и смотрите Кремниевую долину, подумайте о печально известной коробке:

ПРОЧИТАЙТЕ — Если бы классические американские авторы были инженерами-программистами

Что такое АВС?

По их собственным словам:

Amazon Web Services (AWS) — это самая комплексная и широко распространенная облачная платформа в мире, предлагающая более 175 полнофункциональных сервисов из центров обработки данных по всему миру. Миллионы клиентов, в том числе самые быстрорастущие стартапы, крупнейшие предприятия и ведущие государственные учреждения, используют AWS, чтобы снизить затраты, стать более гибкими и быстрее внедрять инновации.

Облачная платформа поддерживает бессерверную архитектуру, которую мы обсуждали выше, а также множество других сервисов для более традиционных инфраструктур. AWS предлагает широкий спектр облачных решений, позволяющих различным командам создавать настраиваемую инфраструктуру, отвечающую их уникальным потребностям. Два продукта, которые я использовал и которые мне нравятся из пакета AWS, — это ElastiCache и Elastic Beanstalk, но я думаю, что большинство согласится с тем, что Lambda действительно находится в авангарде экосистемы AWS. Другие службы включают параметры базы данных (например, DynamoDB, Aurora, служба реляционной базы данных), параметры хранения (S3), аутентификацию и социальную аутентификацию (Cognito) и многое другое.

АВС Лямбда

Lambda — это основа бессерверной архитектуры AWS. С Lambda управление сервером сводится к масштабированию, даже будучи автоматизированным. Lambda уникален тем, что основан на функции/событии. Ваш код работает как обычно, но в дополнение к этому вы можете запускать серверные функции в ответ на различные события в экосистеме AWS, такие как загрузка пользователем фотографии в корзину AWS или создание учетной записи. По этой причине приложения обычно необходимо разрабатывать для работы наAWS Lambda.

Инфраструктура для поддержки такого типа сложности в производстве, мягко говоря, обширна, и в прошлом для многих она была бы неприемлемой. Lambda автоматически поддерживает до 1000 одновременных выполнений, ведение журналов производства с помощью CloudWatch (отличная функция, с которой я настоятельно рекомендую ознакомиться в начале вашего пути к AWS) и легко интегрируется с другими решениями семейства AWS.

Погружаемся глубже в AWS

Вы можете ознакомиться с полной документацией AWS здесь, которая будет полезна при первом знакомстве с этими терминами и этой структурой. Поначалу это может быть ошеломляющим из-за огромного объема и взаимосвязанности системы. Чем больше вы узнаете, тем больше знаний будет щелкать с экспоненциальной скоростью.

Спасибо, что прочитали публикацию «Эксперты отрасли»!

Хотите стать автором публикации? Возможно! Начните с руководства. Наши рекомендации просты, и они приведут вас в правильном направлении! Как всегда, не забудьте зарегистрироваться ниже! Загрузки рисунков доступны по адресу https://www.deviantart.com/paint-writer