Serverless
Модель выполнения кода, при которой провайдер сам управляет серверами и масштабированием, а вы платите только за фактические вызовы.
Что такое Serverless
Serverless («бессерверные вычисления») — модель, в которой вы отдаёте код, а провайдер сам решает, где и на скольких серверах его запустить. Инстансы создаются под нагрузку, исчезают при её отсутствии, оплата идёт за фактические вызовы и время работы.
Серверы, разумеется, никуда не делись — просто их больше нет в вашей картине мира: ни выбора конфигурации, ни обновлений ОС, ни балансировщика, ни вопроса «сколько реплик держать».
Главное экономическое свойство: простой стоит ноль. На IaaS и PaaS вы платите за арендованное время независимо от того, пришёл ли хоть один запрос.
FaaS — это что
FaaS (Function as a Service, «функция как услуга») — основная реализация serverless: единицей развёртывания становится не приложение, а отдельная функция, привязанная к событию. Пришёл HTTP-запрос, вебхук, сообщение в очереди, файл в хранилище — функция запустилась, отработала, завершилась.
Примеры: AWS Lambda, Google Cloud Functions, Azure Functions, Cloudflare Workers, Yandex Cloud Functions. Open-source-варианты для своего кластера: OpenFaaS, Knative.
Термины часто используют как синонимы, но serverless шире: под него подпадают и базы с оплатой за запросы, и очереди, и хранилища. FaaS — только про выполнение кода.
Как это работает
Событие (HTTP / очередь / cron / файл в бакете)
↓
Платформа ищет свободный «тёплый» инстанс функции
↓
Нет свободного → cold start: поднять окружение, загрузить код ← самая дорогая часть
↓
Выполнение функции (жёсткий лимит по времени)
↓
Инстанс держится «тёплым» какое-то время, затем гасится
Отсюда все особенности модели. Функция stateless: между вызовами ничего не гарантировано, состояние идёт в БД или object storage. Параллельные запросы поднимают параллельные инстансы — база должна выдержать всплеск соединений, поэтому её ставят за пулером.
Cold start — задержка первого вызова на холодном инстансе. Для лёгких runtime это десятки-сотни миллисекунд, для тяжёлых зависимостей — секунды. При редких вызовах холодным оказывается почти каждый.
Где serverless выигрывает и где нет
| Сценарий | Подходит | Почему |
|---|---|---|
| Обработчик вебхуков | Да | Редкие всплески, простой бесплатен |
| Cron-задачи, отчёты по расписанию | Да | Держать сервер ради 5 минут в сутки бессмысленно |
| Обработка файла при загрузке | Да | Событийная модель по назначению |
| Backend с ровной высокой нагрузкой | Нет | Дороже эквивалентных серверов |
| Задачи дольше лимита выполнения | Нет | Функцию убьют по таймауту |
| API с низкой latency | С оговорками | Cold start портит хвостовые задержки |
| Долгие соединения, WebSocket | Нет | Модель рассчитана на короткие вызовы |
Два ограничения, о которые спотыкаются чаще всего: лимит времени выполнения (у Lambda — 15 минут, у других платформ свои) и отсутствие контроля над окружением. Ещё одно: экономика переворачивается на масштабе — то, что дёшево при тысяче вызовов в день, при миллионах в час обычно проигрывает нескольким постоянным серверам.
Serverless и GPU-нагрузки
Модель почти не подходит для инференса LLM, и причина техническая, а не идеологическая.
Serverless строится на предположении, что инстанс поднимается быстро. Для LLM это неверно: перед первым токеном нужно инициализировать CUDA-контекст и загрузить десятки гигабайт весов в VRAM. Модель на 70B в FP16 — это около 140 ГБ, которые надо прочитать с диска и передать по PCIe. Cold start измеряется десятками секунд и минутами, а не миллисекундами, — и он повторяется каждый раз, когда инстанс погасили.
Поэтому продакшн-инференс делают наоборот: vLLM или TGI держат модель постоянно загруженной на арендованном GPU-инстансе, а эффективность достигается не гашением инстанса, а continuous batching — карта загружается запросами вместо простоя.
Serverless-обёртки над GPU существуют и решают ровно ту же проблему обходными путями: держат веса в горячем кеше и сохраняют «спящие» инстансы. Для редкой нерегулярной нагрузки это работает. Для стабильного потока запросов постоянный сервер и дешевле, и предсказуемее по задержкам.
Связанные термины
- PaaS — модель, доведением которой является serverless
- IaaS — противоположный полюс: полный контроль над сервером
- autoscaling — то, что serverless делает автоматически
- контейнер — на чём построено большинство FaaS-платформ
- API Gateway — типичная точка входа для функций
- Модели облака (BaaS/DaaS/XaaS) — где FaaS стоит среди прочих аббревиатур
Готовы запустить GPU-задачу?
Запустить GPU-сервер