arrow_back

Implémenter des workflows DevOps dans Google Cloud : atelier challenge

Accédez à plus de 700 ateliers et cours

Implémenter des workflows DevOps dans Google Cloud : atelier challenge

Atelier 1 heure 30 minutes universal_currency_alt 5 crédits show_chart Intermédiaire
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Accédez à plus de 700 ateliers et cours

GSP330

Logo des ateliers d'auto-formation Google Cloud

Présentation

Dans un atelier challenge, vous devez suivre un scénario et effectuer une série de tâches. Aucune instruction détaillée n'est fournie : vous devez utiliser les compétences acquises au cours des ateliers du cours correspondant pour déterminer comment procéder par vous-même. Vous saurez si vous avez exécuté correctement les différentes tâches grâce au score calculé automatiquement (affiché sur cette page).

Lorsque vous participez à un atelier challenge, vous n'étudiez pas de nouveaux concepts Google Cloud. Vous allez approfondir les compétences précédemment acquises. Par exemple, vous devrez modifier les valeurs par défaut ou encore examiner des messages d'erreur pour corriger vous-même les problèmes.

Pour atteindre le score de 100 %, vous devez mener à bien l'ensemble des tâches dans le délai imparti.

Cet atelier est recommandé aux participants inscrits au cours Implémenter des workflows DevOps dans Google Cloud. Êtes-vous prêt pour le challenge ?

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.

Prérequis

Vous devez disposer d'un compte GitHub pour suivre cet atelier. Si vous en avez déjà un, vous pouvez l'utiliser. Dans le cas contraire, vous devrez créer un compte GitHub.

Scénario du challenge

Ingénieur DevOps depuis quelques mois chez Cymbal Superstore, vous maîtrisez dans les moindres détails la façon dont l'entreprise gère son site Web d'e-commerce. L'équipe DevOps travaille notamment sur un pipeline CI/CD à grande échelle et aimerait que vous participiez à sa création. Cela permettra à l'entreprise d'aider les développeurs à automatiser les tâches, à collaborer plus efficacement avec d'autres équipes, et à publier des logiciels de manière plus fréquente et plus fiable. Votre expérience avec GitHub, Artifact Registry, Docker et Cloud Build sera d'une aide précieuse, puisque Cymbal Superstore aimerait utiliser tous les services Google Cloud natifs pour son pipeline.

Logo Cymbal Superstore

Avant que vous ne démarriez ce projet, l'équipe DevOps aimerait que vous fassiez la démonstration de vos nouvelles compétences. Elle a pour cela dressé la liste des tâches qu'elle aimerait vous voir réaliser dans un environnement de bac à sable et dans un délai imparti.

Votre défi

Vos tâches seront les suivantes :

  • Créer un cluster GKE en vous basant sur un ensemble de configurations fourni
  • Créer un dépôt GitHub où héberger le code de votre application Go
  • Créer des déclencheurs Cloud Build qui déploient une application de production et une application de développement
  • Déployer des mises à jour dans l'application et créer des builds
  • Effectuer un rollback vers une version précédente de l'application de production

Globalement, vous allez créer un simple pipeline CI/CD à l'aide de dépôts GitHub, d'Artifact Registry et de Cloud Build.

Tâche 1 : Créer les ressources de l'atelier

Dans cette section, vous allez initialiser votre projet Google Cloud pour l'environnement de démonstration. Vous allez activer les API requises, configurer Git dans Cloud Shell, créer un dépôt Docker Artifact Registry, et créer un cluster GKE dans lequel exécuter vos applications de production et de développement.

  1. Exécutez la commande suivante pour activer les API pour GKE, Cloud Build et GitHub :
gcloud services enable container.googleapis.com \ cloudbuild.googleapis.com
  1. Ajoutez le rôle Développeur Kubernetes pour le compte de service Cloud Build :
export PROJECT_ID=$(gcloud config get-value project) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")@cloudbuild.gserviceaccount.com --role="roles/container.developer"
  1. Dans Cloud Shell, exécutez les commandes suivantes pour configurer Git et GitHub :

    curl -sS https://webi.sh/gh | sh gh auth login gh api user -q ".login" GITHUB_USERNAME=$(gh api user -q ".login") git config --global user.name "${GITHUB_USERNAME}" git config --global user.email "${USER_EMAIL}" echo ${GITHUB_USERNAME} echo ${USER_EMAIL}
    • Appuyez sur Entrée pour accepter les options par défaut.
    • Lisez les instructions dans le résultat de la commande pour vous connecter à GitHub avec un navigateur Web.

    Une fois que vous êtes connecté, votre nom d'utilisateur GitHub s'affiche dans le résultat de Cloud Shell.

  2. Créez un dépôt Docker Artifact Registry nommé my-repository dans la région pour stocker vos images de conteneurs.

  3. Créez un cluster GKE Standard nommé hello-cluster en utilisant la configuration suivante :

Paramètre Valeur
Zone
Canal de publication Standard
Version du cluster 1.29 et versions ultérieures
Autoscaler de cluster Activé
Nombre de nœuds 3
Nombre minimal de nœuds 2
Nombre maximal de nœuds 6
  1. Créez les espaces de noms prod et dev dans votre cluster.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer les ressources de l'atelier

Tâche 2 : Créer un dépôt dans GitHub

Dans cette tâche, vous allez créer un dépôt sample-app dans GitHub et l'initialiser avec un exemple de code. Ce dépôt contiendra le code de votre application Go et constituera la source principale pour le déclenchement de builds.

  1. Créez un dépôt vide nommé sample-app dans GitHub.

  2. Clonez le dépôt GitHub sample-app dans Cloud Shell.

  3. À l'aide de la commande suivante, copiez l'exemple de code dans votre dépôt sample-app :

cd ~ gsutil cp -r gs://spls/gsp330/sample-app/* sample-app
  1. Exécutez la commande suivante, qui remplacera automatiquement les espaces réservés <your-region> et <your-zone> dans les fichiers cloudbuild-dev.yaml et cloudbuild.yaml par la région et la zone attribuées à votre projet :
export REGION="{{{project_0.default_region | REGION}}}" export ZONE="{{{project_0.default_zone | ZONE}}}" for file in sample-app/cloudbuild-dev.yaml sample-app/cloudbuild.yaml; do sed -i "s/<your-region>/${REGION}/g" "$file" sed -i "s/<your-zone>/${ZONE}/g" "$file" done
  1. Créez un dépôt GitHub nommé sample-app.

  2. Après avoir créé le dépôt, effectuez votre premier commit avec l'exemple de code ajouté à votre dépôt sample-app, puis déployez les modifications dans la branche master.

  3. Créez une branche nommée dev. Effectuez un commit avec l'exemple de code ajouté au dépôt sample-app et déployez les modifications dans la branche dev.

  4. Vérifiez que l'exemple de code et les branches sont bien stockés dans le dépôt GitHub.

Dépôt source avec branches

Le code que vous venez de cloner contient une application Go simple avec deux points d'entrée : "red" et "blue". Chacun d'eux affiche un simple carré sur la page Web, dont la couleur dépend du point d'entrée auquel vous accédez.

Tâche 3 : Créer les déclencheurs Cloud Build

Dans cette section, vous allez créer deux déclencheurs Cloud Build.

  • Le premier déclencheur écoute les modifications apportées à la branche master, puis compile une image Docker de votre application et la transfère vers Google Artifact Registry, et enfin déploie la dernière version de l'image sur l'espace de noms prod dans votre cluster GKE.

  • Le second déclencheur écoute les modifications apportées à la branche dev, puis compile une image Docker de votre application et la transfère vers Google Artifact Registry, et enfin déploie la dernière version de l'image sur l'espace de noms dev dans votre cluster GKE.

  1. Créez un déclencheur Cloud Build nommé sample-app-prod-deploy avec les configurations suivantes :

    • Événement : Déployer sur une branche
    • Source :
      • Connectez-vous à un nouveau dépôt et sélectionnez le fournisseur de gestion du code source : GitHub (Application Cloud Build GitHub).
      • Choisissez le dépôt GitHub : sample-app
    • Branche : ^master$
    • Fichier de configuration Cloud Build : cloudbuild.yaml
  2. Créez un déclencheur Cloud Build nommé sample-app-dev-deploy avec les configurations suivantes :

    • Événement : Déployer sur une branche
    • Pour la source, choisissez le dépôt GitHub : sample-app
    • Branche : ^dev$
    • Fichier de configuration Cloud Build : cloudbuild-dev.yaml

Une fois les déclencheurs configurés, toute modification apportée à l'une des branches déclenche le pipeline Cloud Build correspondant, qui compile et déploie l'application comme spécifié dans le fichier cloudbuild.yaml concerné.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer les déclencheurs Cloud Build

Tâche 4 : Déployer la première version des applications

Dans cette section, vous allez compiler la première version des applications de production et de développement.

Compiler le premier déploiement de développement

  1. Dans Cloud Shell, inspectez le fichier cloudbuild-dev.yaml situé dans le répertoire sample-app pour voir les étapes du processus de compilation. Dans le fichier cloudbuild-dev.yaml, remplacez <version> aux lignes 9 et 13 par v1.0.

  2. Accédez au fichier dev/deployment.yaml et modifiez <todo> à la ligne 17 pour indiquer le nom de l'image de conteneur correcte. Remplacez également la variable PROJECT_ID par l'ID de projet réel dans le nom de l'image de conteneur.

Remarque : Assurez-vous que le nom de l'image de conteneur est le même dans les fichiers dev/deployment.yaml et cloudbuild-dev.yaml.
  1. Effectuez un commit avec vos modifications sur la branche dev et déployez-les afin de déclencher le job de compilation sample-app-dev-deploy.

  2. Vérifiez que votre build a bien été exécuté sur la page Historique Cloud Build, et que l'application development-deployment a été déployée sur l'espace de noms dev du cluster.

  3. Exposez le déploiement development-deployment dans un service LoadBalancer nommé dev-deployment-service sur le port 8080, et définissez le port cible du conteneur sur celui spécifié dans le Dockerfile.

  4. Accédez à l'adresse IP d'équilibreur de charge du service et ajoutez le point d'entrée /blue à la fin de l'URL pour vérifier que l'application est opérationnelle. L'URL doit ressembler à ceci : http://34.135.97.199:8080/blue.

Compiler le premier déploiement de production

  1. Revenez à la branche master. Inspectez le fichier cloudbuild.yaml situé dans le répertoire sample-app pour voir les étapes du processus de compilation. Dans le fichier cloudbuild.yaml, remplacez <version> aux lignes 11 et 16 par v1.0.

  2. Accédez au fichier prod/deployment.yaml et modifiez <todo> à la ligne 17 pour indiquer le nom de l'image de conteneur correcte. Remplacez également la variable PROJECT_ID par l'ID de projet réel dans le nom de l'image de conteneur.

Remarque : Assurez-vous que le nom de l'image de conteneur est le même dans les fichiers prod/deployment.yaml et cloudbuild.yaml.
  1. Effectuez un commit avec vos modifications sur la branche master et déployez-les afin de déclencher le job de compilation sample-app-prod-deploy.

  2. Vérifiez que votre build a bien été exécuté sur la page Historique Cloud Build, et que l'application production-deployment a été déployée sur l'espace de noms prod du cluster.

  3. Exposez le déploiement production-deployment de l'espace de noms prod dans un service LoadBalancer nommé prod-deployment-service sur le port 8080, et définissez le port cible du conteneur sur celui spécifié dans le Dockerfile.

  4. Accédez à l'adresse IP d'équilibreur de charge du service et ajoutez le point d'entrée /blue à la fin de l'URL pour vérifier que l'application est opérationnelle. L'URL doit ressembler à ceci : http://34.135.245.19:8080/blue.

Cliquez sur Vérifier ma progression pour valider l'objectif. Déployer la première version des applications

Tâche 5 : Déployer la seconde version des applications

Dans cette section, vous allez compiler la seconde version des applications de production et de développement.

Compiler le second déploiement de développement

  1. Revenez à la branche dev.
Remarque : Avant de continuer, assurez-vous d'être revenu à la branche dev pour créer un déploiement pour l'environnement dev.
  1. Dans le fichier main.go, modifiez la fonction main() comme suit :
func main() { http.HandleFunc("/blue", blueHandler) http.HandleFunc("/red", redHandler) http.ListenAndServe(":8080", nil) }
  1. Ajoutez la fonction suivante dans le fichier main.go :
func redHandler(w http.ResponseWriter, r *http.Request) { img := image.NewRGBA(image.Rect(0, 0, 100, 100)) draw.Draw(img, img.Bounds(), &image.Uniform{color.RGBA{255, 0, 0, 255}}, image.ZP, draw.Src) w.Header().Set("Content-Type", "image/png") png.Encode(w, img) }
  1. Inspectez le fichier cloudbuild-dev.yaml pour voir les étapes du processus de compilation. Mettez à jour la version de l'image Docker vers v2.0.

  2. Accédez au fichier dev/deployment.yaml et modifiez le nom de l'image de conteneur afin qu'il corresponde à la nouvelle version (v2.0).

  3. Effectuez un commit avec vos modifications sur la branche dev et déployez-les afin de déclencher le job de compilation sample-app-dev-deploy.

  4. Vérifiez que votre build a bien été exécuté sur la page Historique Cloud Build, et que l'application development-deployment a été déployée sur l'espace de noms dev du cluster et utilise l'image v2.0.

  5. Accédez à l'adresse IP d'équilibreur de charge du service et ajoutez le point d'entrée /red à la fin de l'URL pour vérifier que l'application est opérationnelle. L'URL doit ressembler à ceci : http://34.135.97.199:8080/red.

Remarque : La propagation des mises à jour dans votre équilibreur de charge peut prendre quelques minutes.

Compiler le second déploiement de production

  1. Revenez à la branche master.
Remarque : Avant de continuer, assurez-vous d'être revenu à la branche master pour créer un déploiement pour l'environnement master.
  1. Dans le fichier main.go, modifiez la fonction main() comme suit :
func main() { http.HandleFunc("/blue", blueHandler) http.HandleFunc("/red", redHandler) http.ListenAndServe(":8080", nil) }
  1. Ajoutez la fonction suivante dans le fichier main.go :
func redHandler(w http.ResponseWriter, r *http.Request) { img := image.NewRGBA(image.Rect(0, 0, 100, 100)) draw.Draw(img, img.Bounds(), &image.Uniform{color.RGBA{255, 0, 0, 255}}, image.ZP, draw.Src) w.Header().Set("Content-Type", "image/png") png.Encode(w, img) }
  1. Inspectez le fichier cloudbuild.yaml pour voir les étapes du processus de compilation. Mettez à jour la version de l'image Docker vers v2.0.

  2. Accédez au fichier prod/deployment.yaml et modifiez le nom de l'image de conteneur afin qu'il corresponde à la nouvelle version (v2.0).

  3. Effectuez un commit avec vos modifications sur la branche master et déployez-les afin de déclencher le job de compilation sample-app-prod-deploy.

  4. Vérifiez que votre build a bien été exécuté sur la page Historique Cloud Build, et que l'application production-deployment a été déployée sur l'espace de noms prod du cluster et utilise l'image v2.0.

  5. Accédez à l'adresse IP d'équilibreur de charge du service et ajoutez le point d'entrée /red à la fin de l'URL pour vérifier que l'application est opérationnelle. L'URL doit ressembler à ceci : http://34.135.245.19:8080/red.

Remarque : La propagation des mises à jour dans votre équilibreur de charge peut prendre quelques minutes.

Parfait. Vous venez de créer des pipelines CI/CD de production et de développement entièrement fonctionnels.

Cliquez sur Vérifier ma progression pour valider l'objectif. Déployer la seconde version des applications

Tâche 6 : Effectuer un rollback du déploiement de production

Dans cette section, vous allez effectuer un rollback vers une version précédente du déploiement de production.

  1. Effectuez un rollback de production-deployment afin d'utiliser la version v1.0 de l'application.
Conseil : Grâce à l'historique Cloud Build, vous pouvez facilement effectuer un rollback/recompiler les déploiements avec les versions précédentes.
  1. Accédez à l'adresse IP d'équilibreur de charge du service et ajoutez le point d'entrée /red à la fin de l'URL du déploiement de production. La réponse indiquée sur la page doit être 404.

Cliquez sur Vérifier ma progression pour valider l'objectif. Effectuer un rollback du déploiement de production

Félicitations !

Félicitations ! Avec cet atelier, vous avez validé vos compétences concernant l'implémentation de workflows DevOps dans Google Cloud. Vous avez d'abord créé un cluster GKE pour exécuter votre application, ainsi qu'un dépôt Git pour héberger votre code base. Ensuite, vous avez créé des déclencheurs Cloud Build, modifié le code et les modèles, et déployé des mises à jour dans le dépôt, ce qui a entraîné la création de vos premiers builds d'application de développement et de production. Pour finir, vous avez déployé des mises à jour dans l'application afin de créer de nouveaux builds, puis effectué un rollback vers une version précédente de l'application de production. Vous êtes désormais prêt à commencer à effectuer des tâches de DevOps dans votre propre environnement.

Badge de compétence &quot;Implémenter des workflows DevOps&quot;

Gagnez un badge de compétence

Cet atelier d'auto-formation fait partie du cours Implémenter des workflows DevOps dans Google Cloud. Si vous terminez ce cours, vous obtiendrez le badge de compétence ci-dessus attestant de votre réussite. Ajoutez votre badge à votre CV et partagez-le sur les réseaux sociaux en utilisant le hashtag #GoogleCloudBadge.

Ce badge de compétence est associé au parcours de formation Ingénieur cloud DevOps de Google Cloud. Poursuivez votre apprentissage en vous inscrivant au cours Surveillance et journalisation avec Google Cloud Observability.

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 26 juin 2024

Dernier test de l'atelier : 26 juin 2024

Copyright 2025 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Ouvrez une fenêtre de navigateur en mode navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.