arrow_back

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

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

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

Lab 1 heure 30 minutes universal_currency_alt 5 crédits show_chart Intermédiaire
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP330

Google Cloud – Ateliers adaptés au rythme de chacun

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 de la quête correspondante 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 Implement DevOps Workflows in 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 vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour 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/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

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 à livrer des logiciels de manière plus fréquente et plus fiable. Votre expérience de Cloud Source Repositories, d'Artifact Registry, de Docker et de Cloud Build sera d'une aide précieuse, étant donné que 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 sur la base d'un ensemble de configurations fourni
  • Créer un dépôt Google Source Repositories où héberger votre code d'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 Cloud Source Repositories, 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. Activez les API pour GKE, Cloud Build et Cloud Source Repositories à l'aide de la commande suivante :
gcloud services enable container.googleapis.com \ cloudbuild.googleapis.com \ sourcerepo.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. Exécutez la commande suivante pour configurer Git dans Cloud Shell, en remplaçant <email> par votre adresse e-mail générée pour l'atelier et <name> par votre nom.
git config --global user.email <email> git config --global user.name <name>
  1. Créez un dépôt Docker Artifact Registry nommé my-repository dans la région pour stocker vos images de conteneurs.

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

Paramètre Valeur
Zone
Version disponible Standard
Version du cluster 1.27.8-gke.1067004 ou version ultérieure
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 Cloud Source Repositories

Dans cette tâche, vous allez créer un dépôt sample-app dans Cloud Source Repositories et l'initialiser avec un exemple de code. Ce dépôt contiendra votre code d'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 Cloud Source Repositories.

  2. Clonez le dépôt Cloud Source Repositories 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. 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.

  2. 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.

  3. Vérifiez que l'exemple de code et les branches sont bien stockés dans le dépôt Cloud Source Repositories.

dépôt Cloud Source Repositories 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é de couleur sur la page Web, la couleur dépendant du point d'entrée auquel vous accédez.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer le dépôt dans Cloud Source Repositories

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
    • Dépôt source : 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
    • Dépôt source : 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-pro-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-pro-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;Implement Devops Workflows&quot;

Gagnez un badge de compétence

Cet atelier d'auto-formation fait partie du cours Implement DevOps Workflows in 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 Cloud Devops Engineer de Google Cloud. Poursuivez votre apprentissage en vous inscrivant au cours Monitor and Log with Google Cloud Operations Suite.

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 : 22 mars 2024

Dernier test de l'atelier : 9 février 2024

Copyright 2024 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.