Conception du pipeline de déploiement

Effectué

Dans cette unité, vous concevez un pipeline CI/CD pour prendre en charge les besoins de votre projet. Vous souhaitez que le site web Contoso Video soit publié dans Azure Kubernetes Service (AKS) après chaque envoi (push) réussi à la branche primaire étiquetée pour la mise en production. La conception d’étiquetage facilite la vérification de la version de chaque déploiement mis en production.

Vous souhaitez également déployer le site web dans un environnement intermédiaire à des fins de tests après chaque envoi à la branche primaire, que l’envoi soit étiqueté ou non pour la mise en production. Vous pouvez utiliser des étiquettes pour router différentes images conteneur lorsque vous les envoyez à Azure Container Registry.

Concevoir le pipeline

Pour concevoir le pipeline, tenez compte des tâches et des déclencheurs.

Déclencheurs

Deux événements différents doivent déclencher votre pipeline :

  • Un envoi étiqueté à la branche primaire.
  • Un envoi non étiqueté à la branche primaire.

Fractionnez les deux événements en deux déclencheurs distincts, car les actions d’un envoi étiqueté sont différentes de celles d’un envoi non étiqueté. Un envoi étiqueté est déployé en production, tandis qu’un envoi non étiqueté est déployé dans l’environnement intermédiaire. Le diagramme suivant montre les deux déclencheurs du pipeline :

Diagram that shows two types of pipeline triggers.

Après avoir défini les déclencheurs, planifiez le flux du pipeline.

Étape 1 : Cloner le référentiel

Les premières étapes sont les étapes de génération au cours desquelles vous préparez une configuration et générez l’image avant de l’envoyer au cluster AKS. Dans les étapes de génération, vous configurez toutes les informations nécessaires à l’étape de déploiement. Dans ce cas, la première étape de génération après réception du signal de déclenchement est la même pour les deux déclencheurs, à savoir cloner le référentiel.

Diagram that shows the procession from triggers to the first build step in a pipeline.

Étape 2 : Créer l’image

L’étape logique suivante consiste à générer une image. Pour s’exécuter dans l’environnement AKS, le site web doit être une image Docker. Vous devez générer la nouvelle image en utilisant le Dockerfile qui se trouve à la racine du référentiel. C’est ici que vous tenez compte des différents déclencheurs.

Pour le pipeline du commit étiqueté, vous générez l’image et l’étiquetez avec la même étiquette que l’envoi. Par exemple, si le commit est étiqueté avec v1.0.0, vous générez l’image comme ceci : contoso/website:v1.0.0. Si vous avez un commit non étiqueté dans la branche primaire, vous générez l’image avec l’étiquette latest.

Diagram that shows the procession from triggers to the first and second build steps in a pipeline.

Étape 3 : Pousser l’image vers un registre de conteneurs

Une fois l’image générée, vous l’envoyez au registre de conteneurs Contoso et vous configurez le cluster AKS pour accéder au registre. Le cluster télécharge les images à partir de Container Registry et les exécute.

C’est là que le pipeline converge en une seule étape. Votre instance Container Registry ne comportant pas de divisions internes, vous devez envoyer les deux images au même endroit.

Diagram that shows the procession from triggers to the first, second, and third build steps in the pipeline.

Étape 4 : Déployer l’application

La dernière étape de déploiement déploie le site web au bon endroit. Si un commit étiqueté a déclenché le pipeline, vous déployez le site web sur l’espace de noms production du cluster AKS. Si le pipeline a été déclenché avec un commit non étiqueté, vous l’envoyez à l’espace de noms staging du même cluster.

Diagram that shows the procession from triggers, through three build steps, to the deploy steps in a pipeline.

Maintenant que vous avez conçu le pipeline du workflow, passez aux unités suivantes pour configurer votre environnement de projet et créer des actions GitHub Actions pour cloner, générer, envoyer et déployer sur le cluster AKS.