Virtual Machine Scale Sets
Virtual Machine Scale Sets (VMSS) — это сервис облачной платформы Microsoft Azure, предназначенный для автоматического развёртывания, управления и масштабирования группы идентичных виртуальных машин (ВМ). VMSS позволяет создавать и администрировать набор однотипных вычислительных ресурсов, которые могут автоматически увеличивать или уменьшать своё количество в ответ на изменение нагрузки, что обеспечивает высокую доступность, отказоустойчивость и экономическую эффективность облачных приложений.
История и развитие
Концепция масштабируемых групп виртуальных машин возникла как ответ на потребность в автоматизации управления крупными распределёнными системами в облаке. До появления VMSS администраторам приходилось вручную создавать, настраивать и удалять отдельные ВМ, что было трудоёмко и подвержено ошибкам.
Сервис Virtual Machine Scale Sets был анонсирован корпорацией Microsoft в 2015 году на конференции Build. Первоначально он поддерживал только Windows Server и Linux. В последующие годы функциональность VMSS значительно расширилась: появилась поддержка пользовательских образов, интеграция с Azure Load Balancer и Application Gateway, возможность использования зон доступности, а также улучшенные механизмы автоматического масштабирования на основе метрик.
В 2019 году была представлена версия VMSS с гибким (flexible) режимом оркестрации, которая позволила размещать ВМ в одной группе доступности или в разных зонах, что дало больше контроля над размещением ресурсов. В 2021 году добавилась поддержка Spot-экземпляров (прерываемых ВМ) для экономии затрат на не критичные к времени выполнения задачи. На 2025 год VMSS является одним из ключевых компонентов Azure для построения масштабируемых и отказоустойчивых приложений.
Классификация и режимы оркестрации
VMSS поддерживает два основных режима оркестрации, которые определяют, как виртуальные машины размещаются и управляются в масштабируемом наборе.
Унифицированный режим (Uniform)
Это оригинальный режим VMSS. В унифицированном режиме все виртуальные машины в наборе создаются на основе одного и того же образа и конфигурации. Набор управляется как единая сущность: масштабирование, обновления и мониторинг применяются ко всем ВМ одновременно. Основные характеристики:
- Все ВМ идентичны по конфигурации.
- Управление через модель масштабируемого набора (Scale Set Model).
- Автоматическое создание и удаление ВМ при масштабировании.
- Поддержка автоматического обновления образов ОС.
- Ограниченная гибкость в настройке отдельных ВМ.
Гибридный режим (Flexible)
Гибридный режим, представленный в 2019 году, предоставляет больше контроля над размещением и конфигурацией отдельных ВМ. В этом режиме масштабируемый набор не является единой сущностью, а скорее координатором для группы ВМ, которые могут иметь разные конфигурации. Основные характеристики:
- ВМ могут быть размещены в разных зонах доступности или в одной группе доступности.
- Возможность использования разных образов и размеров ВМ в одном наборе.
- Поддержка стандартных ресурсов Azure (например, отдельных сетевых интерфейсов и дисков).
- Управление ВМ через стандартные API Azure, что упрощает интеграцию с существующими инструментами.
- Масштабирование происходит путём создания или удаления отдельных ВМ, а не всей группы.
Устройство и характеристики
Архитектура
VMSS состоит из следующих ключевых компонентов:
- Модель масштабируемого набора (Scale Set Model) — шаблон, определяющий конфигурацию всех ВМ в наборе (образ ОС, размер ВМ, виртуальная сеть, диски, расширения).
- Виртуальные машины — экземпляры, создаваемые на основе модели. Каждая ВМ имеет уникальный идентификатор и может быть доступна по внутреннему или внешнему IP-адресу.
- Балансировщик нагрузки — интеграция с Azure Load Balancer или Application Gateway для распределения входящего трафика между ВМ.
- Автоматическое масштабирование — механизм, который на основе заданных правил (метрики CPU, памяти, очереди сообщений и т.д.) автоматически изменяет количество ВМ.
- Правила обновления — определяют, как обновления конфигурации применяются к ВМ (например, последовательно или с задержкой).
Характеристики
- Масштабируемость: VMSS может содержать от 0 до 1000 ВМ (в унифицированном режиме) или до 1000 ВМ (в гибридном режиме с ограничением на количество зон).
- Автоматическое масштабирование: поддерживает правила на основе метрик (CPU, память, длина очереди), а также масштабирование по расписанию.
- Зоны доступности: ВМ могут быть размещены в разных зонах доступности Azure для обеспечения отказоустойчивости.
- Обновления: поддержка автоматического обновления образов ОС (например, для Windows Server или Ubuntu) с минимальным простоем.
- Мониторинг: интеграция с Azure Monitor и Application Insights для сбора метрик и журналов.
- Стоимость: оплата только за используемые ВМ и связанные ресурсы (диски, сеть). Spot-экземпляры позволяют снизить затраты до 90%.
Применение и значение
VMSS широко используется для построения масштабируемых и отказоустойчивых облачных приложений. Основные сценарии применения:
Веб-приложения и API
VMSS идеально подходит для развёртывания веб-приложений, которые испытывают переменную нагрузку. Автоматическое масштабирование позволяет добавлять ВМ в периоды пикового трафика и удалять их при снижении нагрузки, что оптимизирует затраты. Например, интернет-магазины, новостные порталы и сервисы потокового видео.
Пакетная обработка данных
Для задач, требующих большого количества вычислительных ресурсов в течение короткого времени (например, обработка изображений, рендеринг, научные расчёты), VMSS позволяет быстро развернуть сотни ВМ и автоматически удалить их после завершения работы.
Микросервисная архитектура
В микросервисных приложениях каждый сервис может быть развёрнут в отдельном VMSS, что обеспечивает независимое масштабирование и обновление компонентов.
Высокопроизводительные вычисления (HPC)
VMSS поддерживает создание кластеров ВМ с низкой задержкой (например, с использованием InfiniBand) для выполнения параллельных вычислений в научных и инженерных задачах.
Тестирование и разработка
Разработчики могут использовать VMSS для создания временных тестовых сред, которые автоматически удаляются после завершения тестирования, что экономит ресурсы.
Интересные факты
- VMSS поддерживает использование Spot-экземпляров (прерываемых ВМ), которые Azure может отозвать в любой момент, но которые стоят значительно дешевле. Это позволяет экономить до 90% затрат на некритичные задачи.
- В унифицированном режиме VMSS может автоматически обновлять образы ОС, используя автоматическое обновление образов ОС. При этом Azure сама загружает последний патч и перезапускает ВМ с минимальным простоем.
- VMSS интегрируется с Azure Autoscale, который поддерживает масштабирование на основе не только метрик, но и расписания (например, увеличение числа ВМ в рабочие часы и уменьшение ночью).
- В гибридном режиме VMSS можно использовать для размещения ВМ в разных зонах доступности, что обеспечивает отказоустойчивость на уровне зоны (например, при сбое в одном дата-центре).
- VMSS поддерживает пользовательские расширения (extensions), которые позволяют выполнять скрипты, устанавливать ПО или настраивать мониторинг на каждой ВМ при её создании.
Критика и ограничения
Несмотря на широкие возможности, VMSS имеет некоторые ограничения:
- Сложность управления: для настройки автоматического масштабирования и правил обновления требуется глубокое понимание Azure и мониторинга.
- Ограничения унифицированного режима: все ВМ в наборе идентичны, что затрудняет кастомизацию отдельных экземпляров.
- Зависимость от Azure: VMSS является проприетарным сервисом и не может быть перенесён в другие облака без существенной переработки.
- Задержки при масштабировании: создание новой ВМ может занимать несколько минут, что не всегда подходит для приложений с очень быстрыми пиками нагрузки.
- Стоимость: при неправильной настройке автоматического масштабирования можно получить неожиданно высокие счета.
Источники
- Microsoft Learn: «What are Virtual Machine Scale Sets?»
- Документация Azure: «Overview of autoscale in Microsoft Azure»
- Microsoft Build 2015: анонс VMSS
- Azure Blog: «Announcing Flexible orchestration for Virtual Machine Scale Sets» (2019)
- Azure Documentation: «Spot Virtual Machines»
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →