Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Наиболее часто используемый и рекомендуемый подход к обновлению — отслеживаемое последовательное обновление. Azure Service Fabric отслеживает работоспособность приложения, обновляемого на основе набора политик работоспособности. После обновления домена обновления Service Fabric оценивает работоспособности приложения и переходит к следующему домену обновления или завершает обновление в зависимости от политик работоспособности.
Отслеживаемое обновление приложения можно выполнить с помощью управляемых или собственных API, PowerShell, Azure CLI, Java или REST. Инструкции по выполнению обновления с помощью Visual Studio см. в статье Об обновлении приложения с помощью Visual Studio.
С помощью отслеживаемых обновлений Service Fabric администратор приложения может настроить политику оценки работоспособности, которую Service Fabric использует для определения работоспособности приложения. Кроме того, администратор может настроить действие, выполняемое при сбое оценки работоспособности (например, при автоматическом откате). В этом разделе описывается отслеживаемое обновление для одного из примеров пакета SDK, использующего PowerShell.
Проверьте эту страницу для обучающего видео, которое также описывает обновление приложения:
Замечание
ApplicationParameterы не сохраняются в процессе обновления приложения. Чтобы сохранить текущие параметры приложения, пользователь должен сначала получить параметры и передать их в вызов API обновления, как показано ниже:
$myApplication = Get-ServiceFabricApplication -ApplicationName fabric:/myApplication
$appParamCollection = $myApplication.ApplicationParameters
$applicationParameterMap = @{}
foreach ($pair in $appParamCollection)
{
$applicationParameterMap.Add($pair.Name, $pair.Value);
}
Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/myApplication -ApplicationTypeVersion 2.0.0 -ApplicationParameter $applicationParameterMap -Monitored -FailureAction Rollback
Шаг 1. Создание и развертывание примера визуальных объектов
Создайте и опубликуйте приложение, щелкнув правой кнопкой мыши проект приложения, VisualObjectsApplication и выбрав команду Publish . Дополнительные сведения см. в руководстве по обновлению приложений Service Fabric. Кроме того, можно использовать PowerShell для развертывания приложения.
Замечание
Прежде чем любые команды Service Fabric могут использоваться в PowerShell, сначала необходимо подключиться к кластеру с помощью командлета Connect-ServiceFabricCluster . Аналогичным образом предполагается, что кластер уже настроен на локальном компьютере. См. статью о настройке среды разработки Service Fabric.
После создания проекта в Visual Studio можно с помощью команды PowerShell Copy-ServiceFabricApplicationPackage скопировать пакет приложения в ImageStore. Если вы хотите проверить пакет приложения локально, используйте командлет Test-ServiceFabricApplicationPackage . Следующим шагом является регистрация приложения в среде выполнения Service Fabric с помощью командлета Register-ServiceFabricApplicationType . Следующий шаг — запуск экземпляра приложения с помощью командлета New-ServiceFabricApplication . Эти три шага аналогичны использованию элемента меню "Развернуть " в Visual Studio. После завершения подготовки необходимо очистить скопированный пакет приложения из хранилища образов, чтобы сократить объем потребляемых ресурсов. Если тип приложения больше не требуется, его следует отменить регистрацию по той же причине. Дополнительные сведения см. в статье "Развертывание и удаление приложений с помощью PowerShell ".
Теперь можно использовать Service Fabric Explorer для просмотра кластера и приложения. Приложение имеет веб-службу, которую можно открыть в Internet Explorer, введя http://localhost:8081/visualobjects в адресную строку. На экране должны отображаться некоторые плавающие визуальные объекты, перемещающиеся по экрану. Кроме того, можно использовать Get-ServiceFabricApplication для проверки состояния приложения.
Шаг 2. Обновление примера визуальных объектов
Вы можете заметить, что с версией, развернутой на шаге 1, визуальные объекты не поворачиваются. Давайте обновим это приложение до того, где визуальные объекты также поворачиваются.
Выберите проект VisualObjects.ActorService в решении VisualObjects и откройте файл StatefulVisualObjectActor.cs. В этом файле перейдите к методу MoveObject, закомментируйте this.State.Move(), и раскомментируйте this.State.Move(true). Это изменение поворачивает объекты после обновления службы.
Также необходимо обновить файлServiceManifest.xml (в разделе PackageRoot) проекта VisualObjects.ActorService. Обновите CodePackage и версию службы до 2.0, а также соответствующие строки в файле ServiceManifest.xml. После того как вы щелкните правой кнопкой мыши по решению, можно использовать параметр Visual Studio "Изменить файлы манифеста", чтобы внести изменения в файл манифеста.
После внесения изменений манифест должен выглядеть следующим образом (выделенные части отображают изменения):
<ServiceManifestName="VisualObjects.ActorService" Version="2.0" xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
<CodePackageName="Code" Version="2.0">
Теперь файл ApplicationManifest.xml (найденный в проекте VisualObjects в составе решения VisualObjects) обновляется до версии 2.0 проекта VisualObjects.ActorService. Кроме того, версия приложения обновляется до версии 2.0.0.0 с 1.0.0.0.0. ApplicationManifest.xml должен выглядеть следующим фрагментом кода:
<ApplicationManifestxmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="VisualObjects" ApplicationTypeVersion="2.0.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
<ServiceManifestRefServiceManifestName="VisualObjects.ActorService" ServiceManifestVersion="2.0" />
Теперь создайте проект, выбрав только проект ActorService , а затем щелкните правой кнопкой мыши и выберите параметр "Сборка " в Visual Studio. Если выбрать перестроить все, следует обновить версии для всех проектов, так как код изменился. Затем упаковам обновленное приложение, щелкнув правой кнопкой мыши VisualObjectsApplication, выбрав меню Service Fabric и выбрав пакет. Это действие создает пакет приложения, который можно развернуть. Обновленное приложение готово к развертыванию.
Шаг 3: Определение политики здоровья и параметров обновления
Ознакомьтесь с параметрами обновления приложения и процессом обновления , чтобы получить хорошее представление о различных параметрах обновления, времени ожидания и критерии работоспособности. В этом пошаговом руководстве критерий оценки работоспособности службы имеет значения по умолчанию (и рекомендуемые), что означает, что все службы и экземпляры должны быть работоспособными после обновления.
Однако давайте увеличим HealthCheckStableDuration до 180 секунд (чтобы службы оставались работоспособными по крайней мере в течение 120 секунд перед переходом к следующему домену обновления). Давайте также зададим значение UpgradeDomainTimeout равным 1200 секундам, а значение UpgradeTimeout — 3000 секундам.
Наконец, давайте также зададим UpgradeFailureAction в режим отката. Этот параметр требует, чтобы Service Fabric откатывал приложение на предыдущую версию, если в процессе обновления возникают какие-либо проблемы. Таким образом, при запуске обновления (на шаге 4) указаны следующие параметры:
FailureAction = восстановление
HealthCheckStableDurationSec = 180
UpgradeDomainTimeoutSec = 1200
UpgradeTimeout = 3000
Шаг 4. Подготовка приложения к обновлению
Теперь приложение будет создано и готово к обновлению. Если вы откроете окно PowerShell с правами администратора и введете Get-ServiceFabricApplication, окно сообщит вам, что это приложение версии 1.0.0.0 VisualObjects, развернуто.
Пакет приложения хранится в следующем относительном пути, где вы распаковали пакет SDK Service Fabric: Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug. В этом каталоге должна находиться папка Package, в которой хранится пакет приложения. Проверьте метки времени, чтобы убедиться, что это последняя сборка (возможно, потребуется изменить пути соответствующим образом).
Теперь давайте скопируйм обновленный пакет приложения в Service Fabric ImageStore (где пакеты приложений хранятся Service Fabric). Параметр ApplicationPackagePathInImageStore сообщает Service Fabric, где он может найти пакет приложения. Мы поместили обновленное приложение в "VisualObjects_V2" со следующей командой (возможно, потребуется изменить пути повторно).
Copy-ServiceFabricApplicationPackage -ApplicationPackagePath .\Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug\Package -ApplicationPackagePathInImageStore "VisualObjects\_V2"
Далее необходимо зарегистрировать это приложение в Service Fabric, которое можно выполнить с помощью команды Register-ServiceFabricApplicationType :
Register-ServiceFabricApplicationType -ApplicationPathInImageStore "VisualObjects\_V2"
Если предыдущая команда не выполнена, скорее всего, вам потребуется перестроение всех служб. Как упоминалось на шаге 2, вам также может потребоваться обновить версию веб-службы.
Рекомендуется удалить пакет приложения после успешной регистрации приложения. Удаление пакетов приложений из хранилища образов освобождает системные ресурсы. Сохранение неиспользуемых пакетов приложений использует дисковое хранилище и приводит к проблемам с производительностью приложений.
Remove-ServiceFabricApplicationPackage -ApplicationPackagePathInImageStore "VisualObjects\_V2" -ImageStoreConnectionString fabric:ImageStore
Шаг 5. Запуск обновления приложения
Теперь мы все настроены для запуска обновления приложения с помощью команды Start-ServiceFabricApplicationUpgrade :
Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/VisualObjects -ApplicationTypeVersion 2.0.0.0 -HealthCheckStableDurationSec 60 -UpgradeDomainTimeoutSec 1200 -UpgradeTimeout 3000 -FailureAction Rollback -Monitored
Имя приложения совпадает с именем приложения, описанным в файлеApplicationManifest.xml . Service Fabric использует это имя, чтобы определить, какое приложение обновляется. Если задано слишком короткое время ожидания, может возникнуть сообщение об ошибке, которое указывает на проблему. Ознакомьтесь с разделом устранения неполадок или увеличьте время ожидания.
Теперь, когда обновление приложения продолжается, его можно отслеживать с помощью Service Fabric Explorer или с помощью команды Get-ServiceFabricApplicationUpgrade PowerShell:
Get-ServiceFabricApplicationUpgrade fabric:/VisualObjects
Через несколько минут состояние, которое вы получили с помощью предыдущей команды PowerShell, должно указать, что все домены обновления были обновлены (завершены). И вы должны найти, что визуальные объекты в окне браузера начали поворачиваться!
Вы можете попробовать выполнить обновление с версии 2 до версии 3 или с версии 2 до версии 1 в качестве упражнения. Переход с версии 2 на версию 1 также считается обновлением. Играйте с тайм-аутами и политиками работоспособности, чтобы ознакомиться с ними. При развертывании в кластере Azure необходимо задать соответствующие параметры. Хорошо устанавливать время ожидания с запасом.
Дальнейшие действия
Обновление приложения с помощью Visual Studio описывает обновление приложения с помощью Visual Studio.
Управление обновлением приложения с помощью параметров обновления.
Сделайте приложение совместимым, научившись использовать сериализацию данных.
Узнайте, как использовать расширенные функциональные возможности при обновлении приложения, ссылаясь на дополнительные разделы.
Устраняйте распространенные проблемы при обновлении приложений, ссылаясь на действия, описанные в разделе "Устранение неполадок обновлений приложений".