Откат настраивается в виде конвейера, включающего задачи, которые возвращают развертывание в предыдущее стабильное состояние после сбоя конвейера развертывания. Чтобы выполнить откат в случае сбоя, необходимо добавить конвейер отката к задачам или этапам.
Пользователи с разными ролями могут выполнять откат по разным причинам.
- Релиз-инженерам нужно получать от службы Code Stream подтверждения того, что выпуск успешно проходит все проверки. Эта информация помогает им понять, можно ли продолжать работу с этим выпуском или же нужно выполнить откат. Возможные причины для отката включают сбои при выполнении задач, отказ при прохождении проверки на удобство использования и эксплуатации, превышение пороговых значений показателей.
- Владельцам среды требуется возможность повторить развертывание предыдущего выпуска, чтобы оперативно восстановить работоспособное состояние среды.
- Владельцам среды требуется возможность отката развертывания в параллельные идентичные среды (Blue-Green) для сведения к минимуму простоев, связанных с неудачными выпусками.
При создании конвейера непрерывного предоставления на основе смарт-шаблона конвейера с выбранным параметром отката задача отката автоматически добавляется в задачи данного конвейера. В данном примере с помощью смарт-шаблона конвейера задается откат развертывания приложения в кластере Kubernetes, где используется модель динамического развертывания. Смарт-шаблон конвейера позволяет создать конвейер развертывания и один конвейер отката либо несколько.
- В конвейере развертывания происходит откат при неудачном выполнении задач «Обновление развертывания» или «Проверка развертывания».
- В конвейере отката происходит обновление развертывания с использованием более раннего образа.
Можно также вручную создать конвейер отката на основе пустого шаблона. Необходимо распланировать процесс отката, прежде чем создавать конвейер. Дополнительные сведения об откате см. в разделе Планирование отката в Code Stream.
Необходимые условия
- Проверьте, являетесь ли вы участником проекта в Code Stream. Если нет, попросите администратора Code Stream добавить вас в проект в качестве участника. См. раздел Добавление проекта в Code Stream.
- Настройте кластеры Kubernetes, в которых конвейер будет выполнять развертывание приложения. Настройте один кластер как кластер разработки, а другой — как производственный кластер.
- Убедитесь в наличии настроенного реестра Docker.
- Задайте проект, объединяющий все ваши рабочие объекты, включая конвейер, конечные точки и панели управления.
- Ознакомьтесь со смарт-шаблоном непрерывного предоставления, как описано в подразделе о непрерывном предоставлении в разделе Планирование собственной сборки по модели непрерывной интеграции и непрерывной доставки в Code Stream перед использованием смарт-шаблона конвейера, например:
- Создайте конечные точки разработки и производственной среды Kubernetes, которые будут развертывать образ приложения в кластерах Kubernetes.
- Подготовьте файл YAML Kubernetes, который создает пространство имен, службу и развертывание. Если необходимо загрузить образ из частного репозитория, файл YAML должен содержать раздел с секретом конфигурации Docker.