Лев Корольков
Руководитель IT-департамента EFSOL Oblako
Время чтения: 16 мин

Serverless

Вычисления без управления серверами

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

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

Serverless особенно хорошо подходит для событийной обработки, API, интеграций, фоновых задач, обработки файлов, Data Pipeline и приложений с переменной нагрузкой.

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

Почему Serverless называется бессерверным

Название Serverless может создавать впечатление, что код выполняется вообще без серверов.

На самом деле вычисления всегда происходят на физическом оборудовании. Разница заключается в модели управления.

При традиционном подходе компания создает виртуальную машину, устанавливает операционную систему и следит за сервером. В Serverless разработчик взаимодействует с более высоким уровнем облачной платформы.

Поэтому правильнее понимать Serverless как вычисления без необходимости напрямую управлять серверами.

Как работает Serverless

Разработчик передает облачной платформе код или описание приложения и определяет условия его запуска.

Платформа самостоятельно выделяет необходимые вычислительные ресурсы.

  1. Происходит событие или поступает запрос.
  2. Облачная платформа определяет необходимый обработчик.
  3. Выделяются вычислительные ресурсы.
  4. Код запускается.
  5. Приложение выполняет операцию.
  6. Результат сохраняется или возвращается пользователю.
  7. При снижении нагрузки ресурсы автоматически уменьшаются.

Разработчик при этом обычно не знает и не должен знать, на каком конкретном физическом сервере выполнялся отдельный запрос.

Основные особенности Serverless

ОсобенностьЧто означает
Нет прямого управления серверамиИнфраструктурой занимается провайдер
Автоматическое масштабированиеРесурсы меняются в зависимости от нагрузки
Событийный запускКод может выполняться по запросу или событию
Измеряемое использованиеСтоимость часто зависит от фактического потребления
Высокий уровень абстракцииРазработчик работает ближе к бизнес-логике

Serverless и FaaS

Serverless и FaaS часто используют как синонимы, но это не совсем правильно.

FaaS, или Function as a Service, — один из вариантов Serverless Computing.

В FaaS основной единицей является отдельная функция, запускаемая по событию.

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

Serverless и FaaS: разница

ServerlessFaaS
Широкая модель облачной архитектурыКонкретная вычислительная модель
Включает разные управляемые сервисыОсновная единица — функция
Может использовать базы, очереди и хранилищаОтвечает прежде всего за выполнение кода
Не требует прямого управления серверамиТакже скрывает управление серверами

Serverless и IaaS

В IaaS клиент получает виртуальные серверы, диски и сети и самостоятельно управляет значительной частью программной инфраструктуры.

В Serverless уровень абстракции выше.

Разработчик не создает виртуальные машины для каждого приложения и обычно не занимается операционной системой.

Это уменьшает объем администрирования, но одновременно снижает контроль над средой выполнения.

Serverless и PaaS

PaaS также уменьшает объем инфраструктурной работы.

При PaaS разработчик размещает приложение на готовой платформе, которая занимается операционной системой, runtime и масштабированием.

Serverless обычно идет еще дальше и позволяет использовать вычисления только в момент поступления запросов или событий.

Граница между современными PaaS и Serverless-сервисами может быть достаточно условной.

Serverless и SaaS

SaaS предоставляет полностью готовое приложение конечному пользователю.

Serverless предназначен прежде всего для разработки собственной программной системы.

Например, CRM может предоставляться как SaaS, но внутри нее часть интеграций и фоновых процессов может быть построена на Serverless.

Эти понятия описывают разные уровни облачного стека.

IaaS, PaaS, Serverless и SaaS

МодельЧто получает клиентУровень управления инфраструктурой
IaaSВиртуальные серверыВысокий
PaaSГотовую платформу приложенияСредний
ServerlessВыполнение кода и управляемые сервисыНизкий
SaaSГотовое приложениеМинимальный

Event-Driven Architecture

Serverless особенно хорошо сочетается с событийно-ориентированной архитектурой.

Вместо постоянно работающего процесса отдельные компоненты реагируют на события.

Например, пользователь загружает документ. Это событие запускает обработку файла, извлечение метаданных и отправку уведомления.

Каждый этап может работать независимо от остальных.

Какие события могут запускать Serverless

  • HTTP-запрос;
  • загрузка файла;
  • новое сообщение в очереди;
  • изменение записи в базе;
  • webhook;
  • событие IoT-устройства;
  • запуск по расписанию;
  • изменение объекта в хранилище.

Такой подход позволяет создавать приложения из небольших слабосвязанных компонентов.

Serverless API

Один из распространенных сценариев — создание backend API.

Пользователь отправляет HTTP-запрос, API Gateway принимает его и вызывает Serverless-функцию.

Функция выполняет бизнес-логику, обращается к базе данных и возвращает ответ.

Отдельный постоянно работающий веб-сервер для такой задачи может не требоваться.

API Gateway

API Gateway является промежуточным слоем между внешними клиентами и внутренними Serverless-компонентами.

Он может выполнять маршрутизацию, аутентификацию, ограничение частоты запросов и другие функции.

Например, запрос к определенному URL направляется в конкретную функцию.

Так приложение получает единый публичный API.

Serverless и обработка файлов

Serverless удобно применять для автоматической обработки файлов.

Например, пользователь загружает фотографию в объектное хранилище.

Событие запускает функцию, которая создает уменьшенную копию изображения.

Если файлов нет, вычислительный обработчик не обязан постоянно работать.

Serverless и фоновые задачи

Многие операции не требуется выполнять непосредственно внутри пользовательского запроса.

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

Основное приложение помещает задание в очередь, а Serverless-компонент обрабатывает его отдельно.

Это делает пользовательский интерфейс более отзывчивым.

Serverless и очереди сообщений

Message Queue часто используется как связующее звено между Serverless-компонентами.

Один сервис публикует сообщение, а другой обрабатывает его.

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

Это помогает уменьшить жесткую зависимость между компонентами.

Асинхронная архитектура

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

Например, после загрузки видео система сообщает, что файл принят, а обработка выполняется в фоне.

После завершения пользователь получает уведомление.

Так можно разделить быстрый пользовательский запрос и тяжелую внутреннюю операцию.

Serverless и расписание

Serverless-компоненты могут запускаться по таймеру.

Например, каждую ночь функция удаляет временные файлы или формирует небольшую статистику.

Вместо постоянно работающего сервера используется короткий вычислительный процесс.

Для сложных цепочек с большим количеством зависимостей лучше использовать workflow- или orchestration-сервисы.

Stateless-подход

Serverless-вычисления обычно проектируются как stateless.

Это означает, что приложение не должно рассчитывать на сохранение локального состояния между двумя вызовами.

Следующий запрос может обрабатываться совершенно другим экземпляром.

Постоянные данные следует хранить во внешней базе, объектном хранилище, кэше или другом специализированном сервисе.

Почему stateless помогает масштабированию

Если экземпляры не зависят от локального состояния, платформа может свободно создавать новые копии обработчика.

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

Не требуется переносить пользовательское состояние между конкретными серверами.

Это делает автоматическое горизонтальное масштабирование значительно проще.

Автоматическое масштабирование

Serverless-платформа обычно автоматически реагирует на изменение нагрузки.

При увеличении количества событий запускаются дополнительные экземпляры обработчика.

Когда запросов становится меньше, количество активных вычислительных сред уменьшается.

Разработчику не требуется вручную добавлять виртуальные машины.

Scale to Zero

Некоторые Serverless-сервисы способны уменьшать количество активных экземпляров до нуля, когда запросов нет.

Это особенно полезно для редко используемых приложений.

Например, внутренняя автоматизация запускается только несколько раз в день.

Вместо постоянного содержания сервера вычислительная среда активируется только в момент необходимости.

Cold Start

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

Дополнительная задержка называется Cold Start.

Она может включать запуск runtime, загрузку кода и инициализацию зависимостей.

Для фоновых задач это часто некритично, но для API с жесткими требованиями к latency Cold Start необходимо учитывать.

Warm Start

Если готовый экземпляр еще доступен, следующий запрос может выполняться без полной инициализации.

Такой запуск называют Warm Start.

Он обычно быстрее Cold Start.

Но приложение не должно рассчитывать, что один и тот же экземпляр будет существовать постоянно.

Concurrency

Concurrency показывает количество вызовов, выполняющихся одновременно.

Serverless-платформа может автоматически увеличивать параллелизм при росте нагрузки.

Однако зависимые системы могут иметь собственные ограничения.

Например, база данных не обязательно выдержит тысячи новых соединений одновременно.

Почему нужно ограничивать масштабирование

Автоматическое масштабирование является преимуществом только до тех пор, пока остальные компоненты системы способны выдерживать такой поток.

Если функция вызывает внешнее API с лимитом в сто запросов в секунду, запуск тысячи экземпляров создаст ошибки.

Поэтому в архитектуре часто задаются лимиты concurrency и используются очереди.

Serverless не отменяет необходимость проектировать пропускную способность всей системы.

Timeout

Serverless-вычисления часто имеют ограничение максимального времени одного запуска.

Конкретные значения зависят от платформы.

Поэтому очень длительные вычисления могут не подходить для классической FaaS-модели.

Задачу можно разделить на несколько этапов или перенести в другой вычислительный сервис.

Serverless и контейнеры

Serverless и контейнеры не являются взаимоисключающими технологиями.

Некоторые платформы позволяют запускать контейнерные приложения в Serverless-режиме.

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

Это дает больше контроля над средой, чем классический FaaS, но сохраняет многие преимущества автоматического масштабирования.

Serverless и Kubernetes

Kubernetes позволяет управлять контейнерной инфраструктурой и дает команде больше контроля над оркестрацией.

Serverless скрывает значительную часть этой инфраструктурной сложности.

Для небольших событийных сервисов Serverless может быть проще.

Для сложных систем с постоянной нагрузкой, собственными сетевыми требованиями и большим количеством долгоживущих сервисов Kubernetes может быть более подходящим вариантом.

Serverless и микросервисы

Serverless хорошо сочетается с микросервисной архитектурой, поскольку разные компоненты можно разворачивать и масштабировать независимо.

Например, обработка платежей и отправка уведомлений работают как отдельные сервисы.

Однако чрезмерное дробление может создать сотни функций, между которыми сложно отслеживать зависимости.

Поэтому размер компонентов должен определяться понятными бизнес-границами.

Serverless и Data Pipeline

Serverless можно использовать для отдельных этапов Data Pipeline.

Например, появление файла запускает функцию проверки формата, а затем сообщение передается в следующий процесс.

Для небольших преобразований такая модель удобна и экономична.

Для тяжелой обработки больших объемов обычно используются специализированные Data Engineering-системы.

Serverless и ETL

Небольшие ETL-задачи можно выполнять без отдельного сервера.

Например, функция получает JSON из внешнего API, нормализует поля и сохраняет данные в Data Warehouse.

При запуске раз в час постоянно работающий сервер может быть не нужен.

Но для обработки терабайтов информации FaaS обычно не является оптимальным вариантом.

Serverless и Big Data

Serverless-подход используется и в аналитических платформах.

Пользователь запускает запрос или обработку, не создавая собственный постоянный вычислительный кластер.

Ресурсы выделяются автоматически под конкретную задачу.

Это особенно удобно при нерегулярных аналитических нагрузках.

Serverless и Machine Learning

Serverless может использоваться для небольшого ML-инференса или запуска вспомогательных процессов.

Например, после загрузки текста функция вызывает модель классификации и сохраняет результат.

Но большие модели требуют значительного объема памяти или GPU и часто должны постоянно находиться в загруженном состоянии.

Для таких задач специализированный inference-сервис может быть эффективнее классического FaaS.

Serverless и генеративный ИИ

Serverless удобно использовать как интеграционный слой для LLM API.

Например, после появления нового обращения функция получает текст, отправляет его языковой модели и сохраняет классификацию.

При этом необходимо учитывать ограничения внешнего API, стоимость токенов и параллельные запросы.

Автоматическое масштабирование Serverless-компонента не увеличивает автоматически лимиты внешнего AI-сервиса.

Serverless и AI-агенты

Serverless-функции могут выступать инструментами для AI-агента.

Одна функция получает информацию о клиенте, другая формирует файл, третья инициирует бизнес-операцию.

Агент вызывает нужный инструмент по мере выполнения задачи.

Для действий, изменяющих реальные данные, необходимо ограничивать права и при необходимости использовать подтверждение пользователя.

Serverless и IoT

IoT-устройства отправляют события нерегулярно и в большом количестве.

Serverless хорошо соответствует такой модели нагрузки.

Например, датчик передает температуру, а функция проверяет значение и формирует уведомление при превышении порога.

При росте количества устройств система автоматически увеличивает число обработчиков.

Serverless и webhook

Webhook является одним из простых способов запуска Serverless-функции.

Внешняя система отправляет HTTP-запрос после определенного события.

Например, платежный сервис сообщает об успешной оплате.

Обработчик должен проверять подлинность запроса и быть готов к повторной доставке.

Idempotency

В распределенной Serverless-архитектуре одно событие может быть обработано более одного раза.

Поэтому критичные операции должны быть идемпотентными.

Например, повторный webhook оплаты не должен дважды создавать одно и то же начисление.

Для этого используются уникальные идентификаторы операций и проверка уже обработанных событий.

Retry

Если временно недоступна база или внешнее API, событие может быть обработано повторно.

Retry повышает устойчивость системы к кратковременным сбоям.

Но повторный запуск делает идемпотентность еще более важной.

Следует также ограничивать число повторов и использовать увеличивающиеся интервалы между попытками.

Dead Letter Queue

Если сообщение невозможно обработать после нескольких попыток, его можно отправить в отдельную очередь ошибок.

Такая очередь называется Dead Letter Queue.

Команда анализирует проблемные события отдельно и может повторно отправить их после исправления причины.

Это помогает не терять важные операции.

Serverless Workflow

Сложный бизнес-процесс может состоять из нескольких Serverless-компонентов.

Например, документ нужно проверить, распознать, классифицировать, записать в базу и отправить уведомление.

Для управления последовательностью используются workflow-сервисы и оркестраторы.

Они хранят состояние процесса и определяют, какой этап должен выполняться следующим.

Observability

Serverless-приложение может состоять из десятков распределенных компонентов.

Поэтому особенно важна наблюдаемость системы.

Команда должна понимать, какой запрос вызвал конкретную функцию, сколько она выполнялась и где появилась ошибка.

Для этого используются логи, метрики и распределенная трассировка.

Логирование

В Serverless обычно нельзя рассчитывать на просмотр файлов конкретного постоянного сервера.

Логи централизованно отправляются в систему наблюдаемости.

Полезно добавлять идентификатор запроса или события, чтобы связывать действия нескольких компонентов.

При этом не следует сохранять пароли, токены и лишние персональные данные.

Distributed Tracing

Один запрос может пройти через API Gateway, функцию, очередь, еще одну функцию и базу данных.

Distributed Tracing позволяет увидеть весь этот путь как единую операцию.

Если система стала медленной, можно определить, на каком этапе возникла задержка.

Это особенно полезно при большом количестве микросервисов.

Мониторинг Serverless

  • количество вызовов;
  • процент ошибок;
  • время выполнения;
  • Cold Start;
  • количество повторов;
  • concurrency;
  • размер очередей;
  • таймауты;
  • стоимость;
  • задержку зависимых сервисов.

В Serverless-системе обычного наблюдения за CPU одного сервера недостаточно.

Безопасность Serverless

Serverless уменьшает количество инфраструктурных компонентов, которыми занимается разработчик, но не устраняет задачи безопасности приложения.

Функция может иметь доступ к базам, хранилищам и внешним сервисам.

Если ей выданы слишком широкие права, компрометация одной функции может повлиять на другие ресурсы.

Поэтому используется принцип минимально необходимых полномочий.

Secrets Management

Пароли, API-ключи и токены не следует хранить непосредственно в исходном коде.

Для этого применяются специальные сервисы хранения секретов.

Функция получает только те значения, которые необходимы ей во время выполнения.

Также важно иметь возможность регулярно менять ключи.

Модель разделенной ответственности

В Serverless провайдер берет на себя значительную часть инфраструктуры.

Он обслуживает физические серверы, виртуализацию, операционную систему и среду запуска в пределах конкретной услуги.

Клиент продолжает отвечать за собственный код, бизнес-логику, данные, пользователей и настройки доступа.

Поэтому Serverless не делает небезопасное приложение автоматически защищенным.

Стоимость Serverless

Оплата часто зависит от количества вызовов, продолжительности выполнения и выделенных ресурсов.

Это удобно для нерегулярной нагрузки.

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

При стабильной высокой нагрузке стоимость необходимо сравнивать с PaaS, контейнерами и IaaS.

Serverless и Pay-as-you-go

Модель Pay-as-you-go особенно хорошо проявляется в Serverless.

Ресурсы могут оплачиваться только тогда, когда фактически выполняется код или используется сервис.

Это снижает расходы на простаивающую инфраструктуру.

Но связанные сервисы, например базы, хранилища и трафик, могут тарифицироваться отдельно.

Serverless и FinOps

Автоматическое масштабирование способно автоматически увеличивать не только производительность, но и расходы.

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

Поэтому необходимо устанавливать бюджеты, лимиты, уведомления и контролировать количество вызовов.

Serverless не отменяет финансового управления облачной инфраструктурой.

Vendor Lock-in

Serverless-приложение может сильно зависеть от API, форматов событий и управляемых сервисов конкретного провайдера.

При миграции на другую платформу часть интеграций потребуется переписать.

Чем больше используются стандартные протоколы, тем выше потенциальная переносимость.

Но полный отказ от уникальных облачных возможностей может уменьшить преимущества Serverless, поэтому здесь необходим баланс.

Преимущества Serverless

  • не требуется напрямую управлять серверами;
  • автоматическое масштабирование;
  • быстрый запуск новых сервисов;
  • удобная событийная модель;
  • меньше инфраструктурного администрирования;
  • возможность Scale to Zero;
  • эффективность при нерегулярной нагрузке;
  • удобство для API, webhook и фоновых задач;
  • хорошая интеграция с другими облачными сервисами.

Недостатки Serverless

Главным компромиссом является уменьшение контроля над средой выполнения.

Также необходимо учитывать Cold Start, ограничения времени и ресурсов, сложность распределенной отладки и Vendor Lock-in.

Для постоянно работающего приложения с предсказуемой высокой нагрузкой Serverless не всегда будет самым экономичным вариантом.

Поэтому выбирать архитектуру следует по характеристикам конкретной задачи.

Основные риски

РискЧто происходитКак снизить
Cold StartПервый запрос получает дополнительную задержкуОптимизировать инициализацию и архитектуру
Повторные событияОперация выполняется несколько разОбеспечить идемпотентность
Перегрузка зависимостейАвтомасштабирование перегружает базу или APIОграничивать concurrency
Рост стоимостиБольшое число вызовов увеличивает счетБюджеты и мониторинг
Vendor Lock-inМиграция требует переработкиКонтролировать специфические зависимости
Сложная диагностикаОшибка распределена между сервисамиЛоги и Distributed Tracing

Типичные ошибки при использовании Serverless

  1. Считать Serverless системой без серверов.
  2. Хранить постоянное состояние локально.
  3. Не учитывать повторную доставку событий.
  4. Не ограничивать параллельный запуск.
  5. Использовать функцию для слишком длительной задачи.
  6. Игнорировать Cold Start.
  7. Не настраивать централизованное логирование.
  8. Хранить секреты в коде.
  9. Разбивать приложение на слишком много мелких функций.
  10. Не контролировать стоимость связанных облачных сервисов.

Как спроектировать Serverless-приложение

Шаг 1. Определить события

Нужно понять, какие события запускают отдельные процессы.

Шаг 2. Разделить бизнес-логику

Каждый компонент должен выполнять понятную функцию.

Шаг 3. Вынести постоянное состояние

Для данных используются внешние базы и хранилища.

Шаг 4. Продумать повторные события

Критичные операции должны быть идемпотентными.

Шаг 5. Ограничить concurrency

Нужно учитывать возможности баз данных и внешних API.

Шаг 6. Настроить ошибки и Retry

Временные сбои обрабатываются автоматически, а необработанные события сохраняются отдельно.

Шаг 7. Настроить observability

Добавляются централизованные логи, метрики и трассировка.

Шаг 8. Настроить безопасность

Каждый компонент получает минимально необходимые права.

Шаг 9. Контролировать стоимость

Устанавливаются бюджеты и уведомления о неожиданном росте нагрузки.

Практический пример

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

Документ сохраняется в объектное хранилище. Это событие запускает Serverless-функцию, которая проверяет формат и передает сообщение в очередь.

Следующая функция извлекает текст, а еще одна записывает результат в базу и отправляет уведомление пользователю.

При массовой загрузке платформа автоматически увеличивает количество обработчиков.

Чтобы база данных не была перегружена, команда устанавливает максимальное значение concurrency.

Если один документ не удается обработать после нескольких попыток, сообщение попадает в Dead Letter Queue.

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

В результате компании не требуется содержать постоянный парк серверов только для обработки периодически возникающей нагрузки.

Когда Serverless особенно полезен

Serverless хорошо подходит для переменной и событийной нагрузки.

Это API, webhook, обработка файлов, очередей, IoT-событий, фоновые операции и небольшие автоматизации.

Особенно выгодной модель становится тогда, когда вычисления выполняются относительно короткое время и между запросами есть периоды простоя.

Также Serverless удобен небольшим командам, которые хотят сократить количество инфраструктурных задач.

Когда Serverless может не подойти

Для долгоживущих процессов, специализированных системных настроек и очень стабильной высокой нагрузки альтернативная архитектура иногда оказывается проще.

Большие ML-модели также могут требовать постоянно выделенного GPU и большого объема памяти.

Если приложение критично к минимальной latency каждого первого запроса, Cold Start необходимо отдельно оценивать.

Serverless следует использовать там, где его архитектурные свойства действительно соответствуют задаче.

Serverless и бизнес-ценность

Главная бизнес-ценность Serverless заключается в сокращении времени между созданием функции продукта и ее запуском в production.

Команда меньше занимается обслуживанием серверов и больше — бизнес-логикой.

При нерегулярной нагрузке уменьшается количество оплачиваемых простаивающих вычислительных ресурсов.

Но экономический эффект зависит от архитектуры и нагрузки, поэтому Serverless необходимо сравнивать с другими моделями по полной стоимости.

Связанные термины

ТерминСвязь с Serverless
FaaSОдин из основных способов реализации Serverless-вычислений
Облачные вычисленияServerless является одной из облачных моделей
PaaSТакже скрывает значительную часть инфраструктуры
IaaSПредоставляет более низкий уровень управления серверами
Event-Driven ArchitectureЧасто используется для запуска Serverless-компонентов
API GatewayМаршрутизирует HTTP-запросы к обработчикам
Cold StartЗадержка при создании новой среды выполнения
Message QueueИспользуется для асинхронного обмена событиями
IdempotencyЗащищает от последствий повторной обработки событий
MicroservicesМогут быть реализованы с помощью Serverless-компонентов

Краткий итог

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

FaaS является одним из наиболее известных вариантов Serverless, однако сама концепция шире и включает различные управляемые облачные сервисы.

Serverless особенно хорошо подходит для событийных систем, API, webhook, фоновых задач, обработки файлов и нерегулярной нагрузки. Ключевыми преимуществами являются автоматическое масштабирование, снижение инфраструктурной нагрузки на команду и возможность оплачивать ресурсы ближе к фактическому использованию.

При этом необходимо учитывать Cold Start, ограничения среды, повторную доставку событий, Vendor Lock-in и нагрузку на зависимые системы. Serverless не отменяет архитектуру, безопасность и мониторинг — он лишь переносит значительную часть инфраструктурного управления на облачного провайдера.

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

6 вопросов
Что такое Serverless простыми словами?

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

Правда ли, что в Serverless нет серверов?

Нет. Серверы физически существуют и выполняют код. Название означает, что разработчик не управляет ими напрямую: обслуживание и выделение вычислительных ресурсов берет на себя облачная платформа.

Чем Serverless отличается от FaaS?

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

Чем Serverless отличается от PaaS?

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

Что такое Cold Start в Serverless?

Cold Start — дополнительная задержка, возникающая, когда платформе требуется создать или подготовить новую среду выполнения перед обработкой запроса.

Для каких задач подходит Serverless?

Serverless хорошо подходит для API, webhook, обработки файлов, фоновых задач, очередей сообщений, IoT-событий, интеграций и других процессов с событийной или переменной нагрузкой.

Была ли статья полезна?
Документ обновляется командой EFSOL. Свяжитесь с нами, если нашли неточность.
Нужна консультация?

Поможем спроектировать, развернуть и сопроводить облачную или гибридную инфраструктуру под задачи вашего бизнеса.

Ответим в течение часа в рабочее время
Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.