Введение
Serverless (бессерверные вычисления) – модель облачных вычислений, при которой провайдер полностью берёт на себя управление инфраструктурой: выделение серверов, масштабирование, отказоустойчивость. Разработчик пишет только функции-обработчики событий.
Термин «serverless» не означает отсутствия серверов – серверы есть, просто разработчик о них не думает. Ключевая модель – Function as a Service (FaaS): небольшая stateless-функция, запускаемая по событию и живущая только время выполнения.
История и контекст
AWS Lambda, запущенный в 2014 году, стал пионером FaaS и задал стандарт для всей индустрии. Microsoft Azure Functions появился в 2016-м, Google Cloud Functions – в 2017-м. В России Yandex Cloud Functions и VK Cloud Functions предоставляют аналогичные сервисы. Serverless-подход быстро нашёл применение в event-driven архитектурах, обработке webhook'ов, автоматизации и API-бэкендах.
Как это работает
Жизненный цикл serverless-функции:
- Событие-триггер (HTTP-запрос, сообщение в очереди, изменение в БД, cron);
- Провайдер инициализирует контейнер с кодом функции (холодный старт, если контейнер не активен);
- Функция выполняется, обрабатывает входные данные, возвращает результат;
- Контейнер либо «разогрет» для следующего запроса, либо уничтожен.
Холодный старт (cold start) – задержка при первом запуске или после периода неактивности. AWS Lambda: 100–1000 мс; Azure Functions Consumption plan: до 2 с. Решается через Provisioned Concurrency (AWS) или Premium plan (Azure).
BaaS – Backend as a Service
Помимо FaaS, serverless включает BaaS (Firebase, Supabase, Auth0) – управляемые сервисы аутентификации, БД, хранилища, не требующие написания backend-кода.
Где применяется
- API-бэкенды с непредсказуемой нагрузкой – автомасштабирование от 0 до тысяч запросов;
- Обработка событий: webhook'и, S3-триггеры, изменения в БД;
- Cron-задачи и scheduled-джобы без постоянно работающего сервера;
- ETL-пайплайны для обработки данных по событию;
- Edge-вычисления – функции рядом с пользователем через CDN.
Преимущества и ограничения
Преимущества: нет управления инфраструктурой; автоматическое масштабирование; оплата только за реальное выполнение (до нуля в простое); быстрый деплой; встроенная отказоустойчивость.
Ограничения: холодный старт неприемлем для latency-sensitive приложений; ограниченное время выполнения (AWS Lambda – до 15 мин); stateless по природе (состояние во внешних хранилищах); vendor lock-in; сложность локальной отладки и наблюдаемости.
Связь с другими понятиями
Event-driven Architecture – естественная среда для serverless: функции запускаются событиями. Микросервисы и serverless решают схожие задачи, но serverless более гранулярен. Контейнерная ОС и Kubernetes лежат в основе serverless-платформ. OpenAPI используется для документирования serverless API-бэкендов. Feature Flag позволяет управлять rollout'ом serverless-функций без переразвёртывания.