В бессерверной стратегии AWS контейнеры находятся в центре внимания

Lambda была самым популярным продуктом AWS в первые два года после запуска. Однако с тех пор контейнеры оказались в центре внимания, оставив бессерверные решения и Lambda далеко позади. Хотя с Lambda проще начать работу и поддерживать ее, у нее есть некоторые недостатки, когда речь идет о затратах и настройке для сложных случаев корпоративного использования. В этом случае мы видим, что AWS осторожно действует, улучшая свои бессерверные предложения и смешивая их с контейнерами. В этом посте мы рассмотрим все последние крупные объявления от AWS в этой бессерверной и контейнерной среде.
AWS App Runner: новый простой способ запуска контейнеров
AWS не оставляет камня на камне в своем стремлении упростить запуск контейнеров. Их последняя разработка — App Runner. Это служба, созданная для запуска любого образа контейнера, который вы создаете в репозитории исходного кода или из реестра контейнеров, и запускаете его бессерверным способом. Чтобы быть уверенным, App Runner — это отдельный сервис от Lambda. Хотя AWS также поддерживает Lambda возможностью запускать контейнеры, что звучит очень похоже.
Однако с помощью App Runner AWS стремится максимально упростить управление контейнерами. Так же просто, как указать на целевой контейнер, задать несколько конфигураций в форме и нажать кнопку. Для этого не нужны навыки работы с облачной инфраструктурой. Это идеально подходит для разработчиков приложений в стартапах или команд, создающих MVP, которым не нужны все навороты полноценного приложения, но которым нужен быстрый старт и возможность легкого автомасштабирования.
AWS Proton: предоставление облачных ресурсов в виде шаблонов
AWS Proton реализует модель платформы, которая набирает обороты на многих предприятиях. Это позволяет командам инфраструктуры предоставлять шаблоны услуг, которые могут использоваться группами разработчиков для любых новых микросервисов, которые им необходимо развернуть. Эти службы могут использоваться для различных целей, например, веб-служба или служба обработки данных. Они могут работать на Lambda или Fargate. Группа инфраструктуры может объединить несколько сервисов AWS, таких как CodePipeline для CI/CD, и инструментов мониторинга, таких как CloudWatch, и указать, какие версии сервиса они хотели бы, чтобы разработчики запускали. Все, что нужно сделать разработчику, — это нажать кнопку, и шаблон службы создаст необходимые ресурсы. Для инфраструктурных команд преимущество мониторинга того, какие службы используются какими командами, имеет неоценимое значение.
Отчет о состоянии DevOps за 2020 год показывает, что модель платформы набирает обороты в высокопроизводительных и зрелых командах DevOps. AWS Proton — это шаг в правильном направлении, обеспечивающий этот подход с использованием бессерверных облачных сервисов, таких как Lambda и Fargate. Конечная цель этого — повысить производительность разработчиков и в то же время обеспечить безопасность и надежность для команд инфраструктуры. Преимуществом является то, что сама инфраструктура является бессерверной и полностью управляется AWS.
Lambda теперь поддерживает функции, упакованные в контейнеры.
AWS объявил, что Lambda теперь будет поддерживать загрузку кода, упакованного в образ контейнера, что было воспринято как явный признак того, что облачная экосистема в большей степени отдает предпочтение контейнерам, а не бессерверным. Раньше вы могли загружать код в Lambda только как функции. Это открывает возможность использовать Lambda для более широкой аудитории. Пользователи контейнеров работают со сложными стеками, и это требуется для большинства корпоративных приложений. Однако для многих новых и более простых приложений с нуля вам может понадобиться что-то, что легко запустить (например, бессерверное), а также открытое для глубокой настройки (например, контейнеры). Это аудитория, которая хотела бы использовать вариант изображения контейнера Lambda. Сегодня это небольшая промежуточная аудитория, но по мере дальнейшего сближения контейнеров и бессерверных технологий в ближайшие годы мы можем увидеть больше такого рода мэшапов.
У AWS уже есть что-то подобное в виде Fargate, где вы можете запускать контейнеры в бессерверной инфраструктуре. К сожалению, AWS-версия полна совпадений, и это всего лишь еще один пример этого. Однако, если вы требовательны к тому, чтобы иметь в своем распоряжении только правильную комбинацию облачных ресурсов, чем больше, тем лучше, и контейнеры на Lambda — долгожданное дополнение.
Lambda позволяет обрабатывать данные S3 на лету
S3 — один из наиболее часто используемых сервисов Amazon Web Services, и AWS хочет максимально упростить использование Lambda с S3. Раньше вам приходилось создавать отдельное временное хранилище для данных, откуда они обрабатываются Lambda, а выходные данные отправляются в приложение. Теперь AWS сократила количество шагов в этом процессе, позволив вам обрабатывать данные S3 по мере их извлечения. Вам не нужно хранить эти данные, что сокращает время обработки, упрощает операции и снижает затраты. Вы можете использовать это для таких случаев использования, как удаление данных PII из данных перед их отправкой в приложение или добавление новых слоев обогащения в набор данных или преобразование данных из одного формата в другой.
Расширения Lambda созданы специально для запуска агентов.
Организации используют множество инструментов для мониторинга и обеспечения безопасности. Эти инструменты полагаются на агентов, которые получают данные из разных частей системы. Некоторыми примерами этих инструментов являются Splunk, New Relic и Datadog. Lambda отлично справляется с выполнением краткосрочных задач, которые являются эфемерными. Однако у этих инструментов есть агенты, которые работают долго, и Lambda не идеально подходит для запуска этих агентов. Стремясь решить эту проблему, AWS создает расширения Lambda, которые позволяют организациям легко запускать агенты для этих инструментов. AWS сделала расширения для этих инструментов легкодоступными, поэтому их можно развертывать без лишних хлопот и использовать в Lambda в течение длительного времени. AWS также упростила отправку данных из этих расширений в другие сервисы AWS, такие как S3, Kinesis или Elasticsearch, для дальнейшей обработки.
CloudFront Functions для чрезвычайно легкой пограничной обработки
CloudFront — это сервис CDN AWS, который используется для доставки приложений по всему миру с чрезвычайно низкими задержками. Часто этим приложениям необходимо обрабатывать данные в том месте, где они потребляются. В настоящее время CloudFront имеет около 218 местоположений по всему миру. Ранее AWS запустил [email protected], который идеально подходит для обработки данных среднего уровня на периферии. Он позволяет выполнять преобразование изображений на лету или создавать динамические веб-приложения. Однако для многих пограничных сценариев все, что вам нужно, — это упрощенная обработка, такая как редактирование и заголовок URL или HTTP. Для этих несложных задач [email protected] является излишним. Вот почему AWS запустила функции CloudFront, которые запускаются при каждом запросе CloudFront и подходят для легких задач с краткосрочными данными. Основное различие между этими двумя сервисами заключается в том, что CloudFront Functions чрезвычайно легкий и быстрый по сравнению с [email protected]. Он использует среду выполнения JavaScript, а не Node или Python, которые использует [email protected], и имеет максимальное время выполнения менее 1 миллисекунда по сравнению с 5 секундами [email protected].
AWS, сочетающий бессерверность и контейнеризацию: множество вариантов
AWS всегда занят выпуском новых продуктов и услуг каждый месяц. Будучи ведущим поставщиком облачных услуг, AWS действительно определяет, как развивается отрасль. Сегодня мы видим, как AWS мастерски сочетает в себе два мира: бессерверность и контейнеризацию. Результатом является ослепительный набор опций для каждого варианта использования, от простого до сложного. Сегодня контейнеры имеют преимущество. Через несколько лет это вполне может измениться. AWS тщательно страхует свои ставки не только на сегодняшний день, но и на то, как эта битва закончится в конечном итоге.