Откат сервисной фабрики к предыдущей версии от Visual Stuido или Исследователь сервисной фабрики - PullRequest
0 голосов
/ 14 ноября 2018

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

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

Если это невозможно из Visual Studio, возможно ли это сделать из службыобозреватель фабрики?

Я видел посты типа откат фабричной службы Azure , но они связаны со сценариями PowerShell.

1 Ответ

0 голосов
/ 14 ноября 2018

Нет опции или кнопки 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 запустит развертывание, но не предпримет никаких действий, и вы должны запустить сценарии, чтобы продолжитьразвертывание на следующих этапах или откат.Этот подход удобен, если у вас есть очень важные службы, а обновления требуют особой осторожности, в основном для проверки поведения и выполнения ручных тестов перед продолжением развертывания.

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

...