Обзор автомасштабирования в виртуальных машинах, облачных службах и веб-приложениях Microsoft AzureOverview of autoscale in Microsoft Azure Virtual Machines, Cloud Services, and Web Apps

В этой статье объясняется, что такое автомасштабирование Microsoft Azure, каковы преимущества этой функции и как начать ее использовать.This article describes what Microsoft Azure autoscale is, its benefits, and how to get started using it.

Автомасштабирование Azure Monitor используется только с масштабируемыми наборами виртуальных машин, облачными службами, веб-приложениями службы приложений и службами управления API.Azure Monitor autoscale applies only to Virtual Machine Scale Sets, Cloud Services, App Service - Web Apps, and API Management services.

Примечание

В Azure доступно два способа автомасштабирования.Azure has two autoscale methods. Более старый способ работает с виртуальными машинами (группами доступности).An older version of autoscale applies to Virtual Machines (availability sets). Для него предлагается ограниченная поддержка, поэтому мы рекомендуем перейти к масштабируемым наборам виртуальных машин, чтобы обеспечить более быстрое и надежное автомасштабирование.This feature has limited support and we recommend migrating to virtual machine scale sets for faster and more reliable autoscale support. В этой статье есть ссылка на сведения об использовании более старой технологии.A link on how to use the older technology is included in this article.

Основные сведения об автомасштабированииWhat is autoscale?

Благодаря автомасштабированию вы получаете именно тот объем ресурсов, который нужен для обработки нагрузки в вашем приложении.Autoscale allows you to have the right amount of resources running to handle the load on your application. Эта функция позволяет добавлять ресурсы для обработки дополнительной нагрузки и удалять неиспользуемые ресурсы для экономии средств.It allows you to add resources to handle increases in load and also save money by removing resources that are sitting idle. Вы указываете минимальное и максимальное количество экземпляров, которые должны работать, и система на основании набора правил автоматически добавляет или удаляет виртуальные машины.You specify a minimum and maximum number of instances to run and add or remove VMs automatically based on a set of rules. Если указано минимальное количество, приложение работает всегда, даже при отсутствии нагрузки.Having a minimum makes sure your application is always running even under no load. Максимальное количество, в свою очередь, ограничивает общую возможную почасовую стоимость.Having a maximum limits your total possible hourly cost. Используя созданные вами правила, система автоматически масштабирует ресурсы в диапазоне двух предельных значений.You automatically scale between these two extremes using rules you create.

Объяснение автомасштабирования.

Когда условия правил выполняются, активируется одно или несколько действий автомасштабирования.When rule conditions are met, one or more autoscale actions are triggered. К ним относятся добавление и удаление виртуальных машин, а также другие настраиваемые действия.You can add and remove VMs, or perform other actions. Этот процесс показан на концептуальной схеме ниже.The following conceptual diagram shows this process.

Схема потока автомасштабирования

Приведенные ниже сведения относятся к показанной выше схеме.The following explanation applies to the pieces of the previous diagram.

Метрики ресурсовResource Metrics

Ресурсы выдают метрики, которые позже обрабатываются с помощью правил.Resources emit metrics, these metrics are later processed by rules. Метрики можно получить различными способами.Metrics come via different methods. В масштабируемых наборах виртуальных машин используются данные телеметрии из агентов диагностики Azure, а телеметрия для веб-приложений и облачных служб поступает непосредственно из инфраструктуры Azure.Virtual machine scale sets use telemetry data from Azure diagnostics agents whereas telemetry for Web apps and Cloud services comes directly from the Azure Infrastructure. К некоторым часто используемым статистическим сведениям относятся загрузка ЦП, использование памяти, число потоков, длина очереди и использование диска.Some commonly used statistics include CPU Usage, memory usage, thread counts, queue length, and disk usage. Список данных телеметрии, которые можно использовать, см. в статье об общих метриках автомасштабирования в Azure Monitor.For a list of what telemetry data you can use, see Autoscale Common Metrics.

Пользовательские метрикиCustom Metrics

Вы также можете использовать собственные пользовательские метрики, выдаваемые приложениями.You can also leverage your own custom metrics that your application(s) may be emitting. Если вы настроили приложения для отправки метрик в Application Insights, вы сможете использовать эти метрики для принятия решений о том, нужно ли выполнять масштабирование.If you have configured your application(s) to send metrics to Application Insights you can leverage those metrics to make decisions on whether to scale or not.

ВремяTime

В правилах на основе расписания используется формат UTC.Schedule-based rules are based on UTC. При настройке правил необходимо правильно задать свой часовой пояс.You must set your time zone properly when setting up your rules.

ПравилаRules

На схеме показано только одно правило автомасштабирования. Однако можно использовать и сразу несколько.The diagram shows only one autoscale rule, but you can have many of them. При необходимости для конкретной ситуации можно создать сложные перекрывающиеся правила.You can create complex overlapping rules as needed for your situation. Правила бывают следующих типов:Rule types include

  • на основе метрики , например выполнение определенного действия при загрузке ЦП более чем на 50 %;Metric-based - For example, do this action when CPU usage is above 50%.
  • на основе времени , например активация webhook каждую субботу в 8:00 в заданном часовом поясе.Time-based - For example, trigger a webhook every 8am on Saturday in a given time zone.

Правила на основе метрик измеряют нагрузку приложений и в зависимости от нагрузки добавляют или удаляют виртуальные машины.Metric-based rules measure application load and add or remove VMs based on that load. Правила, в которых используется расписание, позволяют масштабировать ресурсы, когда в изменении нагрузки просматриваются закономерности. Например, вы хотите добавить или удалить ресурсы до того, как нагрузка увеличится или уменьшится.Schedule-based rules allow you to scale when you see time patterns in your load and want to scale before a possible load increase or decrease occurs.

Действия и автоматизацияActions and automation

Правила могут вызвать одно или несколько типов действий:Rules can trigger one or more types of actions.

  • Масштабирование — свертывание или развертывание виртуальных машин.Scale - Scale VMs in or out
  • Электронная почта — отправка письма по электронной почте администраторам и соадминистраторам подписки, а также на указанные дополнительные адреса электронной почты.Email - Send email to subscription admins, co-admins, and/or additional email address you specify
  • Автоматизация с помощью объектов webhook — вызов объектов webhook, с помощью которых можно активировать несколько сложных действий в среде Azure и за ее пределами.Automate via webhooks - Call webhooks, which can trigger multiple complex actions inside or outside Azure. В Azure можно запустить Runbook службы автоматизации Azure, функции Azure или приложения Azure Logic.Inside Azure, you can start an Azure Automation runbook, Azure Function, or Azure Logic App. К примерам сторонних служб можно отнести Slack и Twilio.Example third-party URL outside Azure include services like Slack and Twilio.

Параметры автомасштабированияAutoscale Settings

Автомасштабирование имеет определенную структуру, для описания которой используется соответствующая терминология.Autoscale use the following terminology and structure.

  • Подсистема автомасштабирования считывает параметр автомасштабирования и определяет, что нужно делать с масштабом: увеличивать или уменьшать.An autoscale setting is read by the autoscale engine to determine whether to scale up or down. Этот параметр содержит один или несколько профилей, информацию о целевом ресурсе и настройки уведомлений.It contains one or more profiles, information about the target resource, and notification settings.

    • Профиль автомасштабирования — это комбинация следующих компонентов:An autoscale profile is a combination of a:

      • параметр емкости, который определяет минимальное, максимальное и стандартное значение числа экземпляров;capacity setting, which indicates the minimum, maximum, and default values for number of instances.

      • набор правил, , каждый из которых включает триггер (время или метрика) и действие масштабирования (увеличение или уменьшение);set of rules, each of which includes a trigger (time or metric) and a scale action (up or down).

      • сведения о повторении, которые определяют, когда именно функция автомасштабирования должна активировать тот или иной профиль.recurrence, which indicates when autoscale should put this profile into effect.

        На случай, если одни требования частично дублируются другими требованиями, можно создать несколько профилей.You can have multiple profiles, which allow you to take care of different overlapping requirements. У вас может быть несколько профилей автомасштабирования, предназначенных, например, для разных дней недели или разного времени суток.You can have different autoscale profiles for different times of day or days of the week, for example.

    • Параметр уведомлений определяет, какие уведомления должны появляться, когда происходит событие автомасштабирования, отвечающее условиям одного из профилей автомасштабирования.A notification setting defines what notifications should occur when an autoscale event occurs based on satisfying the criteria of one of the autoscale setting’s profiles. Функция автомасштабирования может отправлять уведомления на электронную почту или вызывать перехватчики webhook.Autoscale can notify one or more email addresses or make calls to one or more webhooks.

Структура правил, профилей и параметров автомасштабирования Azure

Полный список настраиваемых полей и описаний см. в статье о REST API для функции автомасштабирования.The full list of configurable fields and descriptions is available in the Autoscale REST API.

Примеры кода см. в следующих статьях:For code examples, see

Горизонтальное и вертикальное масштабированиеHorizontal vs vertical scaling

При автомасштабировании ресурсы масштабируются только горизонтально, то есть происходит увеличение (развертывание) или уменьшение (свертывание) количества экземпляров виртуальной машины.Autoscale only scales horizontally, which is an increase ("out") or decrease ("in") in the number of VM instances. Горизонтальное масштабирование в облаке более гибкое, так как при этом можно потенциально запускать тысячи виртуальных машин для обработки нагрузки.Horizontal is more flexible in a cloud situation as it allows you to run potentially thousands of VMs to handle load.

С вертикальным масштабированием дело обстоит иначе.In contrast, vertical scaling is different. Имеющееся количество виртуальных машин всегда остается неизменным, а увеличивается или уменьшается их мощность.It keeps the same number of VMs, but makes the VMs more ("up") or less ("down") powerful. Мощность измеряется по объему памяти, скорости ЦП, дисковому пространству и т. д. Вертикальное масштабирование связано с дополнительными ограничениями.Power is measured in memory, CPU speed, disk space, etc. Vertical scaling has more limitations. Оно зависит от доступности оборудования большего размера, что, в свою очередь, зависит от региона. К тому же при таком масштабировании быстро достигается верхнее ограничение.It's dependent on the availability of larger hardware, which quickly hits an upper limit and can vary by region. Обычно при вертикальном масштабировании требуется запускать и останавливать виртуальную машину.Vertical scaling also usually requires a VM to stop and restart.

Дополнительные сведения см. в статье Вертикальное масштабирование виртуальной машины Azure c помощью службы автоматизации Azure.For more information, see Vertically scale Azure virtual machine with Azure Automation.

Варианты доступаMethods of access

Автомасштабирование можно настроить с помощью следующих инструментов:You can set up autoscale via

Службы, поддерживающие автомасштабированиеSupported services for autoscale

ServiceService Схемы и документыSchema & Docs
Веб-приложенияWeb Apps Scaling Web Apps (Масштабирование веб-приложения)Scaling Web Apps
Облачные службыCloud Services Автомасштабирование облачной службыAutoscale a Cloud Service
Виртуальные машины: КлассическийVirtual Machines: Classic Scaling Classic Virtual Machine Availability Sets (Масштабирование групп доступности классических виртуальных машин)Scaling Classic Virtual Machine Availability Sets
Виртуальные машины: масштабируемые наборы WindowsVirtual Machines: Windows Scale Sets Масштабирование и масштабируемые наборы виртуальных машин в WindowsScaling virtual machine scale sets in Windows
Виртуальные машины: масштабируемые наборы LinuxVirtual Machines: Linux Scale Sets Масштабирование и масштабируемые наборы виртуальных машин в LinuxScaling virtual machine scale sets in Linux
Виртуальные машины: пример WindowsVirtual Machines: Windows Example Расширенная настройка автомасштабирования с помощью шаблонов Resource Manager для набора масштабирования виртуальных машинAdvanced Autoscale configuration using Resource Manager templates for VM Scale Sets
Служба управления APIAPI Management service Автоматическое масштабирование экземпляра службы управления API AzureAutomatically scale an Azure API Management instance

Дальнейшие действияNext steps

Дополнительные сведения об автомасштабировании см. в пошаговых руководствах по автомасштабированию выше, а также в следующих статьях:To learn more about autoscale, use the Autoscale Walkthroughs listed previously or refer to the following resources: