Открыть сервис

Бессерверные вычисления

Бессерверные вычисления (англ. serverless computing) — это модель облачных вычислений, в которой провайдер облачных услуг динамически управляет выделением и распределением вычислительных ресурсов, а пользователь платит только за фактически использованные ресурсы при выполнении кода, не управляя серверной инфраструктурой. В отличие от традиционных облачных моделей (IaaS, PaaS), при бессерверном подходе разработчик не создаёт, не настраивает и не масштабирует серверы, а сосредотачивается исключительно на написании кода приложения. Ключевой особенностью является автоматическое масштабирование от нуля до пиковой нагрузки и оплата по факту выполнения (по модели pay-as-you-go), что отличает бессерверные вычисления от других облачных сервисов, где ресурсы резервируются заранее.

История

Концепция бессерверных вычислений возникла как развитие идей платформы как услуги (PaaS) и контейнеризации. Первые коммерческие реализации появились в середине 2010-х годов. В 2014 году компания Amazon Web Services (AWS) запустила сервис AWS Lambda, который считается первой широко доступной платформой для бессерверных вычислений. AWS Lambda позволяла запускать код в ответ на события (например, загрузку файла в S3, HTTP-запрос через API Gateway) без необходимости управлять серверами.

В 2016 году Google представила Google Cloud Functions, а Microsoft — Azure Functions. В 2017 году IBM запустила IBM Cloud Functions на базе проекта Apache OpenWhisk. В последующие годы количество провайдеров и поддерживаемых языков программирования (Python, Node.js, Java, Go, .NET, Ruby и др.) значительно расширилось. К 2020-м годам бессерверные вычисления стали одним из основных трендов в облачных технологиях, активно используемым для создания микросервисных архитектур, обработки событий и задач с переменной нагрузкой.

Архитектура и принцип работы

Бессерверные вычисления базируются на концепции функции как услуги (FaaS, Function as a Service). Разработчик пишет код в виде отдельных функций, которые загружаются в облачную платформу. Каждая функция обычно решает одну конкретную задачу (например, обработка изображения, отправка уведомления, запрос к базе данных). Платформа автоматически создаёт изолированное окружение (контейнер) для выполнения каждой функции, запускает его при поступлении события (триггера) и останавливает после завершения работы.

Ключевые компоненты

Процесс выполнения

  1. Пользователь загружает код функции в облачную платформу.
  2. Платформа регистрирует функцию и связывает её с триггерами.
  3. При наступлении события (например, HTTP-запрос к API) платформа создаёт новый экземпляр контейнера с функцией (если нет уже работающего экземпляра).
  4. Функция выполняется, обрабатывая входные данные.
  5. После завершения выполнения контейнер может быть остановлен (если нет новых запросов) или оставаться «тёплым» на короткое время для быстрого ответа на следующий запрос.
  6. Пользователь получает логи и метрики (время выполнения, количество вызовов, ошибки).

Классификация

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

По типу услуги

По сценарию использования

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

Недостатки и ограничения

Применение

Бессерверные вычисления нашли широкое применение в различных областях:

Примеры платформ

Критика

Основная критика бессерверных вычислений связана с проблемой привязки к провайдеру (vendor lock-in) и сложностью переноса приложений между облачными платформами. Также отмечается, что модель не является полностью «бессерверной»: серверы всё ещё существуют, но управляются провайдером, что снижает контроль пользователя над инфраструктурой. Холодный старт остаётся серьёзным ограничением для приложений, чувствительных к задержкам. Кроме того, для сложных, долго выполняющихся задач бессерверный подход может быть менее эффективным, чем традиционные виртуальные машины или контейнеры.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →