Программное масштабирование ролей Windows Azure

Я ищу код, который будет масштабировать роль до заданного количества экземпляров с учетом идентификатора роли, который я хочу масштабировать. Я ищу кого-то, кто реализует этот метод.

Private Shared Sub DoScaleOperation(RoleID As String, InstanceCount As Integer)
    'TODO:
    'Check if the current number of instances in the role RoleID matches InstanctCount
    'and if the numbers don't match then scale down or scale up as appropriate.
End Sub

Этот метод должен работать как для среды разработки, так и для облачной среды. Кто-нибудь знает как это сделать?

Также из любопытства мне интересно, какие имена экземпляров ролей будут при увеличении масштаба и какие будут имена экземпляров, удаленных при уменьшении масштаба. Я надеюсь, что имена экземпляров будут примерно такими: RoleID_(от 0 до InstanceCount - 1).


person RyanFishman    schedule 28.12.2011    source источник


Ответы (2)


Существует API, который вы хотите вызвать, чтобы программно изменить количество экземпляров в Azure: http://msdn.microsoft.com/en-us/library/windowsazure/ee460809.aspx Этот API не работает в локальной среде разработки. Вам нужно будет предоставить сертификат управления с вашим вызовом. Вы также можете использовать командлеты Azure для изменения количества экземпляров.

person Igorek    schedule 28.12.2011
comment
Мне нужно, чтобы определенные события выполнялись перед масштабированием роли, чтобы убедиться, что я сбрасываю определенные данные, принадлежащие экземпляру роли, поэтому типичный подход автоматического масштабирования не будет работать для меня. Я не понимаю остальных API, мне кажется, что это древнекитайское. Поэтому мне было интересно, может ли кто-нибудь предоставить мне метод? - person RyanFishman; 28.12.2011
comment
Понял. Вот несколько статей по теме. dotnet.dzone.com/news/windows-azure-and-scaling- как и blogs.ugidotnet.org/corrado/archive/2011/02/09/ и еще несколько, которые показывают, как использовать командлеты, если вы достаточно погуглили. Не существует волшебной строки кода, если только это не командлет. - person Igorek; 28.12.2011
comment
Вы можете обработать событие OnStop() для выполнения кода завершения работы в ваших экземплярах ролей. Это обеспечивает независимость вашей последовательности выключения от кода, который вас масштабирует (и вы не хотите иметь код масштабирования в том же экземпляре, который вы масштабируете). Кроме того, ваши экземпляры ролей должны корректно восстанавливаться при неожиданном завершении работы (например, из-за аппаратного сбоя). - person David Makogon; 28.12.2011
comment
Да, если что-то пойдет не так, например, сбой оборудования во время моего события OnStop, это будет бесполезно. Вот почему мне нужно было реализовать свой собственный код масштабирования: роль, которая сокращается, должна давать разрешение, снимая все принадлежащие ей блокировки, прежде чем она действительно будет уменьшена. - person RyanFishman; 28.12.2011
comment
Райан, я не думаю, что ты когда-нибудь сможешь отловить настоящие аппаратные сбои. Если есть хард-стоп, ваш экземпляр выйдет из строя, и вы мало что сможете сделать. Однако вы должны использовать метод OnStop() для размещения логики очистки. Эта логика срабатывает, когда экземпляры уменьшаются с помощью любого решения автоматического масштабирования, а также когда Windows Azure решит перезагрузить или обновить ваш экземпляр (обычно это происходит раз в месяц из-за обновлений ОС). - person Igorek; 28.12.2011
comment
Насколько я знаю, когда одна из моих ролей дает сбой из-за аппаратного сбоя, монитор работоспособности azure обнаружит это, убедится, что экземпляр действительно мертв, а затем повторно создаст экземпляр экземпляра на другой машине, моя роль знает, как выбрать, где он остановился, так как он записывает свое состояние в хранилище таблиц. Пока нет дубликатов одного и того же instanceID, работающих одновременно, я должен быть в порядке. - person RyanFishman; 28.12.2011

Я предполагаю, что вы ознакомились с WASABi, приложением автоматического масштабирования. Заблокировать?

Какие выводы вы сделали для продукта P&P в своем сценарии?

person noopman    schedule 28.12.2011