arrow_back

Build a Website on 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

Build a Website on 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

GSP319

Google Cloud – Ateliers adaptés au rythme de chacun

Introduction

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 à la quête Build a Website on Google Cloud. Êtes-vous prêt pour le challenge ?

Prérequis

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

Vous venez de décrocher un poste chez FancyStore, Inc.

Votre objectif est de décomposer le site Web d'e-commerce monolithique existant de votre entreprise en un ensemble de microservices séparés logiquement. Le code monolithique existant est stocké dans un dépôt GitHub, et vous devez conteneuriser cette application avant de la refactoriser.

Vous êtes censé disposer des compétences et connaissances requises pour ces tâches. Ne vous attendez donc pas à recevoir des instructions détaillées.

L'entreprise vous a demandé de reprendre le flambeau, car l'équipe responsable de cette application monolithique n'arrivait plus à gérer la charge de travail. Ses membres ont décidé d'aller voir si l'herbe était plus verte ailleurs (au sens littéral du terme : ils s'occupent désormais d'un champ de lavande). Votre tâche consistera à extraire le code source, à créer un conteneur à partir de ce code (un membre de l'ancienne équipe vous a laissé un Dockerfile), puis à le transférer vers GKE.

Vous devez commencer par créer, déployer et tester l'application monolithique afin de vous assurer que le code source fonctionne bien. Vous devez ensuite décomposer les services de l'application en déploiements de microservices.

Voici certaines normes de FancyStore, Inc. que vous devez respecter :

  • Créez votre cluster dans

  • Les noms suivent normalement le schéma équipe-ressource : par exemple, une instance peut être nommée fancystore-servicecommandes1.

  • La quantité de ressources allouée doit être rentable. Les projets sont surveillés, et s'ils utilisent trop de ressources, ils sont abandonnés.

  • Sauf indication contraire, utilisez le type de machine e2-medium.

Votre challenge

Dès que vous vous asseyez à votre bureau et ouvrez votre nouvel ordinateur, vous devez effectuer les tâches suivantes. Bonne chance !

Tâche 1 : Télécharger le code monolithique et créer votre conteneur

  1. Connectez-vous à votre nouveau projet et ouvrez Cloud Shell.

  2. Pour commencer, vous devrez cloner le dépôt Git de votre équipe. Le répertoire racine du projet contient un script setup.sh. Exécutez-le afin de créer votre conteneur monolithique.

  3. Après avoir exécuté le script setup.sh, vérifiez que Cloud Shell exécute la dernière version de nodeJS :

nvm install --lts

Plusieurs projets peuvent être créés et publiés.

  1. Transférez le build monolithique (situé dans le répertoire monolith) vers Google Container Registry. Un Dockerfile est compris dans le dossier ~/monolith-to-microservices/monolith. Vous pouvez vous en servir pour créer le conteneur d'application.

  2. Pour cela, vous devrez l'exécuter dans Cloud Build (dans ce dossier monolithique), puis le transférer vers Google Container Registry.

  3. Nommez votre artefact comme suit :

  • Dépôt GCR : gcr.io/${PROJET_GOOGLE_CLOUD}
  • Nom de l'image :
  • Version de l'image : 1.0.0

Indice :

Assurez-vous d'envoyer un build nommé de version "1.0.0".

Cliquez sur Vérifier ma progression pour valider l'objectif. Télécharger le code monolithique et créer votre conteneur

Tâche 2 : Créer un cluster Kubernetes et déployer l'application

Maintenant qu'une image a été créée et qu'elle se trouve dans Container Registry, vous pouvez créer un cluster dans lequel la déployer.

Puisque vous devez déployer toutes vos ressources dans la zone , commencez par créer un cluster GKE (à 3 nœuds, dans un premier temps).

  1. Créez votre cluster comme suit :
  • Nom du cluster :

  • Région :

  • Nombre de nœuds : 3

Indice :

Assurez-vous que votre cluster est nommé et qu'il est en cours d'exécution dans .

Maintenant que vous avez créé une image et que votre cluster est opérationnel, vous pouvez déployer l'application.

Vous devrez déployer l'image créée sur votre cluster pour rendre votre application opérationnelle. Toutefois, personne ne pourra y accéder tant que vous ne l'aurez pas exposée pour la rendre accessible depuis l'extérieur. Votre équipe vous a indiqué que l'application s'exécutait sur le port 8080, mais vous devrez l'exposer sur le port 80, plus courant.

  1. Créez et exposez votre déploiement comme suit :
  • Nom du cluster :
  • Nom du conteneur :
  • Version du conteneur : 1.0.0
  • Port d'application : 8080
  • Port accessible en externe : 80
Remarque : Pour les besoins de cet atelier, l'exposition du service a été simplifiée. Généralement, vous devez sécuriser vos points de terminaison publics à l'aide d'une passerelle API. Consultez les bonnes pratiques dans le guide Bonnes pratiques pour les microservices.
  1. Notez l'adresse IP attribuée lors de l'opération d'exposition de déploiement. Vous devriez pouvoir consulter cette adresse IP depuis votre navigateur.

Le résultat suivant doit s'afficher :

Page Web de Fancy Store

Indice :

Assurez-vous que votre déploiement est nommé , et que vous avez exposé le service sur le port 80 et l'avez mappé sur le port 8080.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un cluster Kubernetes et déployer l'application

Maintenant que vous pouvez créer et déployer votre application monolithique FancyStore, vous pouvez commencer à la décomposer en microservices.

Migrer l'application monolithique sous forme de microservices

Maintenant que votre site monolithique existant est exécuté sur GKE, vous pouvez commencer à décomposer chaque service en microservice. En principe, il convient d'étudier les services afin de déterminer la manière dont ils peuvent être décomposés. Généralement, chaque sous-ensemble correspond à une partie spécifique de l'application (par exemple, le domaine d'activité).

Pour les besoins de cet atelier, accélérons un peu le processus et admettons que vous avez réussi à décomposer l'application monolithique en un ensemble de trois microservices : "Orders" (Commandes), "Products" (Produits) et "Frontend" (Interface). Votre code étant prêt, vous devez à présent déployer vos services.

Tâche 3 : Créer des microservices

Vous devez décomposer trois services dans leur propre conteneur. Puisque vous déplacez chaque service dans un conteneur, vous devez déterminer les informations suivantes pour chacun d'entre eux :

  • Le dossier racine de votre service (dans lequel vous allez créer le conteneur)
  • Le dépôt dans lequel vous allez importer le conteneur
  • Le nom et la version de l'artefact de conteneur

Créer une version conteneurisée de vos microservices

Vous trouverez ci-dessous la liste des services devant être conteneurisés.

  1. Accédez aux dossiers racine source mentionnés ci-dessous, puis importez les artefacts que vous avez créés dans Google Container Registry avec les métadonnées indiquées :

Microservice "Orders"

Dossier racine du service : ~/monolith-to-microservices/microservices/src/orders

Dépôt GCR : gcr.io/${PROJET_GOOGLE_CLOUD}

Nom de l'image :

Version de l'image : 1.0.0

Microservice "Products"

Dossier racine du service : ~/monolith-to-microservices/microservices/src/products

Dépôt GCR : gcr.io/${PROJET_GOOGLE_CLOUD}

Nom de l'image :

Version de l'image : 1.0.0

  1. Une fois ces microservices conteneurisés et leurs images importées dans Google Container Registry, vous devez déployer et exposer ces services.

Conseil : Assurez-vous d'envoyer un build nommé de version "1.0.0" ET un build nommé de version "1.0.0".

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer une version conteneurisée des microservices "Orders" et "Products"

Tâche 4 : Déployer les nouveaux microservices

Déployez ces nouveaux conteneurs en suivant le même processus que pour le monolithe . Soulignons que ces services écouteront sur différents ports : notez donc les mappages de ports indiqués dans le tableau suivant.

  1. Créez et exposez vos déploiements comme suit :

Microservice "Orders"

Nom du cluster :

Nom du conteneur :

Version du conteneur : 1.0.0

Port d'application : 8081

Port accessible en externe : 80

Microservice "Products"

Nom du cluster :

Nom du conteneur :

Version du conteneur : 1.0.0

Port d'application : 8082

Port accessible en externe : 80

Remarque : Notez l'adresse IP des services "Orders" et "Products" une fois exposés. Vous en aurez besoin lors de la suite de la procédure.

  1. Vous pouvez vérifier que les déploiements ont été correctement effectués et que les services ont été exposés en accédant aux URL suivantes depuis votre navigateur :

http://ORDERS_EXTERNAL_IP/api/orders

http://PRODUCTS_EXTERNAL_IP/api/products

Chaque service renverra une chaîne JSON si les déploiements ont été correctement effectués.

Conseil : Assurez-vous que vos déploiements sont nommés et , et que les services sont exposés sur le port 80.

Cliquez sur Vérifier ma progression pour valider l'objectif. Déployer les nouveaux microservices

Tâche 5 : Configurer et déployer le microservice "Frontend"

Maintenant que vous avez extrait les microservices "Orders" et "Products", vous devez configurer le service "Frontend" pour qu'il renvoie vers ces microservices, puis le déployer.

Reconfigurer le microservice "Frontend"

  1. À l'aide de l'éditeur nano, remplacez l'URL locale par l'adresse IP du nouveau microservice "Products" comme suit :
cd ~/monolith-to-microservices/react-app nano .env

Lors de l'ouverture de l'éditeur, votre fichier devrait se présenter comme suit :

REACT_APP_ORDERS_URL=http://localhost:8081/api/orders REACT_APP_PRODUCTS_URL=http://localhost:8082/api/products
  1. Faites passer REACT_APP_PRODUCTS_URL au nouveau format en remplaçant une partie du code par les adresses IP de vos microservices "Orders" et "Products" comme suit :
REACT_APP_ORDERS_URL=http://<ORDERS_IP_ADDRESS>/api/orders REACT_APP_PRODUCTS_URL=http://<PRODUCTS_IP_ADDRESS>/api/products
  1. Appuyez sur les touches Ctrl+O, Entrée, puis Ctrl+X pour enregistrer le fichier dans l'éditeur nano.

  2. Recompilez à présent l'application frontend avant de la conteneuriser :

npm run build

Tâche 6 : Créer une version conteneurisée du microservice "Frontend"

Les microservices "Orders" et "Products" sont à présent conteneurisés et déployés, et le service "Frontend" est configuré de manière à renvoyer vers ces microservices. La dernière étape consiste à conteneuriser et à déployer le service "Frontend".

À l'aide de Cloud Build, empaquetez le contenu du service "Frontend", puis transmettez-le vers Google Container Registry.

  • Dossier racine du service : ~/monolith-to-microservices/microservices/src/frontend
  • Dépôt GCR : gcr.io/${PROJET_GOOGLE_CLOUD}
  • Nom de l'image :
  • Version de l'image : 1.0.0

Merci de patienter pendant ce processus, qui peut prendre quelques minutes.

Conseil : Assurez-vous d'envoyer un build nommé avec une version "1.0.0".

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer une version conteneurisée du microservice "Frontend"

Tâche 7 : Déployer le microservice "Frontend"

Déployez ce conteneur en suivant le même processus que celui suivi pour les microservices "Orders" et "Products".

  1. Créez et exposez votre déploiement comme suit :
  • Nom du cluster :
  • Nom du conteneur :
  • Version du conteneur : 1.0.0
  • Port d'application : 8080
  • Port accessible en externe : 80
  1. Vous pouvez vérifier que le déploiement a été correctement effectué et que les microservices ont bien été exposés en saisissant l'adresse IP du service "Frontend" dans votre navigateur.

La page d'accueil de FancyStore contient des liens vers les pages "Products" et "Orders" fournies par vos nouveaux microservices.

Cliquez sur Vérifier ma progression pour valider l'objectif. Déployer le microservice "Frontend"

Félicitations !

Build_a_Website_on_Google_Cloud_Skill_WBG.png

Gagnez un badge de compétence

Cet atelier d'auto-formation fait partie de la quête Build a Website on Google Cloud. Si vous terminez cette quête, 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é aux formations Google Cloud sur la modernisation de l'infrastructure. Poursuivez votre apprentissage en parcourant le catalogue pour découvrir plus de vingt autres quêtes auxquelles vous pouvez vous inscrire pour gagner un badge de compétence.

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 : 5 décembre 2023

Dernier test de l'atelier : 5 décembre 2023

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.