#windows #azure #load-balancing
#Windows #azure #балансировка нагрузки
Вопрос:
Из того, что я вижу в материалах Windows Azure о том, как развертывать приложения (например, this lab), нужно выбрать «размер роли» и количество экземпляров роли при развертывании своего приложения.
Это выглядит не круто — что произойдет, если произойдет внезапное увеличение числа запросов к приложению?
Возможно ли развернуть приложение таким образом, чтобы дополнительные экземпляры ролей создавались в случае высокой нагрузки, а затем отключались при снижении нагрузки?
Комментарии:
1. Я думаю о чем-то подобном, и мне было бы неудобно оставлять эту опцию кому-то другому, например стороннему инструменту, как было предложено. Это все равно, что позволить кому-то другому включать свет в вашей квартире. У меня это не сработало бы, потому что я думаю, что одним из основных успехов при работе в облаке является прогнозирование выставления счетов.
Ответ №1:
Автоматическое масштабирование сегодня не является встроенной службой, но существуют сторонние инструменты, которые предлагают эту услугу, такие как Paraleap AzureWatch. Вы также можете создать свое собственное (и вот начальный пример), но я бы не рекомендовал это при запуске, поскольку есть о чем подумать, например:
- Понимание того, как работает выставление счетов в Windows Azure и при переключении часового счетчика
- Понимание времени нарастания и того, когда следует рассмотреть возможность уменьшения масштаба, не вызывая скачков сервера вверх / вниз
Кроме того, чтобы выполнить собственное масштабирование, вам нужно будет разместить этот код либо локально, либо в одной из ваших ролей (предпочтительно в своей собственной роли «менеджера»). Если вы находитесь в роли, вы должны убедиться, что код управления выполняется только в одном экземпляре (с использованием некоторого типа семафора блокировки больших двоичных объектов или чего-то подобного) — в противном случае у вас будет риск двойного масштабирования.
Для начала я бы серьезно взглянул на AzureWatch: это всего лишь пенни за экземпляр в час, и вы будете запущены очень быстро.
Ответ №2:
Эта функциональность не встроена в Azure, но Microsoft может что-то добавить в будущем.
Существует довольно много примеров, которые показывают, как это реализовать самостоятельно — например, смотрите http://blogs.msdn.com/b/publicsector/archive/2011/02/18/dynamically-scale-your-windows-azure-service-instances.aspx
В качестве дополнения к этому — Скотт Гу выступал с докладом в Лондоне на этой неделе (июнь 2011) и предположил, что автоматическое масштабирование — это то, над чем Microsoft активно работает и что в ближайшем будущем оно будет представлено. Очевидно, что в настоящее время нет даты — и никаких гарантий!
Ответ №3:
С ноября 2011 года Microsoft поставила блок приложений с автоматическим масштабированием (Wasabi). Проверьте это. http://aka.ms/autoscaling
Это не встроено в Windows Azure, как другие службы (ACL, кэширование, служебная шина и т.д.), Но является компонентом, который вы должны разместить. Это довольно легко сделать, и вместе с этим обеспечивается гибкость предоставления собственных сборщиков данных, показателей и пользовательских действий.
Несколько полезных презентаций и демонстрационных версий можно найти здесь: