Cloud

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-сервер