Есть ли способ сделать динамическую эластичность в Windows Azure? Если мои работники начинают перегружаться или очереди начинают становиться слишком заполненными, или слишком много рабочих не имеют работы, есть ли способ динамически добавлять или удалять работников с помощью кода или это просто делается вручную (требуется вмешательство человека) Теперь? Кто-нибудь знает какие-либо планы добавить это, если он не доступен в настоящее время?Windows Azure и динамическая эластичность
ответ
Существует API управления сервисами, и вы можете использовать его для масштабирования вашего приложения (из кода, запущенного в Windows Azure или из кода, запущенного за пределами Windows Azure).
http://msdn.microsoft.com/en-us/library/ee460799.aspx и http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=windowsazuresamples&ReleaseId=3233.
Lokad.Cloud проект с открытым исходным кодом для Windows Azure содержит распределенную структуру исполнителей. Среди прочего он обеспечивает auto-scaling with VM provisioning feature.
Microsoft shippedБлок приложений для автоматической установки (Wasabi) для обеспечения динамического масштабирования. Некоторые из поддерживаемых сценариев:
- Автомасштабирование как ролей в Интернете, так и рабочих ролей в Windows Azure путем динамического изменения количества экземпляров или выполнения дросселирования приложения.
- Autoscaling Windows Azure ролей на основе расписаний.
- Автомасштабирование ролей Windows Azure на основе показателей, собранных из приложения и/или Windows Azure, но ограниченных верхними и нижними границами числа экземпляров на роль.
- Предотвращение быстрых колебаний числа экземпляров ролей со стабилизатором. Стабилизатор также может помочь оптимизировать затраты, ограничивая масштабирование операций до начала часа и уменьшая операции до конца часа.
- Деятельность по мониторингу и регистрации автомасштабирования.
- Отправка уведомлений для предварительного просмотра любых операций масштабирования до их проведения.
- Шифрование правил и другой конфигурации в хранилище Windows Azure blob или в локальном хранилище файлов.
- Управление конфигурацией автоскалера с помощью Windows PowerShell.
приложение comprehensie образца (Tailspin Surveys) демонстрации всех этих функций обеспечивается (инструкции по установке доступны here). Кроме того, проверьте Developer's Guide и Channel9 video walkthrough.
Блок доступен как автономная загрузка binaries, source или через NuGet.
Вот несколько переговоров/демо показывая Wasabi в действии:
Windows Azure только добавили функцию AutoScaling встроенный в платформу ,Теперь тривиальным легко настроить правила AutoScaling прямо на портале управления:
См announcement и demo. Я также написал post, сравнивая Autoscale Windows Azure с Wasabi и изложив путь вперед.
- Создание очереди с именем
autoscale.[your_role_name].instance_count
- В портале управления установите автомасштабирование в
Queue
. - Установите поле целевого счета на
1
.
Теперь вы можете использовать стандартные операции enqueue и dequeue в этой очереди для управления количеством экземпляров рабочей роли. У вас есть 7 дней для обработки сообщения до истечения срока его действия, поэтому вы можете создать рабочую роль, которая может гарантировать, что количество сообщений в очереди отслеживает ваш целевой счетчик экземпляров.
Если вы находитесь за динамической эластичностью, у вас, вероятно, уже есть контроллер на основе рабочей роли, поэтому это, вероятно, не проблема.