Как проверить масштабируемость функций Azure?

Поскольку мы новичок в приложении-функциях Azure, мы слышали, что одной из его замечательных функций является масштабируемость, но как работает масштабирование функций Azure? Было ли это автоматическое масштабирование сзади или какой-либо механизм, который мы можем настроить? Например, ограничение максимального размера шкалы.

Когда мы отлаживаем функцию azure локально (мы пробовали ServiceBusTrigger, EventHubTrigger, QueueTrigger и CosmosDBTrigger), кажется, что каждый раз один и тот же экземпляр функции вызывается несколько раз снова и снова пока мы продолжаем отправлять сообщения, которые не работают как параллельное масштабирование / работа, как мы ожидали, есть ли хороший способ отладки масштабируемости локально?


person KevDing    schedule 15.08.2019    source источник


Ответы (2)


Масштабирование функций Azure определяется Scale Контроллер:

Контроллер весов

Контроллер масштабирования работает только в облаке, поэтому локально протестировать масштабирование невозможно. Также не раскрывается внутреннее устройство этого контроллера.

Лучший способ проверить масштабирование - это проверить концепцию в облаке и убедиться, что вы настроить Application Insights. После нагрузочного тестирования приложения-функции вы можете выполнить запрос Log Analytics, например следующий, чтобы узнать, были ли подготовлены несколько экземпляров приложения-функции:

requests | 
project timestamp, id, operation_Id, operation_Name, duration, cloud_RoleName, cloud_RoleInstance | 
where cloud_RoleName =~ 'FUNCTION_APP_NAME' | 
order by timestamp desc | 
take 100

Свойство cloud_RoleInstance содержит идентификатор подготовленного ресурса. Когда этот столбец содержит несколько значений, вы знаете, что произошло масштабирование.

Log Analytics

Честно говоря, тестирование автомасштабирования Функций Azure не должно быть для вас первоочередной задачей, поскольку это ответственность Azure. Вероятно, вам понадобится автомасштабирование для обработки как малых, так и больших рабочих нагрузок, и у вас могут быть ограничения по времени, в которые обработка должна быть завершена. Если вас это действительно беспокоит, возможно, вам лучше измерить сквозную производительность / время.

person Marc    schedule 16.08.2019
comment
Я хотел бы знать, можете ли вы заставить локальный эмулятор запускать много экземпляров. Не для отладки, а для выявления проблем параллелизма. - person Jeff Putz; 13.05.2020

Масштабируемость функции Azure зависит от план хостинга, и есть 3 типа планов хостинга: тарифный план, премиум-план (он находится в предварительной версии, поэтому мы можем игнорировать его сейчас), выделенный план (план обслуживания приложений).

Для плана потребления масштабируется автоматически по количеству входящих событий.

Для плана обслуживания приложений , вы можете масштабировать вручную, добавляя дополнительные экземпляры виртуальных машин, или также можете включить автомасштабирование. Более подробную информацию вы можете найти в этом статья.

И когда вы запускаете его локально без плана хостинга, вы не можете увидеть это поведение.

Надеюсь это поможет.

person Ivan Yang    schedule 16.08.2019
comment
Большой недостаток - не видеть, как будет работать масштабирование при локальной отладке в Visual Studio. Я понимаю, что ваша локальная машина разработки не будет соответствовать оборудованию в Azure, но было бы неплохо найти золотую середину, чтобы показать масштабирование. - person Chris Smith; 09.01.2021