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

План потребления Azure

План потребления Azure — это модель ценообразования и развёртывания в облачной платформе Microsoft Azure, при которой оплата взимается только за фактически использованные вычислительные ресурсы и время выполнения кода, без необходимости предварительного выделения и оплаты фиксированного объёма мощностей. Данная модель реализована в сервисе Azure Functions и некоторых других бессерверных (serverless) вычислениях, позволяя запускать код в ответ на события без управления серверной инфраструктурой.

История

План потребления (Consumption Plan) был представлен корпорацией Microsoft в 2016 году вместе с запуском Azure Functions как часть стратегии бессерверных вычислений. Изначально он предназначался для выполнения небольших, эпизодических задач, таких как обработка HTTP-запросов, работа с очередями или реагирование на изменения в хранилищах данных. В отличие от традиционных планов Azure App Service (например, выделенный план или план с предоплатой), Consumption Plan не требует создания виртуальных машин или пула серверов — инфраструктура полностью управляется платформой.

С течением времени план был расширен: добавлены поддержка более длительного времени выполнения (до 10 минут по умолчанию, с возможностью увеличения до 60 минут для некоторых триггеров), улучшена интеграция с другими сервисами Azure (Service Bus, Event Hubs, Cosmos DB) и введены новые тарифные зоны. В 2021 году Microsoft анонсировала план «Elastic Premium» как промежуточный вариант между Consumption и выделенными планами, но Consumption остаётся самым дешёвым и гибким для сценариев с нерегулярной нагрузкой.

Основные характеристики

Модель оплаты

  • Оплата за выполнение: взимается плата за каждое выполнение функции (execution) — количество вызовов, умноженное на время выполнения, округлённое до ближайших 100 миллисекунд.
  • Оплата за потреблённые ресурсы: дополнительно тарифицируется объём памяти (в ГБ-секундах) и количество операций ввода-вывода. Первый 1 миллион выполнений в месяц предоставляется бесплатно (в рамках пожизненной бесплатной подписки Azure).
  • Отсутствие предоплаты: не требуется резервировать виртуальные машины или платить за простой — затраты возникают только при активной работе функций.

Масштабирование

  • Автоматическое масштабирование: при увеличении нагрузки количество экземпляров функции автоматически увеличивается до 200 (по умолчанию, может быть настроено выше по запросу). При снижении нагрузки экземпляры высвобождаются.
  • Холодный старт: при отсутствии вызовов в течение некоторого времени (обычно 5–20 минут) экземпляр выгружается из памяти. При новом запросе происходит «холодный старт» — загрузка кода и среды выполнения, что может добавить задержку в 0,5–5 секунд в зависимости от размера функции и используемых библиотек.

Ограничения

  • Максимальное время выполнения: по умолчанию 5 минут для HTTP-триггеров и 10 минут для всех остальных. Для длительных задач (например, обработка видео) рекомендуется использовать план Premium или выделенный план.
  • Максимальный объём памяти: 1,5 ГБ на экземпляр (в некоторых регионах до 2 ГБ).
  • Максимальный размер файла: 200 МБ для загружаемых пакетов кода.
  • Сетевые ограничения: функции в плане потребления не имеют доступа к виртуальной сети Azure (VNet) без дополнительных настроек (через интеграцию с VNet в плане Premium).

Применение

Типичные сценарии

  • Обработка событий в реальном времени: реагирование на загрузку файлов в Blob Storage, сообщения в очередях (Azure Queue Storage, Service Bus), изменения в базах данных (Cosmos DB change feed).
  • Создание API и веб-хуков: лёгкие HTTP-эндпоинты для интеграции с внешними сервисами (например, Telegram-боты, веб-приложения с низкой посещаемостью).
  • Планировщики задач: выполнение кода по расписанию (триггер TimerTrigger) — например, ежедневная очистка логов или отправка уведомлений.
  • Обработка данных: небольшие ETL-процессы (извлечение, преобразование, загрузка), парсинг файлов, генерация отчётов.

Преимущества перед другими планами

  • Низкая стоимость для редких задач: если функция вызывается несколько раз в день, затраты могут составлять доли рубля в месяц.
  • Отсутствие управления инфраструктурой: не нужно настраивать серверы, обновлять ОС или следить за патчами безопасности.
  • Гибкость: можно менять код без перезапуска сервиса, а также легко комбинировать с другими сервисами Azure через привязки (bindings).

Недостатки

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

Сравнение с другими планами Azure Functions

ХарактеристикаПлан потребленияПлан PremiumВыделенный план (App Service)
ОплатаЗа выполнение и памятьЗа предварительно выделенные единицы (vCPU + память)Фиксированная плата за виртуальную машину
МасштабированиеАвтоматическое до 200 экземпляровАвтоматическое до 100+ экземпляровРучное или автоматическое (до 30 экземпляров)
Холодный стартЕсть (до 5 с)Минимальный (всегда тёплые экземпляры)Отсутствует (экземпляры всегда работают)
Максимальное время выполнения10 минут60 минутНеограниченно (до тайм-аута приложения)
Доступ к VNetТолько через интеграцию с VNet (Premium)ПолныйПолный
Стоимость при низкой нагрузкеОчень низкаяСредняяВысокая (простой оплачивается)

Интересные факты

  • План потребления Azure Functions является частью более широкой концепции «бессерверных вычислений» (serverless), где разработчик фокусируется только на коде, а инфраструктура полностью абстрагируется.
  • В 2022 году Microsoft сообщила, что более 60% функций Azure Functions в мире работают именно в плане потребления, что делает его самым популярным вариантом развёртывания.
  • Для оптимизации холодного старта разработчики часто используют «предварительный прогрев» (pre-warming) — отправку периодических запросов к функции, чтобы она оставалась в памяти, хотя это увеличивает затраты.

Критика

Основные нарекания пользователей связаны с непредсказуемостью холодного старта и сложностью отладки длительных операций. Некоторые разработчики отмечают, что при высокой частоте вызовов (более 1000 в минуту) план потребления может стать дороже, чем план Premium, из-за накладных расходов на создание новых экземпляров. Кроме того, отсутствие прямого доступа к виртуальной сети ограничивает использование в корпоративных сценариях, где требуется изоляция данных.

Источники

  • Документация Microsoft Azure: «Azure Functions Consumption plan hosting» (learn.microsoft.com).
  • Официальный блог Microsoft Azure: «Serverless computing in Azure» (azure.microsoft.com/blog).
  • Книга «Azure Serverless Computing Cookbook» (автор: Praveen Kumar Sreeram, 2020).
  • Статья «Comparing Azure Functions hosting plans» (docs.microsoft.com).
  • Отчёты аналитиков Gartner по рынку облачных вычислений (2023).

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

На главную BFOmetr →