Перейти к содержанию
Innovialabs

Что такое serverless: плюсы, минусы и сценарии

Основы3 мин

Коротко

Serverless — модель, в которой вы загружаете код функций, а облако само запускает их по событию, масштабирует и берёт плату за фактические вызовы; это удобно для неравномерной нагрузки и фоновых задач, но не подходит для долгих процессов и постоянных соединений.

Короткий ответ

Serverless не значит, что серверов нет. Это значит, что ими управляете не вы. Вы пишете функцию, загружаете её в облако, и провайдер сам:

  • запускает её, когда приходит событие (HTTP-запрос, сообщение в очереди, загрузка файла, расписание);
  • создаёт столько копий, сколько нужно под нагрузку;
  • останавливает их, когда запросов нет.

Самая распространённая форма serverless — FaaS (Functions as a Service): AWS Lambda, Google Cloud Functions / Cloud Run functions, Azure Functions, Cloudflare Workers, Vercel Functions.

Как выглядит функция

Функция — это обработчик, который получает событие и возвращает результат. Например, простая HTTP-функция в стиле AWS Lambda на Node.js:

export const handler = async (event) => {
  const name = event.queryStringParameters?.name ?? "world";
  return {
    statusCode: 200,
    body: JSON.stringify({ message: `Hello, ${name}` }),
  };
};

Ни настройки веб-сервера, ни операционной системы, ни балансировщика — только код.

Как устроена оплата

Классическая модель — pay-per-execution: вы платите за количество вызовов и за время выполнения с учётом выделенной памяти. Нет запросов — почти нет счёта.

Из чего складывается стоимость:

  • число вызовов;
  • длительность каждого вызова;
  • объём памяти (от него часто зависит и выделенный процессор);
  • сопутствующие сервисы: API-шлюз, база данных, хранилище, исходящий трафик, логи.

Поэтому serverless выгоден при неравномерной или небольшой нагрузке. При постоянной высокой нагрузке обычный сервер или контейнеры могут оказаться дешевле — это нужно считать на своих цифрах.

Какие задачи подходят

  • API и бэкенд для сайтов и мобильных приложений с переменной нагрузкой.
  • Вебхуки: приём событий от платёжных систем, CRM, Telegram-ботов.
  • Обработка файлов: сжатие изображений, генерация превью, конвертация после загрузки в хранилище.
  • Фоновые и плановые задачи: рассылки, отчёты, очистка данных по расписанию.
  • Обработка очередей и потоков событий.
  • Прототипы и MVP, где важно быстро запуститься без инфраструктуры.

Ограничения

ОграничениеЧто это значит на практике
ТаймаутыУ функции есть максимальное время выполнения. Долгие задачи нужно дробить или выносить в другие сервисы.
Отсутствие состоянияМежду вызовами нельзя полагаться на память или локальный диск. Данные хранятся во внешней базе, кэше или хранилище.
Холодный стартЕсли функция давно не вызывалась, первый запрос ждёт, пока поднимется окружение.
Подключения к БДМного параллельных копий могут исчерпать лимит соединений классической базы. Нужен пул соединений или подходящая БД.
Привязка к провайдеруТриггеры, права и сопутствующие сервисы у каждого облака свои, переезд требует доработки.
Отладка и мониторингЛокально воспроизвести облачное окружение сложнее, нужны логи и трассировка.

Конкретные лимиты (время, память, размер пакета) отличаются у провайдеров и меняются — проверяйте их в документации выбранного облака.

Плюсы и минусы коротко

Плюсы:

  • не нужно администрировать серверы и ОС;
  • автоматическое масштабирование;
  • оплата за фактическое использование;
  • быстрый старт проекта.

Минусы:

  • ограничения по времени и состоянию;
  • холодный старт;
  • сложнее прогнозировать счёт при росте нагрузки;
  • зависимость от экосистемы провайдера.

Как решить, подходит ли serverless

Задайте себе несколько вопросов:

  1. Нагрузка неравномерная или есть долгие периоды простоя? — Плюс к serverless.
  2. Задачи короткие и укладываются в лимиты по времени? — Плюс.
  3. Нужны постоянные соединения (WebSocket-сервер, долгие воркеры)? — Скорее минус.
  4. Важна минимальная задержка на каждом запросе? — Учтите холодный старт.
  5. Нагрузка высокая и стабильная? — Сравните стоимость с контейнерами или VPS.

Часто лучший вариант — смешанный: основное приложение в контейнерах, а вебхуки, обработка файлов и задачи по расписанию — в функциях.

Частые вопросы

Нет. При небольшой или скачкообразной нагрузке — обычно да, потому что простой не оплачивается. При постоянной высокой нагрузке арендованный сервер или контейнеры могут обойтись дешевле. Сравнивайте на своём профиле трафика.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.