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

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 →