CI/CD pour les applications AKS avec Azure Pipelines

Azure Container Registry
Azure DevOps
Azure Kubernetes Service (AKS)
GitHub

Important

Microservices avec AKS et Azure DevOps est une variante de Concevoir un pipeline CI/CD à l’aide d’Azure DevOps. Cet article se concentre sur les facettes (propres à AKS) du déploiement d’applications AKS avec Azure Pipelines.

Cas d’usage potentiels

Utilisez Azure Pipelines pour déployer des applications AKS.

Architecture

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

Téléchargez un fichier Visio de cette architecture.

Dataflow

  1. Une demande de tirage pour Azure Repos Git déclenche un pipeline de demande de tirage. Ce pipeline exécute des vérifications de qualité rapides telles que le linting, la génération et le test unitaire du code. Si l’une des vérifications échoue, la demande de tirage ne se fusionne pas. Le résultat d’une exécution réussie de ce pipeline est une fusion réussie de la demande de tirage.
  2. Une fusion vers Azure Repos Git déclenche un pipeline CI. Ce pipeline exécute les mêmes tâches que le pipeline PR avec quelques ajouts importants. Le pipeline CI exécute les tests d’intégration. Ces tests nécessitent des secrets. Ce pipeline obtient donc ces secrets à partir d’Azure Key Vault.
  3. Le résultat d’une exécution réussie de ce pipeline est la création et la publication d’une image de conteneur dans un Azure Container Registry hors production.
  4. La fin du pipeline CI déclenche le pipeline CD.
  5. Le pipeline CD déploie un modèle YAML dans l’environnement AKS intermédiaire. Le modèle spécifie l’image conteneur de l’environnement hors production. Le pipeline exécute ensuite des tests d’acceptation sur l’environnement intermédiaire pour valider le déploiement. Une tâche de validation manuelle est exécutée si les tests réussissent, nécessitant qu’une personne valide le déploiement et reprend le pipeline. L’étape de validation manuelle est facultative. Certaines organisations effectueront un déploiement automatique.
  6. Si l’intervention manuelle est reprise, le pipeline CD promeut l’image de l’instance Azure Container Registry hors production vers le registre de production.
  7. Le pipeline CD déploie un modèle YAML dans l’environnement AKS de production. Le modèle spécifie l’image conteneur de l’environnement de production.
  8. Container Insights transfère de manière périodique des métriques de performances, des données d’inventaire et des informations sur l’état d’intégrité à partir des hôtes du conteneur et des conteneurs vers Azure Monitor.
  9. Azure Monitor collecte les données d’observabilité telles que les journaux et les métriques afin qu’un opérateur puisse analyser les données d’intégrité, de performance et d’utilisation. Application Insights collecte toutes les données de monitoring propres à l’application, telles que les traces. Azure Log Analytics est utilisé pour stocker toutes ces données.

Composants

  • Container Insights collecte les métriques et les journaux, et les transfère à Azure Monitor.
  • Azure Container Registry est un service de registre de conteneurs privé et managé disponible sur Azure. Utilisez Container Registry pour stocker des images conteneur privées.
  • Azure Kubernetes Service est un service Kubernetes managé dans lequel Azure gère des tâches critiques, telles que le monitoring de l’intégrité et la maintenance.
  • Defender pour DevOps effectue une analyse statique et vous aide à obtenir une visibilité des postures de sécurité à travers plusieurs pipelines dans le développement et le déploiement AKS.

Étapes suivantes