Как стать автором
Обновить
96.22
Amvera
Amvera — облако для хостинга IT-приложений

Serverless сервисы. От AWS Lambda до Yandex Cloud Functions и их альтернатив

Время на прочтение5 мин
Количество просмотров1.7K

Для множества задач полезно использовать Serverless подход.

В этой статье мы кратко рассмотрим основные решения, их достоинства, и главное, недостатки. А также рассмотрим несколько интересных Open Source решений.

Российские Serverless решения

Главным преимуществом Российских решений является возможность их оплаты без наличия иностранных карт.

Поддерживаются: 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 руб., для бесплатного тестирования сервиса.

Не самое распространенное решение, при этом по функционалу похожее на Lambda от AWS, но ближе к Alibaba Cloud Function Compute (как и облако в целом).

Стоимость зависит от объема памяти, времени вычислений (с точностью до секунды) и количества запросов.

Тарифообразование
Тарифообразование

Международные решения

  1. Lambda от AWS — самое первое и известное решение на рынке, которое AWS представил в 2014. 

  2. Azure Functions от Microsoft Azure

  3. Cloud Functions от Google Cloud Platform

  4. 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 решения. Бессерверные вычисления могут быть полезны, но если у вас относительно стабильная или долгая нагрузка, намного дешевле, предсказуемо по цене и проще использовать виртуальные машины или контейнеры. Но все зависит от задачи.

Теги:
Хабы:
Всего голосов 3: ↑2 и ↓1+1
Комментарии5

Публикации

Информация

Сайт
amvera.ru
Дата регистрации
Численность
11–30 человек
Местоположение
Россия
Представитель
Кирилл Косолапов