CI/CD для приложений AKS с помощью Azure Pipelines

Реестр контейнеров Azure
Azure DevOps
Служба Azure Kubernetes (AKS)
GitHub

Важно!

Микрослужбы с AKS и Azure DevOps — это вариант разработки конвейера CI/CD с помощью Azure DevOps. В этой статье рассматриваются аспекты развертывания приложений AKS с помощью Azure Pipelines.

Потенциальные варианты использования

Используйте Azure Pipelines для развертывания приложений AKS.

Архитектура

Architecture diagram of an AKS CI/CD pipeline using Azure Pipelines.

Схема архитектуры конвейера Azure. На схеме показаны следующие шаги: 1. Инженер отправляет изменения кода в репозиторий Azure DevOps Git. 2. Конвейер PR Azure DevOps активируется. В этом конвейере показаны следующие задачи: выстраивание, восстановление, сборка и модульные тесты. 3. Конвейер CI Azure DevOps активируется. В этом конвейере показаны следующие задачи: получение секретов, подстроек, восстановление, сборка, модульные тесты, тесты интеграции, публикация артефактов сборки и публикация образов контейнеров. 3. Образ контейнера, публикуемый в нерабочем Реестр контейнеров Azure. 4. Конвейер CD Azure DevOps активируется. В этом конвейере показаны следующие задачи: развертывание в промежуточной среде, приемочные тесты, повышение образа контейнера, вмешательство вручную и выпуск. 5. Показывает конвейер CD, развертывающийся в промежуточной среде. 6. Показывает образ контейнера, продвигаемый в рабочую Реестр контейнеров Azure. 7 Показывает конвейер CD, выпущенный в рабочую среду. 8. Показывает контейнер Аналитика пересылку данных телеметрии в Azure Monitor. 9. Отображает оператор мониторинга конвейера, используя Azure Monitor, приложение Azure Аналитика и рабочую область Azure Analytics.

Скачайте файл Visio для этой архитектуры.

Поток данных

  1. Запрос на вытягивание (PR) в Azure Repos Git активирует конвейер PR. Этот конвейер выполняет быстрые проверка качества, такие как подстрока, сборка и модульное тестирование кода. Если какой-либо из проверка завершается ошибкой, pr не объединяется. Результат успешного выполнения этого конвейера — успешное слияние PR.
  2. Слияние с Azure Repos Git активирует конвейер CI. Этот конвейер выполняет те же задачи, что и конвейер PR с некоторыми важными дополнениями. Конвейер CI выполняет тесты интеграции. Эти тесты требуют секретов, поэтому этот конвейер получает эти секреты из Azure Key Vault.
  3. Результатом успешного выполнения этого конвейера является создание и публикация образа контейнера в нерабочем Реестр контейнеров Azure.
  4. Завершение конвейера CI активирует конвейер CD.
  5. Конвейер CD развертывает шаблон YAML в промежуточной среде AKS. Шаблон задает образ контейнера из непроизводственных сред. Затем конвейер выполняет тесты принятия в промежуточной среде для проверки развертывания. Задача проверки вручную выполняется при успешном выполнении тестов, требуя от пользователя проверки развертывания и возобновления конвейера. Шаг проверки вручную является необязательным. Некоторые организации будут автоматически развертываться.
  6. Если вмешательство вручную возобновляется, конвейер CD повышает образ из непроизводственных Реестр контейнеров Azure в рабочий реестр.
  7. Конвейер CD развертывает шаблон YAML в рабочей среде AKS. Шаблон задает образ контейнера из рабочей среды.
  8. Контейнер Аналитика периодически пересылает метрики производительности, данные инвентаризации и сведения о состоянии работоспособности с узлов контейнеров и контейнеров в Azure Monitor.
  9. Azure Monitor собирает данные о наблюдаемости, такие как журналы и метрики, чтобы оператор может анализировать данные о работоспособности, производительности и использовании. Приложение Аналитика собирает все данные мониторинга для конкретных приложений, такие как трассировки. Azure Log Analytics используется для хранения всех данных.

Компоненты

  • Контейнер Аналитика собирает журналы и метрики и журналы и пересылает их в Azure Monitor.
  • Реестр контейнеров Azure — это управляемая служба реестра частных контейнеров в Azure. Используйте реестр контейнеров для хранения образов частных контейнеров.
  • Служба Azure Kubernetes — это управляемая служба Kubernetes, в которой Azure обрабатывает критически важные задачи, такие как мониторинг работоспособности и обслуживание.
  • Defender для DevOps выполняет статический анализ и помогает получить видимость состояния безопасности в нескольких конвейерах в разработке и развертывании AKS.

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