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

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

  • Релиз-инженерам нужно получать от службы 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 и появляется значок отката для задач, которые могут выполнять откат на этапе разработки и на этапе производства.

    В конвейере отката для задач, в которых может выполняться откат, отображается значок отката.

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

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

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

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

    Конвейер отката выполняет откат развертывания и возвращает конвейер в предыдущее стабильное состояние.

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

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

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

Результаты

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