Откат сервисной фабрики к предыдущей версии от Visual Stuido или Исследователь сервисной фабрики

Я опубликовал версию приложения Service Fabric 1.25.0 для локального кластера, а также для кластера в Azure через визуальную студию публикации. Все сработало.

Visual studio дает мне возможность обновить приложение тоже. Но я не смог найти, как откатить и опубликовать предыдущую версию моего приложения, скажем, 1.23.0 из visual studio.

Если это невозможно из Visual Studio, возможно ли это сделать из Service Fabric Explorer?

Я видел такие посты, как откат службы Azure Service Fabric, но они связаны со сценариями PowerShell, которые мне больше интересны после просмотра отката из Visual Studio или обозревателя сервисных структур.

1 ответ

Нет опции или кнопки Service Fabric Explorer для выполнения откатов или обновлений. В развертывании есть некоторые предостережения, на которые следует обратить внимание, чтобы правильно использовать откат, если бы это была просто кнопка, это увеличило бы вероятность ошибок.

Откат с использованием сценариев не так уж и сложен, вы можете сделать это с помощью всего лишь нескольких строк кода, как в приведенном вами ответе.

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

Что касается сценариев, вы можете использовать другие подходы, такие как:

Первый сценарий: развертывание прошло успешно, но приложение работает неправильно

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

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

Команда должна быть запущена вручную, например:

Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/VisualObjects -ApplicationTypeVersion 2.0.0.0 -HealthCheckStableDurationSec 60 -UpgradeDomainTimeoutSec 1200 -UpgradeTimeout 3000 -FailureAction Rollback -Monitored

Сценарий Deploy-FabricApplication.ps1 есть параметр UnregisterUnusedApplicationVersionsAfterUpgrade при этом удаляются более старые версии из хранилища изображений ServiceFabric. Следует избегать этого подхода, поскольку необходимо скопировать более старую версию в SF и затем применить обновление в случае необходимости отката. Лучшим подходом является реализация алгоритма, который запускается ночью или после выпуска, удаления старых версий и сохранения последнего N.

,

Другой сценарий: сбой службы во время обновления

В этом случае легче справиться, потому что Service Fabric обрабатывает его для вас, когда вы запускаете обновление, у вас есть возможность сделать его автоматическим или ручным.

В автоматическом режиме, если при запуске службы происходит сбой, Service Fabric увидит ее и несколько раз попытается, в случае ее повторного выполнения она автоматически выполнит откат к службе и приложению к предыдущей версии.

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

Эти настройки можно найти здесь

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