План потребления 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 →