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

Пользователи с разными ролями могут выполнять откат по разным причинам.

  • Релиз-инженерам нужно получать от службы vRealize Automation Code Stream подтверждения того, что выпуск успешно проходит все проверки. Эта информация помогает им понять, можно ли продолжать работу с этим выпуском или же нужно выполнить откат. Возможные причины для отката включают сбои при выполнении задач, отказ при прохождении проверки на удобство использования и эксплуатации, превышение пороговых значений показателей.
  • Владельцам среды требуется возможность повторить развертывание предыдущего выпуска, чтобы оперативно восстановить работоспособное состояние среды.
  • Владельцам среды требуется возможность отката развертывания в параллельные идентичные среды (Blue-Green) для сведения к минимуму простоев, связанных с неудачными выпусками.

При создании конвейера непрерывного предоставления на основе смарт-шаблона конвейера с выбранным параметром отката задача отката автоматически добавляется в задачи данного конвейера. В данном примере с помощью смарт-шаблона конвейера задается откат развертывания приложения в кластере Kubernetes, где используется модель динамического развертывания. Смарт-шаблон конвейера позволяет создать конвейер развертывания и один конвейер отката либо несколько.

  • В конвейере развертывания происходит откат при неудачном выполнении задач «Обновление развертывания» или «Проверка развертывания».
  • В конвейере отката происходит обновление развертывания с использованием более раннего образа.

Можно также вручную создать конвейер отката на основе пустого шаблона. Необходимо распланировать процесс отката, прежде чем создавать конвейер. Дополнительные сведения об откате см. в разделе Планирование отката в vRealize Automation Code Stream.

Необходимые условия

Процедура

  1. Выберите пункт Конвейеры > Новый конвейер > Смарт-шаблон > Непрерывное предоставление.
  2. Введите информацию в смарт-шаблон конвейера.
    1. а. Выберите проект.
    2. б. Введите имя конвейера, например RollingUpgrade-Example.
    3. в. Выберите среды для приложения. Чтобы добавить откат в развертывание, необходимо выбрать среду Произв..
    4. г. Нажмите Выбрать , выберите файл YAML Kubernetes и нажмите Процесс.
      В смарт-шаблоне конвейера отображаются доступные службы и среды развертывания.
    5. д. Выберите службу, которую конвейер будет использовать для развертывания.
    6. е. Выберите конечные точки кластера для среды разработки и производственной среды.
    7. ё. В качестве источника образа выберите Входные данные среды выполнения конвейера.
    8. ж. В качестве модели развертывания выберите Динамическое обновление.
    9. з. Нажмите Откат.
    10. и. Укажите URL-адрес для проверки работоспособности.
    Создание конвейера отката
  3. Чтобы создать конвейер с именем RollbackUpgrade-Example, нажмите Создать.

    Отображается конвейер RollbackUpgrade-Example. Задачи на этапах разработки и переноса в производственную среду, для которых может быть выполнен откат, отмечены соответствующим значком.

    Конвейер RollbackUpgrade-Example

  4. Закройте конвейер.

    На странице «Конвейеры» отобразится созданный конвейер и новый конвейер для каждого этапа в этом конвейере.

    • RollingUpgrade-Example. Созданный конвейер по умолчанию отключен в целях проверки перед запуском.
    • RollingUpgrade-Example_Dev_Rollback. Этот конвейер отката для разработки вызывается при неудачном выполнении задач на этапе разработки, таких как «Создание службы», «Создание секретного элемента», «Создание развертывания» и «Проверка развертывания». Конвейер отката для разработки по умолчанию включен для обеспечения возможности отката задач разработки.
    • RollingUpgrade-Example_Prod_Rollback. Этот конвейер отката для производственной среды вызывается при неудачном выполнении задач на этапе переноса в производство, таких как «Развертывание, стадия 1», «Проверка, стадия 1», «Стадия развертывания выпуска», «Стадия завершения выпуска» и «Стадия проверки выпуска». Конвейер отката для производственной среды по умолчанию включен для обеспечения возможности отката производственных задач.
    Конвейеры: основной, prod_rollback, dev_rollback
  5. Включите и запустите созданный конвейер.
    При запуске выполнения появляется запрос на ввод входных параметров. Укажите образ и отметьте используемую конечную точку в репозитории Docker.
  6. На странице «Выполняемые элементы» выберите пункт Действия > Просмотр выполнения, чтобы просмотреть выполнение конвейера.

    Конвейер переходит в состояние ВЫПОЛНЯЕТСЯ и поочередно выполняет задачи этапа разработки. Если конвейеру не удается выполнить задачу на этапе разработки, запускается конвейер с именем RollingUpgrade-Example_Dev_Rollback, который выполняет откат развертывания, и состояние конвейера меняется на ОТКАТ.

    Выполнение отката

    После отката на странице «Выполняемые элементы» отображаются два цикла выполнения конвейера RollingUpgrade-Example.

    • Созданный конвейер, для которого был выполнен откат, отображается с состоянием ВЫПОЛНЕН_ОТКАТ.
    • Конвейер отката для разработки, который был вызван для выполнения отката, отображается с состоянием ЗАВЕРШЕНО.

    Выполненные конвейеры после отката

Результаты

Поздравляем! Вы успешно настроили конвейер с откатом и просмотрели выполнение отката службой vRealize Automation Code Stream при сбое конвейера.