Microservices avec AKS et Azure DevOps

Container Registry
Azure DevOps
Kubernetes Service
GitHub

Important

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

Cas d’usage potentiels

Utilisez AKS pour simplifier le déploiement et la gestion de l'architecture basée sur les microservices. AKS simplifie la mise à l'échelle horizontale, la réparation spontanée, l'équilibrage de charge et la gestion des secrets.

Architecture

Diagramme d’architecture d’un pipeline CI/CD AKS utilisant 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 conteneur dans une instance Azure Container Repository 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. Si les tests réussissent, une tâche de validation manuelle est exécutée, 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 des métriques de performances, des données d’inventaire et des informations sur l’état d’intégrité à partir d’hôtes de conteneur et de conteneurs vers Azure Monitor toutes les trois minutes.
  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.

Étapes suivantes