Это был невероятный год для бессерверных технологий. Давайте вспомним некоторые удивительные вещи, которые произошли.

4 января я объявил техническое слово года — асинхронность.

Лично я был готов к году обучения архитектуре, управляемой событиями. Я был полон решимости погрузиться на работу в 202 кода состояния и фоновые процессы.

Разработанные мной архитектуры были слабо связаны и полагались на EventBridge для связи между службами. Я даже написал полную серию статей о WebSockets, демонстрирующую, как обновлять ваш пользовательский интерфейс, пока вы ожидаете запуска фоновых задач.

Излишне говорить, что я полностью погрузился в тему года. И я был не единственным.

Сообщество бессерверных систем также было сосредоточено на продвижении асинхронной разработки. В течение года у нас было бесчисленное количество мероприятий, служебных объявлений, сообщений в блогах, видео и подкастов, которые отстаивали преимущества асинхронности. Затем, конечно же, у нас была вишенка на торте re:Invent в «Dr. Основной доклад Вернера Фогеля.

Я, видимо, хороший предсказатель. Асинхронность казалась темой индустрии в 2022 году.

Давайте поговорим о некоторых бессерверных достижениях года, которые включают асинхронное поведение, и других обновлениях, которые просто круты.

Обновления службы

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

EventBridge

EventBridge — это клей, который связывает воедино множество сервисов AWS. 2022 год был отличным годом для этого сервиса, так как он открыл двери для тысяч новых вариантов использования с некоторыми огромными обновлениями.

  • Уведомления о событиях S3 — многие фоновые процессы запускаются при загрузке файла на сайт. EventBridge упростил запуск рабочих процессов Step Function и функций Lambda, инициировав событие при загрузке.
  • Расширенная фильтрация — Говоря о запуске рабочих процессов из загрузки файлов, теперь у нас есть возможность создавать правила EventBridge с фильтрацией на основе содержимого по суффиксам. Это означает, что мы можем запускать рабочие процессы, когда определенные типы файлов загружаются в систему. Мы также получили совпадение без учета регистра и условия ИЛИ.
  • Уведомления о событиях CloudFormation — чтобы запускать рабочие процессы для максимально возможного количества событий, была добавлена ​​поддержка CloudFormation. Вы можете запускать правила при изменении ресурса стека, изменении самого состояния стека или при изменении состояния обнаружения дрейфа. Это отлично подходит для разработчиков платформы, чтобы внимательно следить за изменениями в инфраструктуре и реагировать на них.
  • EventBridge Pipes — теперь мы можем без проблем подключать сервисы без лямбда-клея. Каналы обеспечивают двухточечную интеграцию бесчисленных сервисов и даже предлагают способ преобразования и обогащения контента до того, как он попадет к месту назначения.
  • Планировщик — одной из самых больших отсутствующих нативных функций в AWS в течение длительного времени была возможность запланировать выполнение задачи в определенное время. Для планирования событий было создано множество самодельных решений, но они часто были неточными или тратили впустую вычислительные ресурсы. Но все изменилось, когда появился планировщик. EventBridge теперь имеет возможность добавлять одноразовые или повторяющиеся расписания для запуска задачи. Вы можете запустить задачу в более чем 200 различных службах, поэтому мы снова избегаем лямбда-клея для запуска асинхронного рабочего процесса.
  • Шаблоны на ServerlessLand — если вы еще не добавили его в закладки, пришло время сохранить Serverless Land в избранное. Этот сайт поддерживается командой AWS Serverless DA и является невероятным источником передового опыта и примеров кода. Они даже добавили на сайт совершенно новый раздел для общего кода, который называется фрагменты. На этом сайте было бесценно увидеть несколько практических примеров, которые соответствуют многим выпускам наших любимых сервисов, включая EventBridge.

Вы можете видеть, что основное внимание команды EventBridge уделялось «подключению». От добавления новых собственных событий из таких сервисов, как S3 и CloudFormation, до предоставления потребителям возможности связывать практически все сервисы вместе с каналами, до запуска асинхронных событий как разового или по расписанию, асинхронная разработка была полностью реализована.

Ступенчатые функции

Step Functions — один из моих любимых сервисов AWS. Он обеспечивает способ создания осмысленных организованных рабочих процессов в бессерверной среде. В течение года я провел эксперимент, сравнив его с Lambda, чтобы сравнить стоимость и производительность.

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

  • Локальное издевательство — я регулярно сталкивался с большой жалобой на невозможность локального тестирования Step Functions. Вам нужно было выполнить развертывание в облаке для тестирования. Эта возможность дает нам некоторую поддержку локального тестирования, хотя ничто не сравнится с тестированием в облаке. Ян Цуй даже показал нам, как использовать его со сквозным тестированием, чтобы полностью протестировать ваши рабочие процессы.
  • Новые встроенные функции — если я смогу отказаться от использования лямбда-функции вместо рабочего процесса пошаговой функции, я всегда ее выберу. Добавление 14 новых встроенных функций позволяет использовать множество новых вариантов использования, которые ранее требовали функции. Эти обновления включали некоторые операции с массивами и долгожданные функции States.MathAdd и States.UUID!
  • Визуальное представление для экспресс-рабочих процессов. Для меня большим недостатком экспресс-рабочих процессов была невозможность просматривать выполнение, как в стандартных рабочих процессах. Просмотр журналов выполнения конечного автомата никогда не казался готовой функцией. Но в октябре этого года мы получили опыт, очень похожий на стандартные рабочие процессы, что значительно повысило жизнеспособность экспресс-процессов.
  • Крупномасштабная параллельная обработка — до недавнего времени вы могли запускать до 40 одновременных параллельных итераций в конечном автомате. Это привело к некоторым интересным шаблонам проектирования, когда вы перебирали тысячи записей. Теперь он имеет полную поддержку сценариев использования большого объема с распределенным отображением.

С этими обновлениями создается впечатление, что команда Step Functions была сосредоточена на расширении вариантов использования для увеличения внедрения. На мой взгляд, это уже был отличный сервис, и команда проделала огромную работу, чтобы сделать его еще лучше. Я бы хотел, чтобы в студии рабочего процесса появилась возможность, аналогичная AWS App Composer, чтобы помочь решить оставшиеся проблемы DevEx (подсказка, подсказка, команда разработчиков).

лямбда

Пост не о бессерверных решениях, пока вы не упомянули Lambda. В 2022 году было так много обновлений этой службы, что для их освещения потребовался бы целый пост. Вот некоторые из важных.

  • Увеличенное временное хранилище — в начале этого года Lambda получила обновление, позволяющее настроить до 10 ГБ временного хранилища для данной функции. Это открывает некоторые варианты использования для заданий ETL, которым необходимо загружать большие файлы. До этого вы могли загружать большие файлы в память и впоследствии получать за это плату.
  • Многоуровневое ценообразование — все мы знаем, что бессерверные услуги оплачиваются за то, что вы используете. Но когда вы достигаете определенного масштаба, это может стать немного непомерно затратным. AWS теперь предоставляет оптовую скидку пользователям Lambda с большим объемом продаж. Это отличное начало фиксирования цен для гигантских масштабов, и я надеюсь, что в 2023 году это немного расширится.
  • URL-адреса функций — иногда вы просто хотите, чтобы вы могли вызывать функцию напрямую, вместо того, чтобы проходить через канцелярскую работу по настройке шлюза API перед ней. С URL-адресами функций вы можете сделать именно это. Они могут быть общедоступными или аутентифицированными через IAM. Это удобная функция для быстрого тестирования или веб-перехватчиков.
  • Диспетчер секретов и расширение SSM — надеюсь, вы не храните секреты в качестве переменных среды в своих функциях. В идеале они должны храниться в Secrets Manager. Эта общепринятая передовая практика позволила уменьшить задержку с выпуском расширения Lambda, которое загружает и кэширует секреты и параметры.
  • SnapStart — функции Java получили большой импульс к холодному запуску благодаря функции SnapStart. Lambda инициализирует вашу среду выполнения, сделает ее снимок, а затем будет использовать снимок в будущих вызовах, чтобы сократить время инициализации. Это отличная идея, и я с нетерпением жду возможности увидеть, как она будет развиваться по мере выпуска поддержки других сред выполнения.

Глядя на эти функции, я бы предположил, что основной целью команды Lambda было снижение потребительских расходов. Все перечисленное выше в той или иной степени влияет на стоимость (кроме SnapStart). Мне нравится инициатива команды, направленная на то, чтобы сделать облако более доступным для всех.

Кризис личности

В этом году мы видели, как безсерверные технологии пережили небольшой кризис идентичности. Между выпуском Neptune без сервера и OpenSearch без сервера кажется, что AWS может даже не знать, что это значит.

Я написал о жарких онлайн-дебатах, которые мы наблюдаем, в насмешливом посте, рассказывающем о некоторых фундаментальных принципах безсерверных технологий.

Я склонен согласиться с Momento в их определении бессерверных решений.

Посмотрим, как обстоят дела в 2023 году с определением serverless и исправится ли курс AWS с их определением для Neptune и OpenSearch.

Забегая вперед

Много внимания было уделено чему-то новому в бессерверной сфере: Инфраструктура из кода (IfC).

Эта концепция существует уже несколько лет, но в этом году о ней действительно стало известно. Суть IfC в том, что вы просто пишете код. Фреймворки IfC снимают с потребителей бремя принятия решений по инфраструктуре и позволяют им сосредоточиться только на бизнес-логике.

Такие решения, как должна ли это быть таблица DynamoDB с GSI и что лучше подходит в качестве функции Lambda или в App Runner, принимаются этими платформами и управляются полностью независимо. Это новая концепция, и у меня сформировалось несколько быстрых мнений.

Я углубился в концепцию, опробовав несколько фреймворков в бенчмарке. Чем больше я использовал его, тем больше я принимал тот факт, что кто-то другой может принимать решения по инфраструктуре за меня.

Я чувствую, что нам предстоит пройти долгий путь, прежде чем это мнение станет мейнстримом, но я рад видеть, что нас ждет с IfC.

Вступая в новый год, я задаюсь вопросом: это IfC без сервера или это что-то совершенно другое?

Важные новички

Наряду с большими обновлениями сервисов, которые мы знаем и любим, в этой области появилось несколько новичков.

  • Momento — этот стартап предлагает полностью бессерверный кеш, что было огромным пробелом в бессерверном пространстве. Существующие сервисы, такие как Elasticache, требуют предоставления ресурсов, за которые вы платите все время, даже когда они не используются. Momento здесь, чтобы изменить это. Они предлагают модель платы за то, что вы используете и могут быть реализованы буквально с помощью 5 строк кода.
  • BaseLime — существует множество поставщиков средств наблюдения и APM, но BaseLime стремится изменить правила игры. Они предлагают Наблюдение как код и нацелены непосредственно на бессерверные приложения. BaseLime стремится продвигать передовые методы наблюдения, что приветствуется и является тем, чего, по моему мнению, не хватает сегодня в отрасли. В настоящее время они находятся в публичной бета-версии и абсолютно заслуживают изучения.
  • Ampt — ранее известная как Serverless Cloud, Ampt отделилась от Serverless, Inc в начале этого года, чтобы сосредоточиться на инфраструктуре из кода. В настоящее время он недоступен для публичного использования, но если вы хотите получить краткий обзор — ходят слухи, что он будет очень похож на то, что в настоящее время предлагается с бессерверным облаком.
  • AWS Application Composer — этот новый сервис AWS позволяет пользователям визуально создавать шаблоны SAM в своем браузере. Служба подключается непосредственно к локальному файлу шаблона на вашем компьютере и обновляет его в режиме реального времени. Он даже имеет возможность редактировать существующие файлы шаблонов, что означает, что вы можете использовать его немедленно, если вы создавали свои приложения с помощью SAM. Это отличная попытка AWS снять часть бремени с управления IaC.

Краткое содержание

2022 год был важным годом. У нас было несколько крупных сервисных обновлений, которые сделали наш код более лаконичным и заметно менее затратным. Некоторые из этих основных функций откроют двери для значительных возможностей, о которых мы даже не догадывались (а некоторые у нас уже есть).

Бессерверные технологии внедряются со все большей скоростью, но это может быть причиной кризиса идентичности. Слово «бессерверный» стало настолько модным, что его шлепают по всему миру, пытаясь завоевать признание. Это означает гораздо больше, чем я не управляю серверами. Существуют определенные возможности, которые служба должна предоставлять, чтобы ее можно было рассматривать как бессерверную. Возможно, нам придется подождать, пока уляжется пыль, прежде чем снова появиться с новым определением.

Бессерверная разработка изменится в недалеком будущем, и поставщики Infrastracture from Code знают об этом. Они прилагают массу усилий для поиска правильных абстракций, которые отнимают у разработчиков решения по инфраструктуре — в хорошем смысле. Если вы еще не пробовали один из этих фреймворков, самое время запачкать руки.

Облако открывает безграничные возможности. Мы накопили опыт «собственного облака» в сообществе бессерверных серверов, и эта планка продолжает расти месяц за месяцем. Если 2022 год был каким-то показателем того, что может сделать отрасль, я с нетерпением жду следующего года, когда буду находиться в состоянии постоянного шока.

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

Вот и наступил удивительный год! Вы все потрясающие.

Удачного кодирования!