8 лучших инструментов для работы с бессерверными вычислениями
![8 лучших инструментов для работы с бессерверными вычислениями](/public/uploads/img/1/3/93/29228.jpg)
Бессерверные вычисления на самом деле являются неправильным названием, поскольку в системе все еще существует физический сервер. Но так как серверы полностью управляются облачными провайдерами, у разработчиков возникает ощущение, что сервер вообще не существует. Отсюда и название, бессерверный. Тем не менее, опыт — это не что иное, как баловство, а термин «бессерверный» — подходящее описание того, что значит запускать приложения на этих платформах. Бессерверные вычисления растут быстрее, чем любой другой облачный сервис с темпом роста 75 процентов. Его способность сделать разработку программного обеспечения эффективной (с точки зрения усилий, времени и затрат) была одной из главных причин его популярности.
Бессерверные вычисления привели к значительному увеличению числа поставщиков услуг «функция как услуга» (FaaS) и «бэкэнд как услуга» (BaaS). Вот некоторые из самых популярных:
- Лямбда-функции AWS
- Облачные функции Google
- Функции Microsoft Azure
- API-шлюз Amazon
- Облачные функции IBM
Хотя FaaS и BaaS упрощают процесс разработки, было разработано несколько инструментов и платформ, чтобы упростить его еще больше. Эти инструменты сокращают усилия разработчиков, необходимые для настройки инфраструктуры. Это означает, что у разработчиков может быть больше времени, чтобы сосредоточиться на написании кода. Вот список из семи таких инструментов (или платформ), которые можно использовать при работе с бессерверными вычислениями:
ЯгненокCI
LambCI — это пакет, который можно загрузить в AWS Lambda, чтобы сделать непрерывную интеграцию бессерверной. Он запускается всякий раз, когда вы отправляете новый код или существующие запросы на GitHub. С помощью LambCI разработчики могут легко запускать и поддерживать актуальность в виде стека Cloud Formation. Они даже могут сами создавать разные ресурсы. С обычными системами, такими как Travis и CircleCI, разработчикам приходилось много платить. У них по-прежнему были варианты снижения затрат за счет использования таких систем, как Jenkins, Strider и т. д., но настройка и управление сервером отнимали много времени.
Майкл Харт, разработчик LambCI, сказал в сообщении на Medium, что он начал создавать инструмент, чтобы найти способ преодолеть эти ограничения обычных систем.
Итак, как LambCI решает проблему?
- Поскольку вся система и мощности управляются Amazon, с LambCI действительно легко обращаться. Это намного проще, чем такие системы, как Jenkins и Strider.
- Стоимость намного меньше, поскольку разработчики должны платить только за то, что они используют (служебные вычисления). Кроме того, первые 4444 минуты в месяц бесплатны.
- Говоря об операциях, LambCI может запускать 1000 одновременных сборок. Это значительно увеличивает эффективность использования времени по сравнению с такими инструментами, как Travis.
Одной из его самых крутых функций является возможность интеграции со Slack и обновления статусов разработчиков в GitHub.
Но у этого инструмента есть некоторые недостатки, такие как отсутствие root-доступа и его поддержка ограничена Linux. Кроме того, время сборки и память ограничены максимум пятью минутами и 1,5 ГБ соответственно.
Но разработчики могут обойти многие из этих ограничений, настроив инструмент LambCI для отправки задач в кластер ECS.
Глина
Clay — это реестр для микросервисов (маленьких фрагментов повторно используемого кода). Его можно использовать для мгновенного создания функции HTTPS. Разработчики могут либо начать с нуля, либо разветвить существующий код и настроить его.
Как Clay обеспечивает потрясающий опыт разработчиков?
- Clay надежно хранит закрытые ключи и получает доступ ко всем пакетам NPM.
- С Clay вы можете запустить свой серверный код по защищенному URL-адресу HTTPS.
- Clay лучше всего подходит для обработки веб-перехватчиков (метод изменения поведения веб-приложения с помощью настраиваемых обратных вызовов).
- Clay может помочь в предварительной и последующей обработке при работе со сторонними API-интерфейсами SaaS и вставке кода в качестве живого контента в сообщения блога.
Clay не стал очень популярным, возможно, из-за его ограниченной поддержки (только Node 6.10), меньшего дискового пространства (500 МБ) или ограничения по времени (30 секунд на вызов службы). Однако разработчики могут продлить ограничение по времени, выполнив еще один HTTP-вызов.
Узел лямбда
Node Lambda был создан как проект с открытым исходным кодом в 2009 году. Это инструмент командной строки. Основная цель его разработки — помочь разработчикам JavaScript обмениваться упакованными модулями кода. Разработчики могут использовать этот инструмент для локального запуска и развертывания своего приложения Node.js в AWS Lambda.
Почему разработчики предпочитают Node.js для Lambda?
- Node.js способен обрабатывать тысячи запросов (в зависимости от рабочей нагрузки) одновременно.
- Разработчики предпочитают Node.js для Lambda, так как он имеет большое количество модулей пакетов узлов.
- Разработчики Node.js могут создать функцию Lambda и развернуть ее в своей учетной записи AWS с помощью одной команды, даже не открывая консоль AWS.
- Node.js — это легкий сервер, который быстро обрабатывает запросы.
Сказав все это, некоторые разработчики по-прежнему предпочитают Python, возможно, из-за простоты использования, которую он предоставляет.
Гордон
Гордон — это платформа с открытым исходным кодом. Гордон может помочь вам создать, подключить и развернуть функции AWS Lambda с помощью CloudFormation.
Как Гордон упрощает работу без серверов?
Чтобы понять, как Гордон может помочь разработчикам, нужно сначала понять, что нужно для запуска функций в AWS Lambda. Вот список вещей, которые вы должны сделать, чтобы ваша функция была готова к запуску в Lambda:
- Загрузите внешние требования из функций Lambda.
- Объедините свою лямбда-функцию, пакеты и библиотеки в zip-файл.
- Загрузите этот zip-файл на S3.
- Создайте новую версию лямбда-функции со своим кодом.
- Опубликуйте новую версию.
- Создайте псевдоним.
- Создайте новую роль IAM для этой лямбда-функции и прикрепите ее.
Но это слишком много, чтобы делать каждый раз, когда вам нужно развернуть новое изменение. Здесь в игру вступает Гордан. С помощью всего двух команд, «создать» и «применить», вы сможете легко развертывать свои изменения столько раз, сколько захотите.
Каппа
Kappa — это проект с открытым исходным кодом, который помогает разработчикам развертывать, обновлять и тестировать функции для Amazon Lambda. Kappa — это инструмент командной строки.
Как Kappa упрощает процесс разработки приложений?
Kappa в основном помогает на некоторых этапах разработки функций Lambda. Вот несколько вещей, которые может сделать Каппа:
- Создавайте политики IAM на основе ресурсов, к которым вам нужен доступ. Он также может создать роль выполнения IAM и связать с ней политики.
- Заархивируйте функцию и зависимости и загрузите их в AWS Lambda.
- Отправить тестовые данные в загруженную функцию
- Найдите поток журнала CloudWatch, связанный с загруженной функцией, и отобразите события журнала.
- Добавьте источник события, чтобы включить функцию.
- Позвольте разработчикам легко обновлять свои функции Lambda новым кодом или редактировать источники событий.
Загрузчик лямбда
Пакет Lambda-uploader был специально написан, чтобы помочь в упаковке и загрузке функций Python AWS Lambda.
Что особенного в загрузчике Lambda?
Lambda-uploader помогает при создании пакета Lambda, обрабатывая следующее:
- Создание виртуальной среды.
- Установка зависимостей к виртуальной среде.
- Заархивируйте копию зависимостей из виртуальной среды с исходным кодом функции Lambda.
- Взаимодействие пакета с AWS CLI (или пользовательским интерфейсом).
Поскольку загрузчик Lambda берет на себя все эти трудоемкие задачи, разработчики могут больше сосредоточиться на написании более качественных функций.
OpenLambda
OpenLambda — это платформа для бессерверных вычислений с открытым исходным кодом. Это проект под лицензией Apache. OpenLambda написан на Go и основан на контейнерах Linux.
Что делает OpenLamba?
Основная цель Open Lambda — расширить возможности изучения новых подходов к бессерверным технологиям. Бессерверные вычисления создают множество проблем в области песочницы, управления сеансами, балансировки нагрузки и баз данных. Open Lambda упрощает эти области.
Тандра.ио
Thundra.io — это в основном инструмент мониторинга. Это универсальное решение для мониторинга таких потребностей, как метрики, журналы, трассировки и т. д.
Что делает Thundra.io?
- Это помогает разработчикам отслеживать их лямбда-функции.
- Он отслеживает такие показатели, как ЦП, память, GC, и управляет журналами.
- Он обеспечивает автоматическую настройку лямбда-функции AWS. Лучшее в этой функции то, что разработчики могут использовать ее без изменения кода.
- Это не влияет на использование памяти, поскольку использует Amazon CloudWatch для асинхронного выполнения. Это помогает избавиться от тайм-аутов запросов и ненужных задержек.
IOPipe, Stackery и Dashbird — другие популярные инструменты, используемые для бессерверного мониторинга.
Бессерверные вычисления: экономия времени и денег
Помимо экономии времени, бессерверная архитектура также экономит деньги. Это потому, что вы платите только за то, что вы используете. Это гораздо более эффективно по сравнению с традиционным методом покупки единиц мощности и оставления большей части их неиспользованными. Благодаря эффективности, обеспечиваемой бессерверной архитектурой, и удобству, обеспечиваемому упомянутыми инструментами, будущее бессерверных вычислений выглядит многообещающим.