Back to 2021. Нововведения в Serverless с re:Invent от AWS

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Ежегодный AWS re:Invent, проходивший в конце 2021 года, принёс массу новостей про бессерверные технологии Я нашёл самые интересные: под катом мы поговорим про запуск функций на Graviton2, новых возможностях для машинного обучения, перенос разработки в облако и визуальный редактор для step-функций.

AWS продолжает упрощать разработку

Один из слайдов Дэвида Ричардсона (David Richardson), вице-президента Serverless в AWS, наглядно демонстрирует основные этапы развития проекта с 2015 года. 
Один из слайдов Дэвида Ричардсона (David Richardson), вице-президента Serverless в AWS, наглядно демонстрирует основные этапы развития проекта с 2015 года. 

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

Тюнинг Lambda: новый процессор, улучшена многопоточность и работа с большими объемами данных

AWS не только анонсировала процессор третьего поколения Graviton3, но и рассказала о доступности новых высокопроизводительных инстансов на базе Graviton2 для EC2. Они ориентированы на работу с базами данных и аналитику. Нововведение доступно и для бессерверных вычислений — при настройке запуска лямбды можно выбрать архитектуру x86 или ARM/Graviton2. 

По данным AWS, обновление увеличивает производительность в среднем на 19% и сокращает время выполнения кода. Это позитивно отражается на стоимости: тут AWS оценивает бонус в 20%. Особенно улучшения заметны на многопоточных вычислениях или в ситуациях, где много операций ввода-вывода. Если у функции нет особенностей, привязанных к архитектуре, — то есть используется интерпретируемый язык — настройки даже позволяют переключаться между платформами.

По данными собственной аналитики, бессерверные функции всё чаще используются для машинного обучения, поэтому в Lambda появилась возможность запускать нагруженные функции:

  • включающие большие контейнеры; 

  • работающие на масштабных датасетах;

  • требующие до 10 Гб оперативной памяти. 

А в ближайшем будущем появится доступ к эфемерным томам до 10 Гб по модели оплаты только за используемое хранилище.

Новые возможности для разработчиков

Дэвид Ричардсон анонсировал целый набор возможностей, сокращающих время разработки, — SAM Accelerate. В условиях, когда разработчик старается писать код как можно быстрее, появилась возможность отказаться от локального тестирования, перенести этот процесс в облачную инфраструктуру и:

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

  • быстро синхронизировать изменения кода с облаком за счёт команды sam sync, которая различает код и конфигурации, а поэтому может гибко настраиваться;

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


Всё это теперь — часть набора инструментов для построения облачной инфраструктуры AWS SAM CLI.

Прямо перед re:Invent разработчики AWS выкатили ещё одну особенность, улучшающую гибкость, — возможность фильтрации событий по источникам. Благодаря ей можно не тратить мощности лямбды на обработку лишнего. Поддерживается фильтрация Amazon Kinesis Data Streams, Amazon DynamoDB Streams и Amazon SQS.

В AWS серьёзно поработали над процессом деплоя и в июле 2021 года представили AWS SAM Pipelines — автоматическую генерацию пайплайнов для деплоя бессерверных приложений. AWS SAM Pipelines содержит набор шаблонов, с помощью которых можно быстро создавать безопасные конвейеры непрерывной интеграции и развёртывания для популярных CI/CD-систем. На данный момент поддерживаются AWS CodePipeline, Jenkins, GitHub Actions и GitLab CI/CD. А ещё в 2021 году наконец-то выкатили Lambda-расширения (AWS Lambda Extensions), предварительный доступ к которым появился за год до этого. Теперь в среде Lambda можно использовать привычные средства мониторинга приложений или поиска уязвимостей.

Новые возможности для архитекторов приложений

Как я уже писал, в AWS Lambda теперь поддерживает образы контейнеров до 10 Гб, поэтому в Lambda можно завернуть более сложные приложения с зависимостями.

В последнее время в AWS задумались об оптимизации затрат на запуск Lambda при нестабильных нагрузках. Если раньше биллинг рассчитывался с точностью до 100 мс, то с конца 2020 года доступна точность в 1 мс. Это немного меняет баланс при сравнении аренды инстансов и бессерверных вычислений с точки зрения стоимости владения. По оценкам Amazon, изменения в биллинге позволяют некоторым клиентам избежать до 70% расходов. Ощутимо сэкономить поможет и описанная выше фильтрация событий по источнику.

Второе направление развития бессерверных технологий AWS — сокращение объёма сопутствующего кода, который необходимо написать, чтобы запустить свою функцию и соединить между собой различные части инфраструктуры проекта. Одно из самых заметных преобразований — возможность интегрировать Step Functions через шину событий. Теперь можно объединять части, ориентированные на события, и части, где нужна оркестрация. Благодаря SDK можно реализовать интеграцию с 200 сервисами и 900 API.

Стало проще конструировать step-функции: теперь это можно делать с помощью AWS Step Functions Workflow Studio — визуального интерфейса, который фокусируется на бизнес-логике, а не на коде. В редакторе из готовых блоков можно составить весь рабочий процесс, включая преобразование данных и интеграции. Потом Workflow Studio проверит и сгенерирует код, который можно экспортировать. По факту редактор сокращает усилия, необходимые для конфигурации бизнес-процесса, и ускоряет разработку.

Немного ностальгии

А знаете ли вы, что в прошлом году у Amazon EC2 был юбилей? Он был запущен в 2006 году.

На re:Invent участники запуска рассказывали, что всё начиналось с идеи предоставить инструменты и сервисы, которые позволили бы разработчикам строить любые приложения прямо в интернете. Развитие EC2 началось со стопки ноутбуков в офисе: разработка стартовала в Кейптауне (Южная Африка), и пинг до ближайшего дата-центра был слишком велик, чтобы использовать специализированные мощности. Клиенты могли арендовать ресурсы одного из этих ноутбуков под свои задачи.

Через десять лет лет идея шагнула за рамки типового инстанса — к бессерверным вычислениям, которые решают всё более сложные задачи и сейчас AWS активно развивает это направление.  Будем надеяться, что следующий re:Invent принесёт ещё много интересного!

Если вам интересна экосистема Serverless-сервисов и все, что с этим связано, заходите в сообщество в Telegram, где можно обсудить serverless в целом. 

Источник: https://habr.com/ru/post/650923/


Интересные статьи

Интересные статьи

Перефразируя известного киногероя, «Бэкапы — это хорошо. Бэкапы — это надежно». И чем больше опций для создания резервных копий есть у провайдера, тем лучше: клиенты полу...
Я давно знаком с Битрикс24, ещё дольше с 1С-Битрикс и, конечно же, неоднократно имел дела с интернет-магазинами которые работают на нём. Да, конечно это дорого, долго, местами неуклюже...
Самый обфусцированный ELF вредонос на Go, который мы встречали на сегодняшний день.ПредисловиеНедавно, вредоносный бэкдор, написанный на Go, который эксплуатировал уязвим...
Публикую продолжение сборника вопросов-ответов с собеседований на Backend-Java-разработчика. В первой части мы прошлись по Java и Spring. А в этой поговрим о Hibernate, базах данных, па...
Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим н...