Экспорт (0) Печать
Развернуть все

Обновление службы Azure

Обновлено: Май 2014 г.

Azure упорядочивает экземпляры роли по логическим группам, называемым доменами обновления. Количество доменов обновления по умолчанию равно 5. Можно указать другое количество доменов обновления, включив атрибут upgradeDomainCount в файл определения службы (CSDEF). Дополнительные сведения об атрибуте upgradeDomainCount см. в разделе Схема WebRole или Схема WorkerRole.

При выполнении обновления на месте одной или нескольких ролей в службе Azure обновляет наборы экземпляров ролей в соответствии с доменом обновления, к которому они принадлежат. Azure обновляет все экземпляры в заданном домене обновления — останавливает их, обновляет, снова делает доступными, а затем переходит к следующему домену. Остановка только экземпляров, выполняемых в текущем домене обновления, позволяет Azure выполнять обновление с наименьшим возможным воздействием на работающую службу. Дополнительные сведения см. в разделе How the update proceeds ниже в этой статье.

noteПримечание
Хотя термины update и upgrade (обновление) имеют несколько различный смысл в контексте Azure, они взаимозаменяемы при описании процессов и функций в этом документе.

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

В этом разделе содержится следующая информация об обновлениях Azure:

В следующей таблице показаны разрешенные изменения службы во время обновления.

 

Изменения, разрешенные для размещения, служб и ролей Обновление на месте Промежуточная (переключение виртуального IP-адреса) Удаление и повторное развертывание

Версия операционной системы

Да

Да

Да

Уровень доверия .NET

Да

Да

Да

Размер виртуальной машины

Да

WarningПредупреждение
Изменение размера виртуальной машины разрушит локальные данные.

noteПримечание
Требуется пакет Azure SDK 1.5 или более поздняя версия.

Да

Да

Параметры локального хранилища

Да

Только увеличение.

noteПримечание
Требуется пакет Azure SDK 1.5 или более поздняя версия.

Да

Да

Добавление и удаление ролей в службе

Да

Да

Да

Количество экземпляров определенной роли

Да

Да

Да

Количество или тип конечных точек для службы

Да

noteПримечание
Требуется пакет Azure SDK 1.5 или более поздняя версия.

ImportantВажно!
Доступность может временно снизиться, поскольку конечные точки обновляются.

Нет

Да

Имена и значения параметров конфигурации

Да

Да

Да

Значения (но не имена) параметров конфигурации

Да

Да

Да

Добавление новых сертификатов

Да

Да

Да

Изменение существующих сертификатов

Да

Да

Да

Развертывание нового кода

Да

Да

Да

Следующие элементы не поддерживаются во время обновления.

  • Изменение имени роли. Удалите, а затем снова добавьте роль с новым именем.

  • Изменение счетчика доменов обновления.

  • Уменьшение размера локальных ресурсов.

Если производятся другие обновления определения службы, например уменьшается размер локального ресурса, необходимо выполнить обновление с переключением виртуальных IP-адресов. Дополнительные сведения см. в Управление обновлениями в гостевой ОС Azure.

Azure обеспечивает гибкость в управлении службами во время обновления, позволяя проводить дополнительные действия для службы после того, как первый запрос изменения принят контроллером структуры Azure. Откат можно выполнить только тогда, когда обновление (изменение конфигурации или изменение версии) находится в развертывании в состоянии выполняется. Считается, что обновление находится в процессе выполнения до тех пор, пока имеется по крайней мере один экземпляр службы, который еще не был обновлен до новой версии. Чтобы протестировать, разрешен ли откат, проверьте, равно ли значение флага RollbackAllowed, возвращаемое операциями Получение развертывания и Получение свойств облачной службы, true.

noteПримечание
Это имеет смысл только в случае вызова отката при обновлении на месте, поскольку обновления с переключением виртуальных IP-адресов вызывают замену одного работающего экземпляра службы другим.

Откат выполняющегося обновления имеет следующие эффекты в развертывании.

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

  • Все экземпляры ролей, которые уже были обновлены до новой версии файла пакета службы (*.cspkg) или файла конфигурации службы (*.cscfg) (или обоими способами), восстанавливаются до версии этих файлов, существовавшей до обновления.

Эта функциональность предоставляется следующими функциями:

  • Операция Rollback Update Or Upgrade, которую можно вызвать при обновлении конфигурации (update, срабатывает при вызове Change Deployment Configuration) или обновлении (upgrade, срабатывает при вызове Upgrade Deployment), если по крайней мере один экземпляр в службе еще не был обновлен до новой версии.

  • Элемент Locked и элемент RollbackAllowed, которые возвращаются как часть текста ответа операций Получение развертывания и Получение свойств облачной службы.

    1. Элемент Locked позволяет обнаружить, когда операцию изменения можно вызвать в заданном развертывании.

    2. Элемент RollbackAllowed позволяет обнаружить, когда операция Rollback Update Or Upgrade может быть вызвана в заданном развертывании.

    Чтобы выполнить откат, не нужно проверять оба элемента (Locked и RollbackAllowed). Будет достаточным удостовериться, что RollbackAllowed имеет значение true. Эти элементы возвращаются, только если эти методы вызваны с помощью заголовка запроса, установленного в «x-ms-version: 2011-10-01» или более позднюю версию. Дополнительные сведения об управлении версиями заголовков см. в разделе Работа с версиями при управлении службами.

Имеются ситуации, когда откат обновления не поддерживается. Это следующие ситуации:

  • Сокращение на локальных ресурсах — если обновление увеличивает локальные ресурсы для роли, платформа Azure не разрешает откат. Дополнительные сведения о настройке локальных ресурсов для роли см. в разделе Настройка ресурсов локального хранилища.

  • Ограничения квоты — если обновление было операцией масштабирования вниз, у вас может не быть достаточной квоты вычислений для выполнения операции отката. Каждая подписка Windows Azure имеет квоту, привязанную к ней и указывающую максимальное количество ядер, которые могут использоваться всеми размещенными службами, принадлежащими этой подписке. Если выполнение отката заданного обновления влечет за собой превышение квоты подпиской, откат не будет возможен.

  • Состояние гонки — если начальное обновление завершено, откат невозможен.

Пример, когда откат обновления может быть полезным: использование операции Upgrade Deployment в ручном режиме для управления скоростью, на которой разворачивается существенное обновление на месте для размещенной службы Azure.

Во время развертывания обновления вызывается Upgrade Deployment в ручном режиме и перебираются домены обновления. Если в какой-то момент в процессе отслеживания обновления вы заметите, что некоторые экземпляры роли в первых доменах обновления, которые вы рассматриваете, перестали отвечать, вы можете вызвать операцию Rollback Update Or Upgrade в развертывании, которая оставит нетронутыми еще не обновленные экземпляры и откатит экземпляры, которые были обновлены, до предыдущего пакета служб и конфигурации.

В некоторых случаях может понадобиться проведение множественных одновременных операций изменения в текущем развертывании. Например, можно выполнить обновление службы и, пока это обновление разворачивается в службе, сделать некоторое изменение, например откатить обновление назад, применить другое обновление или даже удалить развертывание. Это может быть необходимо, например, в случае, если обновление службы содержит дефектный код, который вызывает постоянный сбой обновленного экземпляра роли. В этом случае контроллер структуры Azure не сможет продолжить применение этого обновления из-за недостаточного количества исправных экземпляров в домене обновления. Это состояние называется застрявшее развертывание. Можно вывести развертывание из этого состояния с помощью отката обновления или применения свежего обновления поверх неисправного.

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

Начало второй операции обновления в ходе первой операции обновления работает аналогично операции отката. Если второе обновление проводится в автоматическом режиме, первый домен обновления будет обновлен немедленно; это, возможно, приведет к тому, что экземпляры из нескольких доменов обновления будут переведены в режим «вне сети» в один момент времени.

Операции изменения проходят следующим образом. Change Deployment Configuration, Upgrade Deployment, Update Deployment Status, Delete Deployment и Rollback Update Or Upgrade.

Две операции, Получение развертывания и Получение свойств облачной службы, возвращают флаг Locked, по которому можно определить, можно ли предпринять операцию изменения в заданном развертывании.

Для вызова версии этих методов, возвращающей флаг Locked, необходимо установить заголовок запроса в «x-ms-version: 2011-10-01» или более позднюю версию. Дополнительные сведения об управлении версиями заголовков см. в разделе Работа с версиями при управлении службами.

Azure распределяет экземпляры роли равномерно по установленному количеству доменов обновления, которое можно настроить в составе файла определения службы (CSDEF). Максимальное количество доменов обновления — 20, а количество доменов обновления по умолчанию — 5. Дополнительные сведения об изменении файла определения службы см. в разделе Схема определения службы Azure (файл CSDEF).

Например, если ваша роль имеет 10 экземпляров, то по умолчанию каждый домен обновления содержит 2 экземпляра. Если роль содержит 14 экземпляров, 4 домена обновления содержат 3 экземпляра, а пятый домен содержит 2.

Домены обновления определяются индексом с отсчетом от нуля: первый домен обновления имеет идентификатор 0, второй домен обновления имеет идентификатор 1, и т. д.

На следующей диаграмме показано, как служба, содержащая 2 роли, распределена при определенных в службе 2 доменах обновления. В службе выполняется 8 экземпляров веб-роли и 9 экземпляров рабочей роли.

Распространение доменов обновления

noteПримечание
Обратите внимание, что распределение экземпляров по доменам обновления управляется Azure. Нельзя указать напрямую, какие экземпляры к какому домену относятся.

Вы можете решить, хотите вы обновлять все роли в службе или только одну роль в службе. В любом случае все обновляемые экземпляры каждой роли, принадлежащие к первому домену, останавливаются, обновляются и снова возвращаются в режим «в сети». После их возврата экземпляры во втором домене обновления останавливаются, обновляются и возвращаются в режим «в сети».

На следующей диаграмме показано, как происходит обновление, если обновляются все роли в службе.

Служба обновления

На следующей диаграмме показано, как проходит обновление, если обновляется только одна роль.

Роль обновления
noteПримечание
При обновлении службы из отдельного экземпляра к нескольким экземплярам служба будет на время выполнения обновления отключена из-за способа обновления служб в Windows Azure. Соглашение об уровне обслуживания, гарантирующее доступность службы, охватывает только службы, развернутые более чем в одном экземпляре. В следующем списке описано, как каждый из сценариев обновления службы Windows Azure влияет на данные на каждом диске.

Перезагрузка виртуальной машины:

  • C. Сохранены

  • D. Сохранены

  • E. Сохранены

Портальная перезагрузка:

  • C. Сохранены

  • D. Сохранены

  • E. Уничтожены

Портальное повторное создание образа:

  • C. Сохранены

  • D. Уничтожены

  • E. Уничтожены

Обновление на месте:

  • C. Сохранены

  • D. Сохранены

  • E. Уничтожены

Миграция узла:

  • C. Уничтожены

  • D. Уничтожены

  • E. Уничтожены

Обратите внимание, что в приведенном выше списке диск E: представляет корневой диск роли и не должен быть запрограммирован жестко. Вместо этого используйте переменную среды %RoleRoot% для представления диска.

Чтобы свести к минимуму время простоя при обновлении службы с одним экземпляром, разверните службу с несколькими экземплярами на промежуточном сервере и выполните переключение виртуального IP-адреса.

Показ:
© 2015 Microsoft