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

После ввода информации в смарт-шаблон конвейера при его сохранении создается конвейер, который включает в себя этапы и задачи. Он также указывает место развертывания образа на основе выбранных типов среды, таких как «Разработка» и «Производственная среда». Конвейер опубликует образ Docker и выполнит действия, необходимые для его запуска. После запуска конвейера можно отслеживать тенденции по всем циклам его выполнения.

Чтобы создать конвейер CICD, необходимо спланировать этапы его непрерывной интеграции (CI) и непрерывного предоставления (CD).

Если конвейер включает в себя образ из центра Docker, перед запуском конвейера необходимо убедиться, что в этом образе есть встроенная функция cURL. При выполнении конвейера vRealize Automation Code Stream загружает двоичный файл, в котором для выполнения команд используется функция cURL.

Планирование этапа непрерывной интеграции (CI)

Чтобы спланировать этап непрерывной интеграции конвейера, необходимо задать внешние и внутренние требования, а также определить сведения, которые нужно ввести в разделе CI смарт-шаблона конвейера. Здесь приведен краткий обзор.

Необходимые конечные точки и репозитории:

  • Репозиторий исходного кода Git, куда разработчики могут сохранять код. Когда разработчики сохраняют изменения, vRealize Automation Code Stream отправляет последнюю порцию кода в конвейер.
  • Конечная точка Git для репозитория, в котором находится исходный код разработчика.
  • Конечная точка Docker для узла сборки Docker, который будет выполнять команды сборки внутри контейнера.
  • Конечная точка Kubernetes, благодаря которой vRealize Automation Code Stream может развертывать образ в кластере Kubernetes.
  • Образ построителя, который создает контейнер, в котором выполняются тесты непрерывной интеграции.
  • Конечная точка реестра образов, с помощью которой узел сборки Docker может извлекать из него образ построителя.

Потребуется доступ к проекту. В проекте собираются все рабочие элементы, в том числе конвейер, конечные точки и панели управления. Проверьте, являетесь ли вы участником проекта в vRealize Automation Code Stream. Если нет, попросите администратора vRealize Automation Code Stream добавить вас в проект в качестве участника. См. раздел Добавление проекта в vRealize Automation Code Stream.

Потребуется веб-перехватчик Git, позволяющий vRealize Automation Code Stream использовать триггер Git, который запускает конвейер, когда разработчики вносят изменения в код. См. раздел Как использовать триггер Git в vRealize Automation Code Stream для запуска конвейера.

Наборы средств сборки:

  • Тип сборки, например, Maven.
  • Все используемые средства сборки после обработки, такие как JUnit, JaCoCo, Checkstyle и FindBugs.

Средство публикации:

  • Средство, например Docker, которое будет развертывать контейнер сборки.
  • Тег образа, который может быть идентификатором отправленного кода или номером сборки.

Рабочая область сборки:

  • Узел сборки Docker, который является конечной точкой Docker.
  • Реестр образов. Раздел непрерывной интеграции в конвейере извлекает образ из выбранной конечной точки реестра. Контейнер запускает задачи CI и развертывает образ. Если реестру требуются учетные данные, сначала необходимо создать конечную точку реестра образов, а затем выбрать ее, чтобы узел мог извлечь образ из реестра.
  • URL-адрес образа построителя, который создает контейнер, где выполняются тесты непрерывной интеграции.

Планирование этапа непрерывного предоставления (CD)

Чтобы спланировать этап CD в конвейере, необходимо задать внешние и внутренние требования, а также определить сведения, которые нужно ввести в разделе непрерывного предоставления в смарт-шаблоне конвейера.

Необходимые конечные точки:

  • Конечная точка Kubernetes, благодаря которой vRealize Automation Code Stream может развертывать образ в кластере Kubernetes.

Типы среды и файлы:

  • Все типы сред, где vRealize Automation Code Stream будет развертывать приложение, например «Разработка» и «Производственная среда». Смарт-шаблон конвейера создает этапы и задачи в конвейере на основе выбранных типов среды.
    Табл. 1. Этапы конвейера, создаваемые смарт-шаблоном конвейера непрерывной интеграции и предоставления
    Содержимое конвейера Функции
    Этап сборки — публикации Сборка и тестирование кода, создание образа построителя и публикация образа на узле Docker.
    Этап разработки Использование кластера разработки (AWS) Amazon Web Services для создания и развертывания образа. На этом этапе можно создать пространство имен в кластере и секретный ключ.
    Этап переноса в производственную среду Использование производственной версии выпуска VMware Tanzu Kubernetes Grid Integrated Edition (ранее — VMware Enterprise PKS) для развертывания образа в производственном кластере Kubernetes.
  • Файл Kubernetes YAML, выбираемый в разделе непрерывного предоставления в смарт-шаблоне конвейера CICD.

    Чтобы применить файл, нажмите Выбрать, выберите файл Kubernetes YAML и щелкните Обработать. В смарт-шаблоне конвейера отображаются доступные службы и среды развертывания. Выберите службу, конечную точку кластера и стратегию развертывания. Например, чтобы использовать модель развертывания Canary, выберите Canary и введите значение в процентах для этапа развертывания.

    Смарт-шаблон конвейера может обрабатывать развертывания Canary, последовательных обновлений и Blue-Green с непрерывной интеграцией и доставкой (CICD).

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

Создание конвейера CICD с помощью смарт-шаблона конвейера

После сбора всей информации и настройки нужных параметров можно создать конвейер на основе смарт-шаблона конвейера CICD.

В разделе «Конвейеры» выберите Создать конвейер > Смарт-шаблоны.

При создании конвейера можно использовать смарт-шаблон.

Выберите смарт-шаблон конвейера CICD.

Для создания конвейера непрерывной интеграции и доставки можно нажать карточку смарт-шаблона конвейера CICD.

Заполните шаблон и сохраните конвейер с этапами, которые он формирует. Если необходимо внести окончательные изменения, конвейер можно отредактировать и сохранить.

Смарт-шаблон конвейера CICD позволяет создать конвейер с этапами сборки и публикации приложения и предоставить его в среде разработки и производственной среде.

Затем можно включить конвейер и запустить его. По окончании его работы можно выполнить следующие операции.

  • Убедитесь, что конвейер успешно выполнен. Щелкните Выполняемые элементы и найдите свой конвейер. В случае сбоя исправьте ошибки и запустите его повторно.
  • Убедитесь, что веб-перехватчик Git работает правильно. На вкладке Git Действие отобразятся события. Щелкните Триггеры > Git > Действие.
  • Перейдите на панель управления конвейером и просмотрите тенденции. Щелкните Панели управления и найдите панель управления своего конвейера. Кроме того, можно создать настраиваемую панель управления для формирования отчета о дополнительных ключевых показателях эффективности.

См. подробный пример в разделе Настройка непрерывной интеграции кода из репозитория GitHub или GitLab в конвейер vRealize Automation Code Stream.