Windows Azure и динамическая эластичность

Есть ли способ сделать динамическую эластичность в Windows Azure? Если мои работники начинают перегружаться, или очереди начинают переполняться, или слишком многим работникам нечем заняться, есть ли способ динамически добавлять или удалять работников с помощью кода или это просто делается вручную (требует вмешательства человека)? сейчас? Кто-нибудь знает о каких-либо планах добавить это, если его в настоящее время нет в наличии?

5 ответов

Решение

Существует 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.

Microsoft поставила Autoscaling Application Block (Wasabi) для обеспечения динамического масштабирования. Некоторые из поддерживаемых сценариев:

  1. Автоматическое масштабирование веб-ролей и рабочих ролей в Windows Azure путем динамического изменения количества экземпляров или выполнения регулирования приложений.
  2. Автоматическое масштабирование ролей Windows Azure по расписанию.
  3. Автоматическое масштабирование ролей Windows Azure на основе показателей, собранных из приложения и / или Windows Azure, но ограниченных верхними и нижними границами количества экземпляров для каждой роли.
  4. Предотвращение быстрых колебаний в количестве ролевых экземпляров со стабилизатором. Стабилизатор также может помочь оптимизировать затраты, ограничивая операции масштабирования до начала часа и операции масштабирования до конца часа.
  5. Мониторинг и регистрация активности автомасштабирования.
  6. Отправка уведомлений для предварительного просмотра любых операций масштабирования перед их выполнением.
  7. Шифрование правил и других настроек в хранилище BLOB-объектов Windows Azure или в локальном хранилище файлов.
  8. Управление конфигурацией автоматического масштабирования с помощью Windows PowerShell.

Предоставляется пример приложения ( обзоры Tailspin), демонстрирующий все эти функции (инструкции по установке доступны здесь). Кроме того, ознакомьтесь с Руководством для разработчиков и пошаговым руководством по использованию Channel9.

Блок доступен в виде автономной загрузки двоичных файлов, исходного кода или через NuGet.

Вот пара выступлений / демонстраций, демонстрирующих Васаби в действии:

Windows Azure только что добавила функцию автоматического масштабирования, встроенную в платформу. Теперь легко настроить свои правила автомасштабирования прямо на портале управления:Настройка автоматического масштабирования на основе загрузки ЦП в Windows Azure

Смотрите объявление и демо. Я также написал пост, сравнивающий Windows Azure Autoscale с Wasabi и описывающий путь вперед.

  1. Создать очередь с именем autoscale.[your_role_name].instance_count
  2. На портале управления установите для автомасштабирования значение Queue,
  3. Установите в поле Target Count значение 1,

Теперь вы можете использовать стандартные операции постановки и снятия с очереди в этой очереди, чтобы контролировать количество экземпляров рабочих ролей. У вас есть 7 дней, чтобы обработать сообщение до истечения срока его действия, поэтому вы можете создать рабочую роль, которая может гарантировать, что количество сообщений в очереди отслеживает количество целевых экземпляров.

Если вам нужна динамическая эластичность, вы, вероятно, уже имеете в виду контроллер на основе рабочих ролей, так что, вероятно, это не проблема.

Проект с открытым исходным кодом Lokad.Cloud для Windows Azure содержит платформу распределенного исполнителя. Помимо прочего, он обеспечивает автоматическое масштабирование с функцией подготовки виртуальных машин.

Другие вопросы по тегам