Вопрос по windows – Есть ли способ сократить время между запуском развертывания Azure и использованием кода роли OnStart ()?

4

В настоящее время, когда я создаю развертывание с помощью портала управления Windows Azure, требуется около 9 (девяти!) Минут, чтобы код был в моей роли.OnStart() быть запущенным. Я чувствую, что что-то не так - девять минут - это смехотворно долго.

У меня есть небольшая задача запуска, которую я ожидаю завершить за несколько секунд (и она завершается за несколько секунд при запуске в Compute Emulator), поэтому похоже, что инфраструктура Azuredoing something big там все это время.

Есть ли способ ускорить процесс?

Ваш Ответ

3   ответа
7

Windows Azure обычно занимает 5-15 минут для развертывания. Что он делает, так это раскручивает серверы, виртуальные машины, загружает Windows и т. Д. С течением времени он ускоряется, но девять минут, безусловно, не являются чем-то необычным.

Если это время ожидания вас вообще отвлекает, вы делаете неправильный жизненный цикл разработчика для Azure. Вы должны развиваться локально с или без эмулятора и подталкивать к постановке, оставляя Prod в живых. Ничто из этого не должно помешать вам работать.
Смешно это правильно ... Я просто подождал более 45 минут, чтобы подготовить МАЛЫЙ экземпляр. Уххх, сколько серверов нужно для "раскрутки" обеспечить один экземпляр? Очень разочаровывает.
ИМО, это смешно. Почему нет небольшого парка серверов, доступных в любое время? Windows 2008 загружается менее чем за две минуты, поэтому я воспринимаю что-то более длинное как смехотворно медленное. sharptooth
12

Когда вы развертываете приложение в Windows Azure, зависит от размера вашей виртуальной машины и количества экземпляров, вот что происходит:

  1. You provide VM Type (small, medium, large, ex-large) and instance count (ex. N)

  2. Depend on VM type setting, if you have chosen small then Fabric Controller (FC) needs to find a slot where a single core VM can be started for you or if you chosen ex-large, then FC needs to find a host machine to host 8 cores guest VM. In this step, 2 possibilities could occur (there are more but for simplicity I am quoting 2 only):

    2.1 FC could find a ready node (or rack) which already have 1 or more core free to host your VM 2.2 FC may not find any empty core(s) in all running Host nodes and for you a new nodes need to be restarted to host your guest VM

  3. If your VM got selected for path 2.1, in that case the host VM is already ON and host machine just need to provision a guest VM for you depend on your size. This may take less time because the system just need to provision and start your VM only.

  4. IF your VM got selected for path 2.2, in that case first the host machine will start (if it is not running and which is very common*) and then your guest VM needs to be provisioned and start. And this path will take longer then path 2.1.

Примечание. При использовании версий 2.1 и 2.2 возможно, что при развертывании одного и того же приложения вам, возможно, придется разделить опыт.

  1. Same thing will happen to find N instances to run for your service, however this process will happen parallel to 2.1/2.2 but the timing will be pretty much same. Also FC also need to find different fault domains for each instance so in case one instance is down, the others are still active.

Так что внутри системы происходит гораздо больше, чем просто включение компьютера с Windows Server 2008. Поскольку несколько виртуальных машин работают на одном узле, безопасность является основной, поэтому при подготовке гостевой виртуальной машины делается много вещей, чтобы все работало в порядке.

О вашем комментарии о «небольшом парке серверов, доступных в любое время», это хороший комментарий, но когда есть центр обработки данных, обслуживающий весь мир, «Маленький» очень "огромный" Количество и просто поддерживать тысячи машин без какого-либо гостя не логично. Кроме того, вы просто развертываете время от времени, это не то, что вы будете делать ежедневно, поэтому до 10 минут все еще приемлемо.

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

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

Основное отличие заключается в том, что хранилище премиум-класса не только на гораздо более быстрых SSD-дисках, но и не архивируется, когда оно не используется, поэтому вы платите за него, даже если ваша виртуальная машина находится в автономном режиме. Видите, обычная остановленная виртуальная машина, когда вы запускаете ее, они копируют на VHD в другое хранилище, откуда она запускается, когда вы закончите, она архивируется, и вы не платите за этот диск.

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

Таким образом, до вас, если вы хотите заплатить это или нет - но есть способ сделать это.

(Я не специалист по лазурному цвету, но я спросил у нескольких других MVP об этом и об этом они объяснили. Хотелось бы услышать, если это не так).

Это только для виртуальных машин IaaS? sharptooth

Похожие вопросы