Распространенные шаблоны автомасштабирования
В этом уроке мы рассмотрим шаблоны автомасштабирования.
Автоматическое масштабирование не реализуется мгновенно. Простое добавление ресурсов в систему или выполнение большего количества экземпляров процесса не гарантирует улучшенную производительность системы. При разработке стратегии автоматического масштабирования необходимо учитывать следующее.
Рекомендации
Определите узкие места: Масштабирование не является панацеей для каждой проблемы с производительностью. Например, если серверная база данных является узким местом, она не помогает добавлять дополнительные веб-серверы. Определите и устраните узкие места в системе перед созданием дополнительных экземпляров в проблеме. Возникновение узких мест наиболее вероятно в компонентах, которые работают с отслеживанием состояния.
Распакуйте рабочие нагрузки по требованиям масштабируемости. Приложения часто состоят из нескольких рабочих нагрузок с различными требованиями к масштабированию. Например, в приложении может использоваться общедоступный веб-сайт и отдельный веб-интерфейс администрирования. Общедоступный сайт может возникнуть внезапный всплеск трафика, в то время как сайт администрирования имеет меньшую, более прогнозируемую нагрузку.
Разгрузка ресурсоемких задач. Задачи, требующие большого количества ресурсов ЦП или операций ввода-вывода, должны быть перемещены в фоновые задания, когда это возможно. Разгрузка задач сводит к минимуму нагрузку на интерфейсную часть, обрабатывающую запросы пользователей.
Используйте встроенные функции автомасштабирования: если у приложения есть прогнозируемая, регулярная рабочая нагрузка, выполняйте расширение по расписанию. Например, горизонтально увеличивайте масштаб приложения в рабочее время. В противном случае, если рабочая нагрузка не является прогнозируемой, используйте метрики производительности, такие как ЦП или длина очереди запросов, для запуска автомасштабирования.
Рассмотрите возможность агрессивного автомасштабирования для критически важных рабочих нагрузок: вы хотите оставаться впереди спроса. Лучше всего быстро добавлять новые экземпляры при интенсивной нагрузке, чтобы обрабатывать другой трафик, а затем постепенно выполнить обратное масштабирование.
Проектирование масштабирования. Помните, что с эластичным масштабированием приложение имеет периоды масштабирования при удалении экземпляров. Приложение должно корректно обрабатывать удаление экземпляров. Далее приведены некоторые способы обработки горизонтального уменьшения масштаба.
- Прослушивайте события завершения работы, когда они доступны и завершаются очисткой.
- Поддержка временной обработки ошибок и повторных попыток.
- Рассмотрите возможность разорвать работу для длительных задач.
- Поместите рабочие элементы в очередь, чтобы другой экземпляр смог забрать работу, если экземпляр удаляется в середине обработки.
Уведомления
- Все ошибки автомасштабирования записываются в журнал действий. Затем вы можете настроить оповещение журнала действий, которое уведомляет вас по электронной почте, службе коротких сообщений (SMS) или веб-перехватчикам при сбое автомасштабирования.
- Сведения обо всех успешных действиях при масштабировании также публикуются в журнале действий. Затем вы можете настроить оповещение журнала действий, чтобы получать уведомления по электронной почте, SMS или веб-перехватчикам всякий раз, когда есть успешное действие автомасштабирования. Вы также можете настроить уведомления электронной почты или веб-перехватчика, чтобы получать уведомления об успешных действиях масштабирования с помощью вкладки "Уведомления" в параметре автомасштабирования.
Общие шаблоны для масштабирования ресурсов в Azure
Масштабирование с учетом спроса
Вы можете автоматически масштабировать количество экземпляров служб в начале рабочего дня при увеличении спроса клиента. В конце рабочего дня можно выполнить автомасштабирование количества экземпляров приложения, чтобы снизить затраты на ресурсы ночью при низком уровне использования приложения.
Масштабирование в рабочие и выходные дни
В вечернее или выходные дни у вас может быть более низкий спрос на приложение. Если эта нагрузка является постоянной в течение определенного периода времени, можно настроить правила автомасштабирования, чтобы уменьшать количество экземпляров служб в масштабируемом наборе. При выполнении этого действия масштабирования снижается стоимость запуска масштабируемого набора, так как выполняется только количество экземпляров, необходимых для удовлетворения текущего спроса.
Масштабирование в праздничные дни
Если у вас есть большое использование службы в определенных частях месяца или финансового цикла, вы можете автоматически масштабировать количество экземпляров служб для удовлетворения их дополнительных потребностей. В случае маркетингового мероприятия, рекламной акции или праздничной распродажи можно автоматически масштабировать количество экземпляров службы заблаговременно, еще до того как возникнет ожидаемая потребность у клиента.
Масштабирование на основе пользовательской метрики
И наконец, рекомендуется тщательно определить правила автомасштабирования. Например, атака типа "отказ в обслуживании" (DoS), скорее всего, приведет к крупномасштабному притоку входящего трафика. Не пытайтесь справиться с всплеском активности вследствие такой атаки — это бесполезно и затратно. Поддельные запросы следует не обрабатывать, а отклонять. Правильнее будет реализовать обнаружение и фильтрацию таких запросов, чтобы предотвратить их поступление в службу.
После настройки правил автомасштабирования отслеживайте производительность приложения в динамике. При необходимости используйте результаты этого мониторинга для настройки шаблона, в котором масштабируется система.