Points de contrôle
Create the lab resources
/ 20
Create the Cloud Build Triggers
/ 20
Deploy the first versions of the application
/ 20
Deploy the second versions of the application
/ 20
Roll back the production deployment
/ 20
Implémenter des workflows DevOps dans Google Cloud : atelier challenge
- GSP330
- Présentation
- Scénario du challenge
- Tâche 1 : Créer les ressources de l'atelier
- Tâche 2 : Créer un dépôt dans Cloud Source Repositories
- Tâche 3 : Créer les déclencheurs Cloud Build
- Tâche 4 : Déployer la première version des applications
- Tâche 5 : Déployer la seconde version des applications
- Tâche 6 : Effectuer un rollback du déploiement de production
- Félicitations !
GSP330
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 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) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
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.
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.
- Activez les API pour GKE, Cloud Build et Cloud Source Repositories à l'aide de la commande suivante :
- Ajoutez le rôle Développeur Kubernetes pour le compte de service Cloud Build :
- 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.
-
Créez un dépôt Docker Artifact Registry nommé my-repository dans la région
pour stocker vos images de conteneurs. -
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 |
- Créez les espaces de noms
prod
etdev
dans votre cluster.
Cliquez sur Vérifier ma progression pour valider l'objectif.
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.
-
Créez un dépôt vide nommé sample-app dans Cloud Source Repositories.
-
Clonez le dépôt Cloud Source Repositories sample-app dans Cloud Shell.
-
À l'aide de la commande suivante, copiez l'exemple de code dans votre dépôt
sample-app
:
- Exécutez la commande suivante, qui remplacera automatiquement les espaces réservés
<your-region>
et<your-zone>
dans les fichierscloudbuild-dev.yaml
etcloudbuild.yaml
par la région et la zone attribuées à votre projet :
-
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. -
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. -
Vérifiez que l'exemple de code et les branches sont bien stockés dans le dépôt Cloud Source Repositories.
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.
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.
-
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
-
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.
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
-
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 fichiercloudbuild-dev.yaml
, remplacez<version>
aux lignes 9 et 13 parv1.0
. -
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 variablePROJECT_ID
par l'ID de projet réel dans le nom de l'image de conteneur.
-
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. -
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. -
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. -
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
-
Revenez à la branche
master
. Inspectez le fichiercloudbuild.yaml
situé dans le répertoire sample-app pour voir les étapes du processus de compilation. Dans le fichiercloudbuild.yaml
, remplacez<version>
aux lignes 11 et 16 parv1.0
. -
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 variablePROJECT_ID
par l'ID de projet réel dans le nom de l'image de conteneur.
-
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. -
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. -
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. -
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.
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
- Revenez à la branche
dev
.
- Dans le fichier
main.go
, modifiez la fonctionmain()
comme suit :
- Ajoutez la fonction suivante dans le fichier
main.go
:
-
Inspectez le fichier
cloudbuild-dev.yaml
pour voir les étapes du processus de compilation. Mettez à jour la version de l'image Docker versv2.0
. -
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
). -
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. -
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'imagev2.0
. -
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
.
Compiler le second déploiement de production
- Revenez à la branche
master
.
- Dans le fichier
main.go
, modifiez la fonctionmain()
comme suit :
- Ajoutez la fonction suivante dans le fichier
main.go
:
-
Inspectez le fichier
cloudbuild.yaml
pour voir les étapes du processus de compilation. Mettez à jour la version de l'image Docker versv2.0
. -
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
). -
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. -
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'imagev2.0
. -
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
.
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.
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.
- Effectuez un rollback de production-deployment afin d'utiliser la version
v1.0
de l'application.
- 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 être404
.
Cliquez sur Vérifier ma progression pour valider l'objectif.
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.
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 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 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.