Для множества задач полезно использовать Serverless подход.
В этой статье мы кратко рассмотрим основные решения, их достоинства, и главное, недостатки. А также рассмотрим несколько интересных Open Source решений.
Российские Serverless решения
Главным преимуществом Российских решений является возможность их оплаты без наличия иностранных карт.
Yandex Cloud Functions — оригинальный сервис от Яндекс Облака.
Поддерживаются: Node.js, PHP, Python, Go, Bash, Java, C# и R.
Как и большинство Serverless решений, продукт не прост в освоении и требует некоторой компетенции.
Дополнительный аспект — это цена, которая в пересчете на выделенный ресурс примерно в 30 раз выше, чем тот же ресурс на выделенных машинах.
Cloud functions предназначено именно для коротких нагрузок, так как имеет жесткие лимиты на время выполнения.
При этом сервис обладает малым временем холодного старта и позволяет быстро масштабировать вычислительную мощность,
Максимальное время выполнения функции до таймаута, включая начальную инициализацию при первом запуске | 1 час |
Максимальный объем RAM для одного экземпляра функции | 8 ГБ |
Тарифицируется ОЗУ (1 Гб за месяц работы стоит около 4000 р.) и количество миллионов вызовов (16 р. за миллион вызовов).
Amvera Cloud - облако, которое предоставляет возможность легко развернуть приложения в контейнерах, используя три команды в IDE.
В отличии от конкурентных решений, код всегда находится в прогретом состоянии. При этом ресурс можно скейлить как горизонтально, так и вертикально. Есть функционал автоскейлинга. По стоимости часто выходит намного дешевле и прогнозируемо по цене (тарифы начинаются от 170 руб. в месяц), чем решения на основе функций, особенно, если функция должна проработать некоторое время.
Основным конкурентным преимуществом является встроенный CI/CD, позволяющий развернуть проект через git в привязанный Git-репозиторий, мониторинг и алертинг, бэкапы и проксирование до некоторых зарубежных сервисов (API OpenAI как пример).
Поддерживаемые окружения - Python, JVM, Node.JS, С#, Go, Ruby, PHP, Docker.
При регистрации будет начислен баланс в 111 руб., для бесплатного тестирования сервиса.
Advanced FunctionGraph от облака Сбера
Не самое распространенное решение, при этом по функционалу похожее на Lambda от AWS, но ближе к Alibaba Cloud Function Compute (как и облако в целом).
Стоимость зависит от объема памяти, времени вычислений (с точностью до секунды) и количества запросов.

Международные решения
Lambda от AWS — самое первое и известное решение на рынке, которое AWS представил в 2014.
Azure Functions от Microsoft Azure
Functions от Digital Ocean
Услуга | AWS Лямбда | Функции Google Cloud | Функции Azure | Функции Digital Ocean |
Максимальная продолжительность выполнения | 900 сек. или 15 мин | 540 сек. или 9 мин | 600 сек. или 10 мин | 15 минут |
Макс. Память | 10ГБ | 8ГБ | 3,5 ГБ | 1 Гб |
Максимальное количество одновременных выполнений | 1000 | 1000 | Зависит от плана | 120 функций в неймспейсе, максимум 10 неймспейсов |
Примечание: максимальное количество одновременных выполнений в AWS Lambda и Google Cloud Functions — это ограничения по умолчанию, которые можно увеличить, обратившись в службу поддержки.
Поддержка языков
Язык | AWS Лямбда | Функции Google Cloud | Функции Azure | Digital Ocean |
С# | Да | Да | Да | Нет |
Java | Да | Да | Да | Нет |
Python | Да | Да | Да | Да |
Go | Да | Да | Да | Да |
Node.js | Да | Да | Да | Да |
Ruby | Да | Нет | Нет | Нет |
PHP | Да | Нет | Да | Да |
PowerShell | Да | Нет | Да | Нет |
Пользовательская среда выполнения | Да | Да | Да | Нет |
Масштабирование
Возможность масштабирования | AWS Лямбда | Функции Google Cloud | Функции Azure | Функции Digital Ocean |
Тип масштабирования | Автоматический | Автоматический | Автоматический | Автоматический |
Предел масштабирования | Нет ограничений, можно запросить увеличение лимита | Облачные функции второго поколения имеют ограничение по умолчанию в 100 как для HTTP-функций, так и для событийно-управляемых функций. Облачные функции 1-го поколения имеют ограничение по умолчанию в 3000 для событийно-управляемых функций, но для облачных функций HTTP 1-го поколения ограничение по умолчанию отсутствует. | До 200 экземпляров на функцию в регионе | 120 на неймспейс |
Скорость масштабирования | Миллисекунды | Секунды | Секунды | Нет данных |
Масштабирование детализации | По функции или по счету | По функциям | По функциям | Нет данных |
Политика масштабирования | Запрос в секунду | Запрос в секунду | Запрос на экземпляр | Нет данных |
Теплый старт | Поддерживается | Поддерживается | Поддерживается | Нет данных |
Ценообразование
Модель ценообразования | AWS Лямбда | Функции Google Cloud | Функции Azure | Digital Ocean |
Цена за запрос | Бесплатно за первый миллион запросов, затем 0,20 долл. США за 1 миллион запросов | Первые 2 млн. запросов в месяц бесплатны, затем 0,40 долл. США за 1 млн запросов | Первый 1 млн. запросов в месяц бесплатно, далее 0,20 долл. США за 1 млн запросов | Бесплатно первые 90000 Гб-сек. Далее - 0,0000185 Гб-сек |
Цена за ГБ-секунду | 0,00001667 долл. США за ГБ-секунду | 0,0000025 долл. США за ГБ-секунду | 0,000016 долл. США за ГБ-секунду | 0,0000185 Гб-секунду |
Бесплатный уровень | 1 млн. бесплатных запросов в месяц и 400 000 ГБ-секунд вычислительного времени в месяц | 2 млн. бесплатных запросов в месяц и 400 000 ГБ-секунд вычислительного времени в месяц | 1 млн. бесплатных запросов в месяц и 400 000 ГБ-секунд вычислительного времени в месяц | Бесплатно первые 90000 Гб-сек. |
Open Source Serverless решения
Основное преимущество Open Source в бесплатности и независимости от вендора. Но именно для Serverless-модели это спорные моменты, так как Serverless часто подразумевает именно желание снизить расходы на редко выполняемых задачах, потребляя ресурс строго при использовании и «бесконечно» масштабируясь при необходимости, что теряет смысл при использовании собственных фиксированных ресурсов. Но для ряда задач, особенно выполняемых на основе событий или по расписанию, есть место и в рамках внутренней экосистемы предприятий.
OpenFaaS — один из первых и активно развивающихся проектов. Имеет опцию развертывания в Kubernetes-кластере.

Количество звезд на GitHub — 25 000
Knative — решение с фокусом на запуске в Kubernete, которое принято CNCF. Одно из активно развивающихся решений с обширным комьюнити.


Количество звезд на GitHub — 5700
Fission — поддерживается одним не самым известным облачным провайдером, при этом сам проект жив и регулярно обновляется.
Производительность: 100 мс холодного старта.
Fission поддерживает пул «теплых» контейнеров, каждый из которых содержит небольшой динамический загрузчик. Когда функция вызывается впервые, т. е. "холодно стартует", выбирается работающий контейнер и загружается функция. Этот пул делает Fission быстрым: задержки холодного старта обычно составляют около 100 мс.
Количество звезд на GitHub — 8500
Nuclio — проект позиционирует себя как решение, специализирующееся на областях связанных с обработкой и анализом данных.
Количество звезд на GitHub — 5400
Визуализация из документации решения
Я рассмотрел основных коммерческих провайдеров и Open Source решения. Бессерверные вычисления могут быть полезны, но если у вас относительно стабильная или долгая нагрузка, намного дешевле, предсказуемо по цене и проще использовать виртуальные машины или контейнеры. Но все зависит от задачи.