Поделиться через


Руководство. Развертывание приложения-контейнера с помощью 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. Нажмите ссылку Сохранить, чтобы сохранить параметры профиля публикации, а затем нажмите кнопку Отменить, чтобы закрыть диалоговое окно.

Принудительная отправка профиля

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

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

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

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

Снимок экрана Team Explorer — окно синхронизации в Visual Studio. Кнопка

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

Снимок экрана: страница

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

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

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

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

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

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

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

Примечание.

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

Создать конвейер

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

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

Выбор шаблона сборки

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

Выбор задач

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

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

Выбор команды Docker для добавления тегов к образам

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

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

Выбор команды Docker для отправки образов

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

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

Выбор триггеров

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

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

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

Выбор шаблона выпуска

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

Добавление подключения к кластеру

В представлении "Добавление нового подключения Service Fabric" выберите проверку подлинности на основе сертификатов или идентификатор Microsoft Entra ID . Укажите имя подключения "mysftestcluster" и конечную точку кластера "tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000" (или конечную точку кластера, куда выполняется развертывание).

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

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

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

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

Агент конвейера выпуска

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

Добавить артефакт

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

Включить триггер

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

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

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

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

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

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

Зафиксировать все

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

Отправка изменений

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

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

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

Снимок экрана: приложение для голосования в Service Fabric Explorer. На вкладке

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

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

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

Снимок экрана: приложение для голосования в Service Fabric Explorer. Выделено сообщение

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

Снимок экрана: приложение для голосования в Service Fabric Explorer. На вкладке

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

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

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

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