Варианты непрерывного развертывания и отката Azure Service Fabric после обновления

Я читал о непрерывном развертывании Service Fabric с VSTS. Мне нужна помощь / предложение в этом сценарии, где

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

Пример: -

  1. Отправьте свой код
  2. Обновите развертывание службы A, в которой работает группа служб.
  3. Выполните интеграционные тесты
  4. В случае сбоя, откат обновления службы A и в случае успеха продолжить обновление других узлов.

Может ли это быть полностью автоматизировано в VSTS?

Я сослался на эту ссылку: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-application-upgrade#rolling-upgrades-overview


person Hari Priya Thangavel    schedule 13.02.2018    source источник


Ответы (2)


Вы можете использовать встроенную службу мониторинга работоспособности. Внедряя настраиваемые мониторы работоспособности (которые запускают ваши интеграционные тесты), вы можете сообщать о «неработоспособности», когда они не работают во время обновления. Вы можете использовать эту информацию, чтобы SF автоматически откатил обновление. (Настроив пороги работоспособности.) Вы также можете управлять обновлениями вручную, например, с помощью PowerShell Start-ServiceFabricApplicationUpgrade.

Скотт Хансельман подробно рассказал об этом здесь. Другой пример: здесь.

person LoekD    schedule 13.02.2018
comment
Благодарим за быстрый ответ. Могут ли пользовательские проверки работоспособности включать функциональный тестовый пример? - person Hari Priya Thangavel; 13.02.2018
comment
Вы можете использовать (любой) код для проверки и использовать результат для заполнения объекта отчета о работоспособности, например DeployedServicePackageHealthReport. (нет специального тестового раннера) - person LoekD; 13.02.2018
comment
@LoekD, но нет ли возможности, что после завершения шага № 2 (успешного развертывания нового пакета) SF перейдет к следующему домену обновления, и новый код может быть выполнен до того, как будут завершены проверки работоспособности (интеграционные тесты) ? Или в обновлении можно указать, что некоторые проверки работоспособности должны пройти, прежде чем обновление будет считаться завершенным? - person PatrickSteele; 13.02.2018
comment
Проверки работоспособности выполняются перед переходом к следующему домену обновления. Вы указываете, насколько ваша платформа терпима к нездоровью. docs.microsoft.com/ en-us / azure / service-fabric / - person LoekD; 13.02.2018
comment
Спасибо @LoekD за информацию. Страница, на которую вы ссылались, привела меня на эту страницу, который больше объясняет процесс обновления и говорит о проверках работоспособности. - person PatrickSteele; 14.02.2018
comment
@LoekD Большое спасибо за разъяснения. Я попробую это реализовать !!!!! - person Hari Priya Thangavel; 15.02.2018
comment
@HariPriyaThangavel Решите ли вы эту проблему, попробовав. - person starian chen-MSFT; 19.02.2018
comment
@ starianchen-MSFT В настоящее время я пытаюсь развернуть внешний сторожевой таймер в качестве службы служебной фабрики, которая будет выполнять интеграцию / функциональное тестирование (сквозной поток обслуживания). Благодаря этому я буду знать, ожидает ли обновление, и запустит ли настраиваемую проверку работоспособности сторожевого таймера и откат, если он не удастся. Я пытаюсь это сделать как POC и надеюсь, что ответит на все мои вопросы. - person Hari Priya Thangavel; 19.02.2018

API отката можно использовать только для отката текущего незавершенного обновления, которое откатывается до новой версии, вы можете откатить завершенное обновление через API, поэтому вы не можете сделать это в сборке / выпуске VSTS.

На основе этой темы: Промежуточный слот и vip-swap, вы можете создать экземпляр для новая версия приложения.

person starian chen-MSFT    schedule 14.02.2018