Здесь инженер-программист, не обладающий большим опытом управления серверами, но желающий понять, как работает автоматическое масштабирование.
Вот предыстория:
У нас есть приложение без сохранения состояния, работающее в лазурном облаке, которое незаметно взаимодействует с базой данных Azure SQL. Сама база данных геореплицируется в двух разных серверных регионах.
Мы настроили автоматическое масштабирование, так что если загрузка сервера превышает 80%, мы масштабируем и добавляем экземпляр. Когда нагрузка упадет ниже 50%, мы снова уменьшим ее. Масштабирование обычно не происходит, но в периоды пиковой нагрузки сервер масштабируется автоматически.
Вот мой вопрос:
При включенном автоматическом масштабировании Azure автоматически выполняет балансировку нагрузки между экземплярами? Я понимаю, что в Azure также есть некоторые продукты для балансировки нагрузки, но я пытаюсь понять, нужны они нам или нет.
Без явной настройки балансировщика нагрузки бессмысленно масштабировать наши экземпляры?
Если вы используете один экземпляр своего веб-приложения, вам не на что будет балансировать нагрузку. Следовательно, вам нужно просто настроить масштабирование на портале на основе определенной метрики. Например, если CPU%> 80% в течение X минут, тогда масштабируйте до X экземпляров. Затем установите другое правило, которое гласит, что когда ЦП <80% в течение X минут, затем масштабируйте до X экземпляров.
Если бы вам нужно было настроить два экземпляра и сбалансировать их нагрузку, вам бы пришлось добавить балансировку нагрузки поверх экземпляров. Сделать это просто. Затем оттуда вы также можете установить те же правила мониторинга.
https://docs.microsoft.com/en-us/azure/architecture/best-practices/auto-scaling
https://azure.microsoft.com/en-us/features/autoscale/
https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/insights-autoscale-best-practices