Непрерывное развертывание для контейнерных приложений с помощью Azure DevOps

В этом пошаговом руководстве вы узнаете, как создать конвейер, который непрерывно собирает и развертывает контейнерные приложения для операций "второго дня" с помощью Azure DevOps. Каждый раз при изменении кода в репозитории, содержащем Dockerfile, образы отправляются в Реестр контейнеров Azure, а манифесты развертываются в Службе Azure Kubernetes или Службе приложений Azure.

Azure DevOps позволяет размещать, собирать, планировать и тестировать код с помощью бесплатных рабочих процессов. Использование Azure Pipelines в качестве одного из этих рабочих процессов позволяет развертывать приложение с непрерывной поставкой и непрерывной интеграцией (CI/CD), которое работает с любой платформой и облаком. Конвейер определяется как YAML-файл в корневой папке вашего репозитория.

Предварительные требования

Для работы с этим руководством вам потребуется:

  • Поместить в контейнер и развернуть веб-приложение ASP.NET или Java с помощью контейнеризации приложения службы "Миграция Azure".
  • Учетная запись GitHub, в которой можно создать репозиторий. Если у вас нет такой учетной записи, вы можете создать ее бесплатно.
  • Организация Azure DevOps. Если у вас нет такой учетной записи, вы можете создать ее бесплатно. (Организация Azure DevOps отличается от организации GitHub. Вы можете предоставить вашей организации DevOps и вашей организации GitHub то же имя, если требуется выравнивание между ними.)
    Если у вашей команды уже есть организация Azure DevOps, убедитесь, что вы являетесь администратором проекта Azure DevOps, который вы хотите использовать.
  • Возможность запуска конвейеров на размещенных агентах Майкрософт. Вы можете приобрести параллельное задание или запросить уровень "Бесплатный". Чтобы запросить уровень "Бесплатный", следуйте инструкциям из этой статьи. Обратите внимание, что для предоставления уровня "Бесплатный" может потребоваться 2–3 рабочих дня.

Поиск артефактов

Средство контейнеризации приложения службы "Миграция Azure" автоматически создает артефакты, которые можно использовать для настройки рабочего процесса CI/CD для приложения с помощью Azure Pipelines. Артефакты создаются после завершения развертывания приложения с помощью средства. Артефакты можно найти следующим образом:

  1. Перейдите на компьютер, на котором выполняется средство контейнеризации приложения службы "Миграция Azure".
  2. Перейдите в каталог C:\ProgramData\Microsoft Azure Migrate App Containerization. Если вы не можете перейти в каталог C:\ProgramData, убедитесь, что в разделе проводника представления выбран параметр для отображения скрытых элементов.
  3. Выберите каталог, соответствующий IP-адресу или полному доменному имени исходного компьютера. Исходный компьютер — это компьютер, указанный в средстве контейнеризации приложения, выполняющий приложение, которое было помещено в контейнер.
  4. Для приложений Java:
    • Перейдите в JavaTomcatWebApp\Artifacts.
    • Перейдите в каталог Catalina\localhost. Если этот каталог не найден, попробуйте перейти в каталог, соответствующий имени подсистемы Tomcat и имени узла.
    • Найдите папку приложения в этом каталоге.
  5. Для приложений ASP.NET:
    • Перейдите к IISAspNetWebApp.
    • Найдите папку приложения в этом каталоге.

Отправка артефактов в GitHub

Необходимо отправить артефакты в исходный репозиторий, который будет использоваться с Azure DevOps.

  1. Войдите в учетную запись GitHub.
  2. Чтобы создать новый репозиторий, выполните действия, приведенные в этой статье.
  3. Следующим шагом является отправка артефактов в этот репозиторий.
    • Для приложений Java в папке приложения на компьютере, на котором выполняется средство контейнеризации приложения, выберите указанные ниже папки и файлы.
      • Папка MandatoryArtifacts.
      • Папка манифестов.
      • Папка OptionalArtifacts.
      • Dockerfile
      • Файл Entryscript.sh.
      • Файл azure-pipelines.yml.
    • Для приложений ASP.NET в папке приложения на компьютере, на котором выполняется средство контейнеризации приложения, выберите указанные ниже папки и файлы.
      • Папка манифестов.
      • Папка сборки.
      • Файл azure-pipelines.yml.

Вход в Azure Pipelines

Войдите в Azure Pipelines. После входа в браузере откроется https://dev.azure.com/my-organization-name и отобразится панель мониторинга Azure DevOps.

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

Добавление подключений службы

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

  1. В левом нижнем углу выберите подключения службы параметров > проекта.
  2. Выберите новое подключение к службе, выберите параметр Реестра > контейнеров Azure Реестра Docker для типа необходимого подключения к службе и нажмите кнопку "Далее".
  3. Выберите способ проверки подлинности и нажмите кнопку "Далее".
  4. Введите параметры для подключения службы. Список параметров отличается для каждого типа подключения службы. Дополнительные сведения см. в списке типов соединений служб и связанных параметров.
  5. Нажмите кнопку Сохранить, чтобы создать подключение.
  6. Проверьте подключение после его создания и ввода параметров. Ссылка проверки использует вызов REST для внешней службы с введенной информацией и указывает, был ли вызов успешным.
  7. Повторите те же действия для создания подключения службы к подписке Azure, выбрав новое подключение > к службе Azure Resource Manager.
  8. Запишите ИД ресурса для подключений службы.

Создание конвейера

Теперь, когда вы создали оба подключения службы, вы можете настроить конвейер. Средство контейнеризации приложения автоматически создало конвейер YAML, который можно настроить следующим образом:

  1. Выберите "Конвейеры", а затем — Новый конвейер.
  2. Пройдите через шаги мастера, выбрав GitHub в качестве расположения исходного кода.
  3. Возможно, вам придется выполнить вход в GitHub. Для этого введите учетные данные GitHub.
  4. Когда появится список репозиториев, выберите свой репозиторий.
  5. Возможно, вы перейдете на сайт GitHub, чтобы установить приложение Azure Pipelines. В этом случае выберите "Утвердить & установку".
  6. Когда появится новый конвейер, просмотрите YAML, чтобы узнать функциональность.
  7. В YAML укажите ИД ресурса для подключения службы "Реестр контейнеров Azure" в качестве значения переменной dockerRegistryServiceConnection.
  8. Укажите ИД ресурса для подключения службы Azure Resource Manager в качестве значения переменной dockerRegistryServiceConnection.
  9. Когда будете готовы, выберите Сохранить, чтобы зафиксировать новый конвейер в своем репозитории.

Ваш конвейер — это вся программа установки для создания и развертывания контейнерных приложений для операций "второго дня". Вы можете настроить конвейер в соответствии с потребностями организации.