Руководство. Развертывание приложения-контейнера с помощью CI/CD в кластере Service Fabric

Это второе руководство из цикла. В нем описано, как настроить непрерывные интеграцию и развертывание для приложения-контейнера Azure Service Fabric с помощью Visual Studio Azure DevOps. Вам потребуется существующее приложение Service Fabric. В качестве примера используется приложение, созданное в руководстве по развертыванию приложения .NET из контейнера Windows в Azure Service Fabric.

Из второй части цикла вы узнаете, как выполнять следующие задачи:

  • Добавление проекта в систему управления версиями
  • Создание определения сборки в Visual Studio Team Explorer
  • Создание определения выпуска в Visual Studio Team Explorer
  • Автоматическое развертывание и обновление приложения

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

Перед началом работы с этим руководством выполните следующие действия:

Подготовка профиля публикации

Завершив развертывание приложения-контейнера, вы теперь готовы настроить непрерывную интеграцию. Прежде всего подготовьте в приложении профиль публикации, который будет использоваться в процессе развертывания под управлением Azure DevOps. Профиль публикации следует настроить для целевого кластера, который был создан ранее. Запустите Visual Studio и откройте существующий проект приложения Service Fabric. Щелкните правой кнопкой мыши приложение в обозревателе решений и выберите Опубликовать...

Выберите в проекте приложения целевой профиль, который будет использоваться для рабочего процесса непрерывной интеграции, например "Облако". Укажите конечную точку подключения кластера. Установите флажок Обновлять приложение, чтобы ваше приложение обновлялось при каждом развертывании в Azure DevOps. Нажмите ссылку Сохранить, чтобы сохранить параметры профиля публикации, а затем нажмите кнопку Отменить, чтобы закрыть диалоговое окно.

Push profile

Публикация решения Visual Studio в новом репозитории Azure DevOps Git

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

Создайте новый локальный репозиторий Git, выбрав Добавить в систему управления версиями ->Git в строке состояния в правом нижнем углу Visual Studio.

В представлении Принудительная отправка в Team Explorer выберите Опубликовать репозиторий Git в разделе Принудительная отправка в Azure DevOps.

Screenshot of the Team Explorer - Synchronization window in Visual Studio. Under Push to Azure DevOps, the Publish to Git Repo button is highlighted.

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

Screenshot of the Push to Azure DevOps window. The settings for Email, Account, Repository name, and the Publish Repository button are highlighted.

При публикации репозитория в вашей учетной записи создается новый командный проект с тем же именем, что и у локального репозитория. Чтобы создать репозиторий в существующем командном проекте, щелкните Расширенный рядом с именем репозитория и выберите командный проект. Код можно просматривать в Интернете, выбрав Просмотреть на веб-сайте.

Настройка непрерывной поставки с помощью Azure Pipelines

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

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

Создание определения сборки

Откройте новый командный проект, перейдя в браузере по адресу https://dev.azure.com и выбрав свою организацию вслед за новым проектом.

На панели слева выберите Конвейеры, а затем щелкните Новый конвейер.

Примечание.

Если шаблон определения сборки не отображается, выключите функцию Новый интерфейс для создания конвейеров YAML. Эта функция настраивается в разделе Функции предварительной версии учетной записи DevOps.

New Pipeline

Выберите Azure Repos Git в качестве источника, имя для командного проекта и главную ветвь по умолчанию или сборки, выполняемые вручную или по расписанию. Затем нажмите кнопку Продолжить.

В области Выбор шаблона выберите шаблон Приложение Azure Service Fabric с поддержкой Docker и нажмите кнопку Применить.

Choose build template

В разделе Задачи выберите значение Размещается в VS2017 для параметра Пул агентов.

Select tasks

Щелкните Tag images (Добавление тегов к образам).

Для параметра Тип реестра контейнеров выберите значение Реестр контейнеров Azure. Выберите подписку Azure, затем щелкните Авторизовать. Выберите Реестр контейнеров Azure.

Select Docker Tag images

Щелкните Отправка образов.

Для параметра Тип реестра контейнеров выберите значение Реестр контейнеров Azure. Выберите подписку Azure, затем щелкните Авторизовать. Выберите Реестр контейнеров Azure.

Select Docker Push images

На вкладке Триггеры включите непрерывную интеграцию, установив флажок Включить непрерывную интеграцию. В фильтрах ветвей щелкните +Добавить и спецификация ветви будет по умолчанию назначена ветви master.

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

Select triggers

Сборки также активируются после принудительного запуска или возврата. Чтобы проверить ход выполнения сборки, переключитесь на вкладку Сборки. Убедившись, что сборка запускается успешно, определите определение выпуска, который развертывает приложение в кластер.

Создание определения выпуска

Выберите Конвейеры на левой панели, затем Выпуски и + Новый конвейер. В области Выбор шаблона выберите шаблон Развертывание Azure Service Fabric в списке и нажмите кнопку Применить.

Choose release template

Выберите Задачи, а затем Среда 1 и + Создать, чтобы добавить новое подключение к кластеру.

Add cluster connection

В представлении add new Service Fabric Подключение ion select Certificate Based or Microsoft Entra ID authentication. Укажите имя подключения "mysftestcluster" и конечную точку кластера "tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000" (или конечную точку кластера, куда выполняется развертывание).

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

Для учетных данных Microsoft Entra добавьте отпечаток сертификата сервера, используемого для создания кластера, и учетные данные, которые вы хотите использовать для подключения к кластеру в полях имени пользователя и пароля .

Нажмите кнопку Добавить, чтобы сохранить подключение кластера.

В разделе "Этап агента" щелкните Развернуть приложение Service Fabric. Щелкните Параметры Docker, а затем Настройка параметров Docker. Для параметра Источник учетных данных реестра выберите Подключение к службе Azure Resource Manager. Выберите подписку Azure.

Release pipeline agent

Затем добавьте артефакт сборки в конвейер, чтобы для определения выпуска были доступны выходные данные сборки. Выберите Конвейер и Артефакты->+ Добавить. В поле Источник (определение сборки) выберите созданное ранее определение сборки. Щелкните Добавить, чтобы сохранить артефакт сборки.

Add artifact

Включите триггер непрерывного развертывания, чтобы выпуск создавался автоматически после завершения сборки. Щелкните значок молнии в артефакте, включите триггер и щелкните Сохранить, чтобы сохранить определение выпуска.

Enable trigger

Чтобы создать выпуск вручную, выберите + Выпуск ->Создать выпуск ->Создать. Ход создания можно отслеживать на вкладке Выпуски.

Убедитесь, что развертывание выполнено успешно и приложение выполняется в кластере. Откройте браузер и перейдите по ссылке http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Обратите внимание на версию приложения, в данном случае "1.0.0.20170616.3".

Фиксация и отправка изменений, создание выпуска

Чтобы проверить работу конвейера непрерывной интеграции, отправьте некоторые изменения кода в Azure DevOps.

При написании кода в Visual Studio изменения отслеживаются автоматически. Зафиксируйте изменения в локальном репозитории Git, выбрав значок ожидающих изменений (Pending changes icon shows a pencil and a number.) в строке состояния в правом нижнем углу.

В представлении Изменения в Team Explorer добавьте сообщение с описанием обновления и зафиксируйте изменения.

Commit all

Выберите значок строки состояния неопубликованных изменений (Unpublished changes) или представление синхронизации в команде Обозреватель. Выберите Отправить, чтобы обновить код в Azure DevOps.

Push changes

При отправке изменений в Azure DevOps автоматически запускается сборка. После создания определения сборки автоматически создается выпуск и начинается обновление приложения в кластере.

Чтобы проверить ход сборки, перейдите на вкладку Сборки в Team Explorer в Visual Studio. Проверив, что сборка запускается успешно, создайте определение выпуска, которое развертывает приложение в кластер.

Убедитесь, что развертывание выполнено успешно и приложение выполняется в кластере. Откройте браузер и перейдите по ссылке http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Обратите внимание на версию приложения, в этом случае — 1.0.0.20170815.3.

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the app version

Обновление приложения

Измените код в приложении. Сохраните и зафиксируйте изменения, выполнив указанные выше действия.

После начала обновления вы сможете отслеживать ход обновления в Service Fabric Explorer:

Screenshot of the Voting app in Service Fabric Explorer. An

Обновление приложения может занять несколько минут. После завершения обновления будет запущена новая версия приложения. В этом примере — 1.0.0.20170815.4.

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the updated app version

Следующие шаги

Из этого руководства вы узнали, как:

  • Добавление проекта в систему управления версиями
  • Создание определения сборки
  • Создание определения выпуска
  • Автоматическое развертывание и обновление приложения

В следующей части руководства описывается настройка мониторинга контейнера.