Développer et déployer des applications conteneurisées à l'aide d'un pipeline CI/CD

Last reviewed 2022-11-18 UTC

Ce déploiement explique comment configurer et utiliser un système de développement, d'intégration continue (CI) et de livraison continue (CD) grâce à un ensemble intégré d'outils Google Cloud. Vous pouvez utiliser ce système pour développer et déployer des applications sur Google Kubernetes Engine (GKE).

Ce guide explique comment créer l'architecture décrite dans la section Pipeline de déploiement pour le développement et la livraison d'applications en conteneur.

Ce guide de déploiement est destiné à la fois aux développeurs logiciels et aux opérateurs, et vous jouez les rôles suivants au fur et à mesure que vous le terminez:

  • Vous agirez d'abord en tant qu'opérateur pour configurer le pipeline CI/CD. Les principaux composants de ce pipeline sont Cloud Build, Artifact Registry et Cloud Deploy.
  • Vous agirez ensuite en tant que développeur pour modifier une application en utilisant Cloud Code. En agissant en tant que développeur, vous pourrez témoigner de l'expérience intégrée fournie par ce pipeline.
  • Enfin, vous agirez à nouveau en tant qu'opérateur afin de suivre les étapes permettant de déployer une application en production.

Dans ce déploiement, nous partons du principe que vous savez exécuter des commandes gcloud sur Google Cloud et déployer des conteneurs d'applications sur GKE.

Architecture

Le schéma suivant montre les ressources utilisées dans ce guide de déploiement :

Développer et déployer un système avec Cloud Code, Cloud Build, Artifact Registry, Cloud Deploy et GKE

Pour en savoir plus sur les composants utilisés dans cette architecture, consultez la page Pipeline de déploiement pour le développement et la livraison d'applications en conteneur.

Objectifs

En tant qu'opérateur, vous devez effectuer les actions suivantes :

  • Configurer le pipeline CI et le pipeline CD. Cette configuration comprend les éléments suivants :
    • Configurer les autorisations requises.
    • Créer les clusters GKE pour les environnements de préproduction et de production.
    • Créer un dépôt dans Cloud Source Repositories pour le code source.
    • Créer un dépôt dans Artifact Registry pour le conteneur d'applications.
    • Créer un déclencheur Cloud Build sur le dépôt GitHub principal.
    • Créer un pipeline de diffusion et des cibles Cloud Deploy Les cibles sont l'environnement de préproduction et l'environnement de production.
  • Démarrer le processus CI/CD pour le déployer en préproduction, puis passez-le en production.

En tant que développeur, vous apportez des modifications à l'application. Pour ce faire, vous devrez effectuer les actions suivantes :

  • Cloner le dépôt pour travailler avec un environnement de développement préconfiguré.
  • Apporter une modification à l'application dans votre espace de travail de développement.
  • Compiler et tester la modification. Les tests incluent un test de validation de gouvernance.
  • Afficher et valider la modification dans un cluster de développement. Ce cluster s'exécute sur Minikube.
  • Effectuer un commit de la modification dans le dépôt principal.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Artifact Registry, Cloud Build, Cloud Deploy, Cloud Source Repositories, Google Kubernetes Engine, Resource Manager, and Service Networking APIs.

    Enable the APIs

  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

Préparer votre environnement

Dans cette section, vous agissez en tant qu'opérateur d'application et effectuez les opérations suivantes :

  • Configurer les autorisations requises.
  • Créer les clusters GKE pour les environnements de préproduction et de production.
  • Cloner le dépôt source.
  • Créer un dépôt dans Cloud Source Repositories pour le code source.
  • Créer un dépôt dans Artifact Registry pour l'application de conteneurs.

Configurer les autorisations

Dans cette section, vous accordez les autorisations nécessaires pour configurer le pipeline CI/CD.

  1. Si vous utilisez une nouvelle instance de l'éditeur Cloud Shell, spécifiez le projet à utiliser pour ce guide de déploiement :

    gcloud config set project PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID du projet que vous avez sélectionné ou créé pour ce guide de déploiement.

    Si une boîte de dialogue s'affiche, cliquez sur Autoriser.

  2. Assurez-vous que le compte de service Compute Engine par défaut dispose des autorisations suffisantes pour exécuter des tâches dans Cloud Deploy et extraire des conteneurs à partir d'Artifact Registry. Cloud Build et Cloud Deploy utilisent ce compte de service par défaut.

    Ce compte de service dispose peut-être déjà des autorisations nécessaires. Cette étape garantit que les autorisations nécessaires sont accordées pour les projets qui désactivent l'attribution automatique de rôles pour les comptes de service par défaut.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --role="roles/clouddeploy.jobRunner"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --role="roles/artifactregistry.reader"
    
  3. Accordez au compte de service Cloud Build le droit d'appeler les déploiements avec Cloud Deploy, et de mettre à jour le pipeline de diffusion et les définitions cibles :

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")@cloudbuild.gserviceaccount.com \
        --role="roles/clouddeploy.operator"
    

    Pour en savoir plus sur ce rôle IAM, consultez la page sur le rôle clouddeploy.operator.

  4. Accordez au compte de service Cloud Build et Cloud Deploy le droit de déployer sur GKE :

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --role="roles/container.admin"
    

    Pour en savoir plus sur ce rôle IAM, consultez la page sur le container.admin.

  5. Accordez au compte de service Cloud Build les autorisations nécessaires pour appeler les opérations Cloud Deploy :

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")@cloudbuild.gserviceaccount.com \
        --role="roles/iam.serviceAccountUser"
    

    Lorsque Cloud Build appelle Cloud Deploy, il utilise un compte de service Compute Engine pour créer une version. C'est pourquoi cette autorisation est nécessaire.

    Pour en savoir plus sur ce rôle IAM, consultez la page sur le rôle iam.serviceAccountUser.

Vous disposez maintenant des autorisations nécessaires pour le pipeline CI/CD.

Créer les clusters GKE

Dans cette section, vous allez créer les environnements de préproduction et de production, qui sont tous deux des clusters GKE. (Vous n'avez pas besoin de configurer le cluster de développement, car il utilise Minikube.)

  1. Créez les clusters GKE de préproduction et de production :

    gcloud container clusters create-auto staging \
        --region us-central1 \
        --project=$(gcloud config get-value project) \
        --async
    
    gcloud container clusters create-auto prod \
        --region us-central1 \
        --project=$(gcloud config get-value project) \
        --async
    

    Le cluster de préproduction est l'endroit où vous testez les modifications apportées à votre code. Après avoir vérifié que le déploiement en préproduction n'a pas eu d'impact négatif sur l'application, vous le déployez en production.

  2. Exécutez la commande suivante et assurez-vous que le résultat comporte STATUS: RUNNING pour les clusters de préproduction et de production :

    gcloud container clusters list
    
  3. Récupérez les identifiants dans vos fichiers kubeconfig pour les clusters de préproduction et de production.

    gcloud container clusters get-credentials staging --region us-central1
    
    gcloud container clusters get-credentials prod --region us-central1
    

    Ces identifiants vous permettent d'interagir avec les clusters GKE, par exemple pour vérifier si une application s'exécute correctement.

Vous venez de créer les clusters GKE pour l'environnement de préproduction et de production.

Ouvrir l'IDE et cloner le dépôt

Pour cloner le dépôt et afficher l'application dans votre environnement de développement, procédez comme suit :

  1. Clonez le dépôt GitHub dans Cloud Shell.

    Ouvrir dans Cloud Shell

  2. Cliquez sur Confirmer.

    L'éditeur Cloud Shell s'ouvre et clone l'exemple de dépôt.

    Vous pouvez maintenant afficher le code de l'application dans votre éditeur Cloud Shell.

  3. Spécifiez le projet à utiliser pour ce guide de déploiement:

    gcloud config set project PROJECT_ID
    

    Si une boîte de dialogue s'affiche, cliquez sur Autoriser.

Vous disposez désormais du code source de l'application dans votre environnement de développement.

Ce dépôt source inclut les fichiers Cloud Build et Cloud Deploy nécessaires au pipeline CI/CD.

Créer des dépôts pour le code source et les conteneurs

Dans cette section, vous allez configurer un dépôt dans Cloud Source Repositories pour le code source et un dépôt dans Artifact Registry pour stocker les conteneurs créés par le pipeline CI/CD.

  1. Créez un dépôt dans Cloud Source Repositories pour stocker le code source et l'associer au processus CI/CD :

    gcloud source repos create cicd-sample
    
  2. Assurez-vous que les configurations Cloud Deploy ciblent le bon projet :

    sed -i s/project-id-placeholder/$(gcloud config get-value project)/g deploy/*
    git config --global credential.https://source.developers.google.com.helper gcloud.sh
    git remote add google https://source.developers.google.com/p/$(gcloud config get-value project)/r/cicd-sample
    
  3. Transférez votre code source vers le dépôt :

    git push --all google
    
  4. Créez un dépôt d'images dans Artifact Registry :

    gcloud artifacts repositories create cicd-sample-repo \
        --repository-format=Docker \
        --location us-central1
    

Vous disposez maintenant d'un dépôt pour le code source dans Cloud Source Repositories et d'un dépôt pour le conteneur d'applications dans Artifact Registry. Le dépôt Cloud Source Repositories vous permet de cloner le code source et de le connecter au pipeline CI/CD.

Configurer le pipeline CI/CD

Dans cette section, vous agissez en tant qu'opérateur d'application et vous configurez le pipeline CI/CD. Le pipeline utilise Cloud Build pour la CI et Cloud Deploy pour la CD. Les étapes du pipeline sont définies dans le déclencheur Cloud Build.

  1. Créez un bucket Cloud Storage pour que Cloud Build stocke le fichier artifacts.json (qui suit les artefacts générés par Skaffold pour chaque compilation) :

    gsutil mb gs://$(gcloud config get-value project)-gceme-artifacts/
    

    Le stockage du fichier artifacts.json de chaque compilation dans un emplacement central est une bonne pratique, car il fournit une traçabilité, ce qui facilite le dépannage.

  2. Examinez le fichier cloudbuild.yaml, qui définit le déclencheur Cloud Build et est déjà configuré dans le dépôt source que vous avez cloné.

    Ce fichier définit le déclencheur appelé à chaque nouveau transfert (push) vers la branche principale du dépôt de code source.

    Les étapes suivantes du pipeline CI/CD sont définies dans le fichier cloudbuild.yaml:

    • Cloud Build utilise Skaffold pour créer le conteneur d'applications.

    • Cloud Build place le fichier artifacts.json de la compilation dans le bucket Cloud Storage.

    • Cloud Build place le conteneur d'applications dans Artifact Registry.

    • Cloud Build exécute des tests sur le conteneur d'applications.

    • La commande gcloud deploy apply enregistre les fichiers suivants auprès du service Cloud Deploy :

      • deploy/pipeline.yaml, qui est le pipeline de livraison.
      • deploy/staging.yaml et deploy/prod.yaml, qui sont les fichiers cibles.

      Une fois les fichiers enregistrés, Cloud Deploy crée le pipeline et les cibles si elles n'existent pas encore, ou les recrée si la configuration a été modifiée. Les cibles sont les environnements de préproduction et de production.

    • Cloud Deploy crée une version pour le pipeline de livraison.

      Cette version fait référence au conteneur d'applications créé et testé dans le processus CI.

    • Cloud Deploy déploie la version dans l'environnement de préproduction.

    Les pipelines et les cibles de diffusion sont gérés par Cloud Deploy et sont découplés du code source. Ce découplage signifie que vous n'avez pas besoin de mettre à jour le pipeline de livraison et les fichiers cibles lorsqu'une modification est apportée au code source de l'application.

  3. Créez le déclencheur Cloud Build :

    gcloud beta builds triggers create cloud-source-repositories \
        --name="cicd-sample-main" \
        --repo="cicd-sample" \
        --branch-pattern="main" \
        --build-config="cloudbuild.yaml"
    

    Ce déclencheur indique à Cloud Build de surveiller le dépôt source et d'utiliser le fichier cloudbuild.yaml pour réagir aux modifications apportées au dépôt. Ce déclencheur est appelé lors de chaque nouveau déploiement dans la branche principale.

  4. Accédez à la page Cloud Build dans la console Google Cloud.

    Accéder à Cloud Build

    Notez qu'il n'existe aucune compilation pour votre application.

Vous avez maintenant configuré les pipelines CI et CD, puis créé un déclencheur sur la branche principale du dépôt.

Modifier votre application depuis votre espace de travail de développeur

Dans cette section, vous agissez en tant que développeur d'applications.

Lorsque vous développez votre application, vous effectuez des vérifications itératives en utilisant Cloud Code comme espace de travail de développement :

  • Apportez une modification à l'application.
  • Créez et testez le nouveau code.
  • Déployez l'application sur le cluster Minikube et vérifiez les modifications impactant l'utilisateur.
  • Envoyez la modification vers le dépôt principal.

Une fois cette modification validée ("commit") dans le dépôt principal, le déclencheur Cloud Build démarre le pipeline CI/CD.

Créer, tester et exécuter l'application

Dans cette section, vous allez créer, tester, déployer et accéder à votre application.

Utilisez la même instance de l'éditeur Cloud Shell que celle utilisée dans la section précédente. Si vous avez fermé l'éditeur, ouvrez l'éditeur Cloud Shell dans votre navigateur en accédant à ide.cloud.google.com.

  1. Dans le terminal, démarrez Minikube :

    minikube start
    

    Minikube configure un cluster Kubernetes local dans Cloud Shell. Cette configuration prend quelques minutes. Une fois l'opération terminée, le processus Minikube s'exécute en arrière-plan sur l'instance Cloud Shell.

  2. Dans le volet situé au bas de l'éditeur Cloud Shell, sélectionnez Cloud Code.

  3. Dans le panneau fin qui s'affiche entre le terminal et l'éditeur, sélectionnez Exécuter sur Kubernetes.

    Si l'invite Use current context (minikube) to run the app? s'affiche, cliquez sur Oui.

    Cette commande compile le code source et exécute les tests. Cette opération peut prendre quelques minutes. Les tests incluent des tests unitaires ainsi qu'une étape de validation préconfigurée qui vérifie les règles définies pour l'environnement de déploiement. Cela vous permet d'être averti en cas de problème de déploiement, même lorsque vous travaillez toujours dans votre environnement de développement.

    L'onglet Résultat affiche la progression de Skaffold lors de la création et du déploiement de votre application.

    Laissez cet onglet ouvert tout au long de la présente section.

    Une fois la compilation et les tests terminés, l'onglet Résultat indique Update succeeded et affiche deux URL.

    Lorsque vous créez et testez votre application, Cloud Code renvoie les journaux et les URL dans l'onglet Résultat. Lorsque vous effectuez des modifications et exécutez des tests dans votre environnement de développement, vous pouvez consulter la version de l'application dans votre environnement de développement et vérifier qu'elle fonctionne correctement.

    Le résultat indique également Watching for changes..., ce qui signifie que le mode de surveillance est activé. Lorsque Cloud Code est en mode de surveillance, le service détecte les modifications enregistrées dans votre dépôt, puis recrée et redéploie automatiquement l'application avec les dernières modifications.

  4. Dans le terminal Cloud Code, placez le curseur sur la première URL du résultat (http://localhost:8080).

  5. Dans l'info-bulle qui s'affiche, sélectionnez Ouvrir l'aperçu sur le Web.

    En arrière-plan, Cloud Code transfère automatiquement le trafic vers le service cicd-sample exécuté sur Minikube.

  6. Dans votre navigateur, actualisez la page.

    Le nombre indiqué à côté de Compteur augmente, indiquant que l'application répond à votre actualisation.

    Dans votre navigateur, laissez cette page ouverte afin de pouvoir afficher l'application lorsque vous apportez des modifications dans votre environnement local.

Vous venez de créer et de tester votre application dans l'environnement de développement. Vous avez déployé l'application dans le cluster de développement exécuté sur Minikube et vous avez observé le comportement de l'application du point de vue de l'utilisateur.

Effectuer une modification

Dans cette section, vous allez modifier l'application et en afficher la version modifiée en l'exécutant dans le cluster de développement.

  1. Dans l'éditeur Cloud Shell, ouvrez le fichier index.html.

  2. Recherchez la chaîne Sample App Info et remplacez-la par sample app info, de sorte que le titre utilise désormais des lettres minuscules.

    Le fichier est automatiquement enregistré et une recompilation du conteneur d'applications est déclenchée.

    Cloud Code détecte la modification et effectue automatiquement un nouveau déploiement. L'onglet Résultat affiche Update initiated. L'exécution de ce nouveau déploiement prend quelques minutes.

    Cette fonctionnalité de redéploiement automatique est disponible pour toute application s'exécutant sur un cluster Kubernetes.

  3. Une fois la compilation terminée, accédez au navigateur dans lequel l'application est ouverte et actualisez la page.

    Lorsque vous actualisez, vérifiez que le texte s'affiche maintenant en lettres minuscules.

Cette configuration vous permet d'actualiser automatiquement l'architecture, quels qu'en soient les composants. Lorsque vous utilisez Cloud Code et Minikube, tous les composants exécutés dans Kubernetes disposent de cette fonctionnalité d'actualisation de code à chaud.

Vous pouvez déboguer des applications déployées sur un cluster Kubernetes dans Cloud Code. Ces étapes ne sont pas abordées dans le présent guide de déploiement. Pour en savoir plus, consultez la section Déboguer une application Kubernetes.

Effectuer un commit du code

Maintenant que vous avez modifié l'application, vous pouvez procéder au commit du code.

  1. Configurez votre identité Git :

    git config --global user.email "YOU@EXAMPLE.COM"
    git config --global user.name "NAME"
    

    Remplacez les éléments suivants :

    • YOU@EXAMPLE.COM: adresse e-mail connectée à votre compte GitHub.
    • NAME: nom associé à votre compte GitHub.
  2. À partir du terminal, effectuez le commit du code :

    git add .
    git commit -m "use lowercase for: sample app info"
    

    Vous n'avez pas besoin d'exécuter la commande git push ici. Cette étape intervient plus tard.

Dans l'environnement de développement, vous avez maintenant modifié l'application, compilé et testé la modification, puis vérifié le comportement des modifications pour vos utilisateurs. Les tests de l'environnement de développement incluent des vérifications de gouvernance qui permettent de résoudre des problèmes susceptibles de se manifester dans l'environnement de production.

Dans ce guide de déploiement, lorsque vous effectuez un commit du code dans le dépôt principal, aucun examen du code n'est mis en œuvre. Toutefois, l'examen ou l'approbation des modifications du code font partie des processus recommandés pour le développement logiciel.

Pour en savoir plus sur les bonnes pratiques d'approbation des changements, consultez la section Simplifier l'approbation des changements.

Déployer une modification en production

Dans cette section, vous agissez en tant qu'opérateur d'application et effectuez les opérations suivantes :

  • Déclencher le pipeline CI/CD afin de déployer la version dans l'environnement de préproduction.
  • Promouvoir et approuver la version en production.

Démarrer le pipeline CI/CD et le déployer en préproduction.

Dans cette section, vous allez démarrer le pipeline CI/CD en appelant le déclencheur Cloud Build. Ce déclencheur est appelé chaque fois qu'une modification est validée dans le dépôt principal. Vous pouvez également lancer le système CI avec un déclencheur manuel.

  1. Dans l'éditeur Cloud Shell, exécutez la commande suivante pour déclencher une compilation :

    git push google
    

    Cette compilation inclut la modification que vous avez apportée à cicd-sample.

  2. Revenez au tableau de bord Cloud Build et vérifiez qu'une compilation a bien été créée.

  3. Cliquez sur Running: cicd-sample - cicd-sample-main dans le journal de compilation situé à droite, puis recherchez le texte bleu indiquant le début et la fin de chaque étape.

    L'étape 0 affiche la sortie des instructions skaffold build et skaffold test du fichier cloudbuild.yaml. Les tâches de compilation et de test de l'étape 0 (la partie CI du pipeline) ont réussi. Les tâches de déploiement de l'étape 1 (la partie CD du pipeline) sont maintenant en cours d'exécution.

    Le message ci-dessous s'affiche une fois l'étape terminée :

    Created Cloud Deploy rollout ROLLOUT_NAME in target staging

  4. Ouvrez la page Pipelines de livraison Cloud Deploy, puis cliquez sur le pipeline cicd-sample delivery.

    L'application est déployée en préproduction, mais pas en production.

  5. Vérifiez que l'application fonctionne correctement dans l'environnement de préproduction :

    kubectl proxy --port 8001 --context gke_$(gcloud config get-value project)_us-central1_staging
    

    Cette commande configure un proxy kubectl pour accéder à l'application.

  6. Accédez à l'application depuis Cloud Shell :

    1. Dans l'éditeur Cloud Shell, ouvrez un nouvel onglet de terminal.

    2. Envoyez une requête à localhost pour incrémenter un compteur :

      curl -s http://localhost:8001/api/v1/namespaces/default/services/cicd-sample:8080/proxy/ | grep -A 1 Counter
      

      Vous pouvez exécuter cette commande plusieurs fois et voir la valeur du compteur s'incrémenter à chaque fois.

      Lorsque vous affichez l'application, notez que le texte que vous avez modifié se trouve dans la version de l'application que vous avez déployée en préproduction.

    3. Fermez ce deuxième onglet.

    4. Dans le premier onglet, appuyez sur Control+C pour arrêter le proxy.

Vous avez maintenant appelé le déclencheur Cloud Build pour démarrer le processus CI, qui comprend la compilation de l'application, son déploiement dans l'environnement de préproduction et l'exécution de tests pour vérifier que l'application fonctionne correctement en préproduction.

Le processus CI est réussi lorsque la compilation et les tests du code réussissent dans l'environnement de préproduction. La réussite du processus CI déclenche ensuite le système CD dans Cloud Deploy.

Promouvoir la version en production

Dans cette section, vous allez promouvoir la version de préproduction en production. La cible de production est préconfigurée pour nécessiter une approbation. Vous devez donc l'approuver manuellement.

Pour votre propre pipeline CI/CD, vous pouvez utiliser une stratégie de déploiement qui lance le déploiement progressivement avant de procéder à un déploiement complet en production. Le lancement progressif du déploiement facilite la détection des problèmes et, si nécessaire, la restauration d'une version précédente.

Pour promouvoir la version en production, procédez comme suit :

  1. Ouvrez la présentation des pipelines de livraison Cloud Deploy et sélectionnez le pipeline cicd-sample.

  2. Promouvez le déploiement de la préproduction à la production. Pour ce faire, procédez comme suit :

    1. Dans le schéma du pipeline en haut de la page, cliquez sur le bouton bleu Promouvoir dans la zone de préproduction.

    2. Dans la fenêtre qui s'affiche, cliquez sur le bouton Promouvoir en bas de la page.

    Le déploiement n'est pas encore exécuté en production. Il est en attente de l'approbation manuelle requise.

  3. Approuvez manuellement le déploiement :

    1. Dans la visualisation du pipeline, cliquez sur le bouton Vérifier entre les zones de préproduction et de production.

    2. Dans la fenêtre qui s'affiche, cliquez sur le bouton Vérifier.

    3. Dans la fenêtre suivante, cliquez sur Approuver.

    4. Revenez à la présentation des pipelines de livraison Cloud Deploy et sélectionnez le pipeline cicd-sample.

  4. Une fois que la visualisation du pipeline affiche la zone de production en vert (ce qui signifie un déploiement réussi), vérifiez que l'application fonctionne en production en configurant un proxy kubectl que vous utilisez pour accéder à l'application :

    kubectl proxy --port 8002 --context gke_$(gcloud config get-value project)_us-central1_prod
    
  5. Accédez à l'application depuis Cloud Shell :

    1. Dans l'éditeur Cloud Shell, ouvrez un nouvel onglet de terminal.

    2. Incrémentez le compteur :

      curl -s http://localhost:8002/api/v1/namespaces/default/services/cicd-sample:8080/proxy/ | grep -A 1 Counter
      

      Vous pouvez exécuter cette commande plusieurs fois et voir la valeur du compteur s'incrémenter à chaque fois.

    3. Fermez ce deuxième onglet de terminal.

    4. Dans le premier onglet, appuyez sur Control+C pour arrêter le proxy.

Vous venez de promouvoir et d'approuver le déploiement en production. L'application contenant votre modification récente est désormais exécutée en production.

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors dans ce guide de déploiement soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez chaque ressource individuellement.

Option 1 : supprimer le projet

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Option 2 : supprimer les ressources individuelles

  1. Supprimez le pipeline Cloud Deploy :

    gcloud deploy delivery-pipelines delete cicd-sample --region=us-central1 --force
    
  2. Supprimer le déclencheur Cloud Build :

    gcloud beta builds triggers delete cicd-sample-main
    
  3. Supprimer les clusters de préproduction et de production :

    gcloud container clusters delete staging
    
    gcloud container clusters delete prod
    
  4. Supprimer le dépôt dans Cloud Source Repositories :

    gcloud source repos delete cicd-sample
    
  5. Supprimer les buckets Cloud Storage :

    `gsutil rm -r gs://$(gcloud config get-value project)-gceme-artifacts/
    
     gsutil rm -r gs://$(gcloud config get-value project)_clouddeploy/
     ```
    
  6. Supprimer le dépôt dans Artifact Registry :

    gcloud artifacts repositories delete cicd-sample-repo \
        --location us-central1
    

Étape suivante