Реализация CI/CD для приложений MicroProfile с помощью Azure Pipelines
В этом руководстве показано, как без усилий настроить цикл выпуска непрерывной интеграции и непрерывного развертывания (CI/CD) Azure Pipelines, чтобы развернуть приложение Java EE MicroProfile в Веб-приложение для контейнеров Azure. Приложение MicroProfile использует базовый образ Payara Micro для создания WAR-файла.
FROM payara/micro:5.182
COPY target/*.war $DEPLOY_DIR/ROOT.war
EXPOSE 8080
Мы начнем процесс контейнеризации в Azure Pipelines с создания образа Docker, а затем отправим образ контейнера в Реестр контейнеров Azure (ACR). В конце мы создадим конвейер выпуска Azure Pipelines и развернем образ контейнера в веб-приложение.
Необходимые компоненты
На портале Azure создайте реестр контейнеров Azure.
На портале Azure создайте веб-приложение для контейнеров Azure. Для параметра ОС выберите Linux, а для параметра Настройка контейнера выберите Быстрый запуск в качестве источника образа.
Скопируйте и сохраните URL-адрес клона из этого примера репозитория на GitHub: https://github.com/Azure-Samples/microprofile-hello-azure.
Зарегистрируйтесь или войдите в Azure DevOps организации и создайте проект.
Импортируйте пример репозитория GitHub в Azure Repos:
- На странице проекта Azure DevOps в области навигации слева выберите Репозитории.
- В разделе или импортировать репозиторий щелкните Импорт.
- В разделе URL-адрес клона введите сохраненный URL-адрес клона Git и щелкните Импорт.
Создание конвейера сборки
Конвейер сборки непрерывной интеграции в Azure Pipelines автоматически выполняет все задачи сборки при каждой фиксации в исходном приложении Java EE. В этом примере для сборки проекта Java MicroProfile в Azure Pipelines используется Maven.
На странице проекта Azure DevOps в области навигации слева выберите Конвейеры>Сборки.
Выберите Новый конвейер.
Выберите Use the classic editor (Использовать классический редактор), чтобы создать конвейер без YAML.
Убедитесь, что имя проекта и импортированный репозиторий GitHub отображаются в соответствующих полях, и щелкните Продолжить.
Выберите Maven в списке шаблонов и щелкните Применить.
Убедитесь, что в области справа в раскрывающемся списке Пул агентов отображается Размещение в Ubuntu 1604.
Примечание.
Так вы определите, какой сервер сборки будет использоваться в Azure Pipelines. Вы также можете использовать закрытый пользовательский сервер сборки.
Чтобы настроить конвейер для непрерывной интеграции, перейдите на вкладку Триггеры в области слева и установите флажок Включить непрерывную интеграцию.
В верхней части страницы откройте раскрывающийся список рядом с пунктом Сохранить и поместить в очередь, а затем щелкните Сохранить.
Создание образа сборки Docker
Для создания образа Docker в Azure Pipelines используется файл Docker с базовым образом из Payara Micro.
Перейдите на вкладку Задачи и щелкните знак плюса + рядом с пунктом Задание агента 1, чтобы добавить задачу.
В области справа выберите Docker в списке шаблонов и щелкните Добавить.
В области слева выберите buildAndPush, а в области справа введите описание в поле Отображаемое имя.
В разделе Репозиторий контейнеров выберите Создать рядом с полем Реестр контейнеров.
Укажите в диалоговом окне Добавить подключение службы для реестра Docker следующие сведения:
Поле значение Тип реестра Выберите Реестр контейнеров Azure. Имя подключения Введите имя для подключения. Подписка Azure Выберите подписку Azure в раскрывающемся списке и при необходимости щелкните Авторизовать. Реестр контейнеров Azure Выберите нужное имя Реестра контейнеров Azure в раскрывающемся списке. Нажмите ОК.
Примечание.
Если вы используете Docker Hub или другой реестр, выберите Docker Hub или Другое вместо Реестр контейнеров Azure рядом с пунктом Тип реестра. Затем укажите учетные данные и сведения о подключении для этого реестра.
В разделе Команды выберите выполнить сборку в раскрывающемся списке Команды.
Нажмите кнопку с многоточием ... рядом с полем Dockerfile, найдите и выберите Dockerfile в репозитории GitHub, а затем щелкните ОК.
В разделе Теги введите последнее в новой строке.
В верхней части страницы откройте раскрывающийся список рядом с пунктом Сохранить и поместить в очередь, а затем щелкните Сохранить.
Отправка образа Docker в ACR
Azure Pipelines отправляет образ Docker в Реестр контейнеров Azure и использует его для запуска приложения API MicroProfile в контейнерном веб-приложении Java.
Так как вы используете Docker в Azure Pipelines, создайте другой шаблон Docker (см. раздел Создание образа сборки Docker выше). В раскрывающемся меню Команда выберите отправить.
Откройте раскрывающийся список рядом с пунктом Сохранить и поместить в очередь, а затем щелкните Сохранить и поместить в очередь.
Убедитесь, что во всплывающем окне Запуск конвейера выбрано Размещение в Ubuntu 1604 в разделе Пул агентов, а затем щелкните Сохранить и запустить.
После завершения сборки можно щелкнуть гиперссылку на страницеСборка, чтобы проверить результат сборки и просмотреть нужные сведения.
Создание конвейера выпуска
Конвейер непрерывного выпуска Azure Pipelines автоматически активирует развертывание в целевой среде, например Azure, сразу после выполнения сборки. Конвейер выпуска можно создавать для сред разработки и тестирования, а также промежуточной или рабочей среды.
На странице проекта Azure DevOps в области навигации слева выберите Конвейеры>Выпуски.
Выберите Новый конвейер.
В списке шаблонов выберите Развертывание приложения Java в Службе приложений Azure и щелкните Применить.
Во всплывающем окне замените Этап 1 именем этапа, например: Разработка, Тестирование, Подготовка или Производство, а затем закройте окно.
В разделе Артефакты в области слева выберите Добавить, чтобы связать артефакты из конвейера сборки с конвейером выпуска.
В области справа выберите конвейер сборки в раскрывающемся списке в разделе Источник (конвейер сборки) и щелкните Добавить.
Щелкните гиперссылку в этапе Производство и выберите Просмотреть задачи этапа.
В области справа заполните форму следующим образом:
Поле значение Подписка Azure Выберите подписку Azure в раскрывающемся списке. Тип приложения Выберите Веб-приложение для контейнеров (Linux) в раскрывающемся списке. Имя службы приложений Выберите экземпляр ACR в раскрывающемся списке. Реестр или пространство имен Введите имя ACR в поле. Например, введите mymicroprofileregistry.azure.io. Репозиторий Укажите репозиторий, содержащий образ Docker. В области слева выберите Развернуть WAR-файл в Службе приложений Azure, а в области справа введите тег последнее в поле Тег.
В области слева выберите Запустить в агенте, а в области справа выберите Размещение в Ubuntu 1604 в раскрывающемся списке Пул агентов.
Настройка переменных среды
Добавьте и определите переменные среды для подключения к реестру контейнеров во время развертывания.
Перейдите на вкладку Переменные и щелкните Добавить, чтобы добавить следующие переменные для URL-адреса реестра контейнеров, имени пользователя и пароля.
Имя. Значение registry.url Введите URL-адрес реестра контейнеров. Например: https://mymicroprofileregistry.azure.io registry.username Введите имя пользователя для реестра. registry.password Введите пароль для реестра. В целях безопасности щелкните значок замка, чтобы скрыть значение пароля. На вкладке Задачи выберите Развернуть WAR-файл в Службе приложений Azure в области слева.
В области справа разверните узел Параметры приложения и конфигурации, а затем нажмите кнопку с многоточием ... рядом с полем Параметры приложения.
Во всплывающем окне Параметры приложения выберите Добавить, чтобы определить и назначить переменные параметров приложения:
Имя. Значение DOCKER_REGISTRY_SERVER_URL $(registry.url) DOCKER_REGISTRY_SERVER_USERNAME $(registry.username) DOCKER_REGISTRY_SERVER_PASSWORD $(registry.password) Нажмите ОК.
Настройка непрерывного развертывания
Чтобы включить непрерывное развертывание, сделайте следующее:
На вкладке Конвейер в разделе Артефакты щелкните значок с молнией в артефакте сборки.
В области справа задайте для параметра Триггер непрерывного развертывания значение Включено.
Щелкните Сохранить вверху справа, а затем еще раз щелкните Сохранить.
Развертывание приложения Java
Теперь, когда вы включили CI/CD, измененный исходный код создаст и запустит сборки и выпуски автоматически. Вы также можете создавать и запускать выпуски вручную следующим образом:
На странице конвейера выпуска вверху справа щелкните Создать выпуск.
На странице Создание выпуска выберите имя стадии в разделе Стадии для изменения активации с автоматической на ручную.
Нажмите кнопку создания.
Выберите имя выпуска, наведите указатель на этап или выберите его, а затем щелкните Развернуть.
Тестирование веб-приложения Java
После успешного развертывания протестируйте приложение.
Скопируйте URL-адрес веб-приложения с портала Azure.
Введите URL-адрес в браузере, чтобы запустить приложение. На веб-странице должно отобразится Hello Azure!