Serverless (бессерверные вычисления) — модель, при которой разработчик деплоит код (функцию), а провайдер облака обеспечивает инфраструктуру: запуск контейнера, масштабирование, балансировку. Серверы существуют, но администрирование полностью скрыто.
Как работает
Основная единица — Function as a Service (FaaS). Функция запускается по триггеру: HTTP-запрос, событие в очереди (SQS, Pub/Sub), изменение в базе данных, расписание (cron). Время холодного старта (cold start) — от 100 мс до нескольких секунд в зависимости от runtime и размера функции.
Биллинг по invocations и времени исполнения в миллисекундах. AWS Lambda: первые 1 млн вызовов в месяц бесплатно, далее $0.20 за 1 млн вызовов + $0.0000166667 за 1 ГБ·с. Нулевое потребление = нулевая стоимость (idle cost отсутствует).
Ограничения: максимальное время исполнения (AWS Lambda — 15 минут), ограниченная память (до 10 ГБ на AWS), stateless-природа (состояние хранится во внешних системах — Redis, DynamoDB).
История
AWS Lambda появился в ноябре 2014 года — первая коммерческая FaaS-платформа. В 2016 году Google выпустил Cloud Functions, Microsoft — Azure Functions. В 2018 году проект Knative принёс serverless в Kubernetes. Стандарт CloudEvents (CNCF, 2018) унифицировал формат событий между провайдерами.
Варианты платформ
- AWS Lambda — пионер рынка, 30+ runtime (Node.js, Python, Go, Java, C#).
- Google Cloud Functions / Cloud Run — Functions для FaaS, Run для контейнеров.
- Azure Functions — интеграция с Azure Event Grid и Service Bus.
- Cloudflare Workers — V8 isolates, холодный старт ~0 мс, работает на edge.
- Yandex Cloud Functions — российский аналог с биллингом в рублях.
Связь с хостингом
Serverless не заменяет традиционный VPS или выделенный сервер: базы данных, долгоживущие процессы, websocket-соединения плохо вписываются в FaaS-модель. Типичный сценарий: serverless для обработки событий (вебхуки, ресайз изображений, API-эндпоинты с редкими запросами) + VPS для stateful-сервисов.
Ключевые отличия от похожих терминов
PaaS (Platform as a Service) предоставляет платформу для приложений с управлением сервером провайдером, но приложение работает постоянно. Serverless запускается только по запросу. Контейнеры требуют явного управления жизненным циклом; FaaS абстрагирует это полностью.
Модели Serverless
FaaS (Function as a Service): AWS Lambda, Yandex Cloud Functions, Azure Functions. BaaS (Backend as a Service): Firebase, Supabase. Scaling от 0 до тысяч экземпляров за секунды. Оплата за фактические вызовы (AWS Lambda: $0.20 за 1 млн вызовов + время выполнения).
Cold Start и ограничения
Cold start: первый вызов после бездействия — запуск нового экземпляра функции (100–500 мс для Node.js, 2–5 секунд для Java). Ограничения: максимальное время выполнения (AWS Lambda: 15 минут), памяти (10 ГБ), размера пакета. Не подходит для long-running задач.
Serverless в российском хостинге
Yandex Cloud Functions — поддерживает Node.js, Python, Go, Java, PHP, Bash. Serverless containers — Docker-образы без управления инфраструктурой. FaaS для: webhook-обработчиков, resize изображений, периодических задач. Снижает стоимость при нерегулярной нагрузке.