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.

Архитектура

Схема архитектуры конвейера CI/CD AKS с помощью 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 Insights и рабочую область 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. Служба Container Insights периодически пересылает метрики производительности, данные инвентаризации и сведения о состоянии работоспособности с узлов контейнеров и контейнеров в Azure Monitor.
  9. Azure Monitor собирает данные о наблюдаемости, такие как журналы и метрики, чтобы оператор может анализировать данные о работоспособности, производительности и использовании. Application Insights собирает все данные мониторинга для конкретных приложений, такие как трассировки. Azure Log Analytics используется для хранения всех данных.

Компоненты

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

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