arrow_back

Déployer votre site Web sur Cloud Run

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

Déployer votre site Web sur Cloud Run

Lab 1 heure universal_currency_alt 1 crédit show_chart Débutant
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP659

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

L'exécution de sites Web peut s'avérer difficile en raison de frais généraux liés à la création et à la gestion de VM, de clusters, de pods, de services, etc. Cela ne pose pas de problème pour les applications plus importantes et à plusieurs niveaux, mais, si vous cherchez simplement à déployer et à assurer la visibilité de votre site Web, cela représente des frais généraux conséquents.

Avec Cloud Run, la mise en œuvre par Google Cloud du framework Knative de Google, vous pouvez gérer et déployer votre site Web sans les frais d'infrastructure liés aux déploiements de VM ou purement basés sur Kubernetes. Non seulement cette approche est plus simple sur le plan de la gestion, mais elle permet aussi un "scaling à zéro instance" en l'absence de requêtes sur votre site Web.

Cloud Run introduit le développement "sans serveur" dans les conteneurs et peut être exécuté sur vos propres clusters Google Kubernetes Engine (GKE) ou sur une solution PaaS entièrement gérée fournie par Cloud Run. Vous exécuterez ce deuxième scénario dans le cadre de cet atelier.

Les exercices sont organisés selon une approche fréquemment suivie par les développeurs cloud :

  1. Créer un conteneur Docker à partir de votre application

  2. Déployer le conteneur dans Cloud Run

  3. Modifier le site Web

  4. Déployer une nouvelle version sans aucun temps d'arrêt

Schéma de l'architecture

Vous pouvez voir ci-dessous le flux du déploiement et de l'hébergement Cloud Run.

Commencez par une image Docker créée à l'aide de Cloud Build, qui est déclenché par Cloud Shell, puis déployez l'image dans Cloud Run à partir d'une commande dans Cloud Shell.

Schéma de présentation de l'atelier

Points abordés

  • La création d'une image Docker à l'aide de Cloud Build et sa mise en ligne sur Artifact Registry

  • Le déploiement d'images Docker dans Cloud Run

  • La gestion des déploiements dans Cloud Run

  • La configuration d'un point de terminaison pour une application dans Cloud Run

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.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Cloner le dépôt source

Puisque vous déployez un site Web existant, il vous suffit de cloner la source, ce qui vous permet de vous concentrer sur la création d'images Docker et sur leur déploiement dans Cloud Run.

  1. Ouvrez une nouvelle fenêtre Cloud Shell et exécutez les commandes suivantes pour cloner le dépôt Git et accéder au répertoire approprié :

git clone https://github.com/googlecodelabs/monolith-to-microservices.git cd ~/monolith-to-microservices
  1. Exécutez la commande suivante pour installer les dépendances NodeJS de manière à pouvoir tester votre application avant de la déployer :

./setup.sh

Cette opération prend quelques minutes. Un message de réussite apparaît une fois l'opération terminée.

  1. Testez votre application en exécutant la commande suivante pour démarrer le serveur Web :

cd ~/monolith-to-microservices/monolith npm start

Résultat :

Monolith listening on port 8080!
  1. Prévisualisez votre application en cliquant sur l'icône d'aperçu sur le Web, puis en sélectionnant Prévisualiser sur le port 8080.

Menu &quot;Aperçu sur le Web&quot; développé avec l&#39;option &quot;Prévisualiser sur le port 8080&quot; sélectionnée

Vous devez voir s'afficher une nouvelle fenêtre présentant votre page Web Fancy Store en action.

Site Web Fancy Store

  1. Fermez cette fenêtre après avoir consulté le site Web et arrêtez le processus du serveur Web en appuyant sur Ctrl+C dans Cloud Shell.

Tâche 2 : Créer un conteneur Docker à l'aide de Cloud Build

Maintenant que les fichiers sources sont prêts à l'emploi, il est temps de déployer votre application dans un conteneur Docker.

Normalement, vous devriez adopter une approche en deux étapes consistant à créer un conteneur Docker et à le transférer dans un registre afin de stocker l'image pour que GKE puisse l'extraire. Vous pouvez vous simplifier la vie en utilisant Cloud Build pour créer le conteneur Docker et pour placer l'image dans Artifact Registry avec une seule commande. Pour découvrir comment créer et transférer un fichier manuellement, consultez la documentation Guide de démarrage rapide pour Container Registry.

Cloud Build compressera les fichiers du répertoire et les déplacera vers un bucket Cloud Storage. Ensuite, le processus de compilation récupérera tous les fichiers du bucket et exécutera le processus de compilation Docker à l'aide du Dockerfile, qui se trouve dans le même répertoire.

Créer le dépôt Docker cible

Vous devez créer un dépôt pour pouvoir y transférer des images. Le transfert d'une image ne peut pas déclencher la création d'un dépôt et le compte de service Cloud Build ne dispose pas des autorisations nécessaires pour créer des dépôts.

  1. Dans le menu de navigation, sous "CI/CD", accédez à Artifact Registry > Dépôts.

  2. Cliquez sur Créer un dépôt.

  3. Indiquez monolith-demo comme nom de dépôt.

  4. Sélectionnez Docker comme format.

  5. Sous "Type d'emplacement", sélectionnez "Région", puis l'emplacement us-central1.

  6. Cliquez sur Créer.

Configurer l'authentification

Avant de pouvoir transférer ou extraire des images, configurez Docker afin qu'il se serve de Google Cloud CLI pour authentifier les requêtes envoyées à Artifact Registry.

  • Pour configurer l'authentification auprès des dépôts Docker dans la région us-central1, exécutez la commande suivante dans Cloud Shell :

gcloud auth configure-docker us-central1-docker.pkg.dev

La commande met à jour votre configuration Docker. Vous pouvez désormais vous connecter à Artifact Registry dans votre projet Google Cloud pour transférer et extraire des images.

Déployer l'image

Vous allez maintenant déployer l'image que vous avez créée tout à l'heure.

  1. Vous devez d'abord activer les API Cloud Build, Artifact Registry et Cloud Run. Exécutez la commande suivante pour les activer :

gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ run.googleapis.com
  1. Une fois les API activées, exécutez la commande suivante pour lancer le processus de compilation :

gcloud builds submit --tag us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 Remarque : Ce processus prend quelques minutes.
  1. Pour consulter votre historique de compilation ou suivre le processus en temps réel, dans la console, accédez au menu de navigation, puis cliquez sur Cloud Build > Historique. Vous pouvez voir ici une liste de toutes vos compilations. Seule celle que vous venez de créer devrait apparaître.

Liste de toutes les compilations

  • Si vous cliquez sur l'ID de la compilation, vous pouvez consulter tous les détails de cette compilation, y compris la sortie du journal.

  • À partir de la page "Informations sur le build", vous pouvez consulter l'image de conteneur créée en cliquant sur l'onglet Détails de l'exécution, puis sur le lien de l'image.

Informations sur la compilation

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un conteneur Docker à l'aide de Google Cloud Build

Tâche 3 : Déployer le conteneur dans Cloud Run

Maintenant que vous avez conteneurisé votre site Web et transféré le conteneur dans Artifact Registry, il est temps de déployer ce conteneur dans Cloud Run.

Deux approches sont possibles pour le déploiement dans Cloud Run :

  • Cloud Run géré : le modèle Platform as a Service dans lequel l'ensemble du cycle de vie des conteneurs est géré par le produit Cloud Run lui-même. Vous utiliserez cette approche dans cet atelier.

  • Cloud Run sur GKE : Cloud Run avec une couche de contrôle supplémentaire qui vous permet d'utiliser vos propres clusters et pods provenant de GKE. Cliquez ici pour en savoir plus.

  1. Exécutez la commande suivante pour déployer l'image dans Cloud Run :

gcloud run deploy monolith --image us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region us-central1
  1. Lorsque vous y êtes invité, saisissez Y pour autoriser les appels non authentifiés vers [monolith].

Cliquez sur Vérifier ma progression pour valider l'objectif. Déployer un conteneur dans Cloud Run

Vérifier le déploiement

  1. Pour vérifier que le déploiement a bien été créé, exécutez la commande suivante :

gcloud run services list Remarque : Il peut s'écouler quelques instants avant que le pod passe à l'état "En cours d'exécution".

Résultat :

✔ SERVICE: monolith REGION: us-central1 URL: https://monolith-2cxtmp4m2q-uc.a.run.app LAST DEPLOYED BY: student-02-aa7a5aed362d@qwiklabs.net LAST DEPLOYED AT: 2022-08-19T19:16:14.351981Z

Ce résultat indique plusieurs choses. Vous pouvez voir le déploiement, l'utilisateur responsable du déploiement (votre adresse e-mail) et l'URL que vous pouvez utiliser pour accéder à l'application. Tous les éléments semblent avoir été créés correctement.

  1. Cliquez sur l'URL fournie dans la liste des services. Le site Web qui s'affiche devrait être le même que celui dont vous avez affiché l'aperçu localement.
Remarque : Vous pouvez aussi consulter vos déploiements dans Cloud Run à l'aide de la console en accédant à Cloud Run dans le menu de navigation.

Tâche 4 : Créer une révision avec une simultanéité inférieure

Dans cette section, vous allez déployer votre application à nouveau, mais cette fois en ajustant l'un des paramètres.

Par défaut, la valeur de simultanéité d'une application Cloud Run correspond à 80, ce qui signifie que chaque instance de conteneur peut traiter jusqu'à 80 requêtes à la fois. Cela représente un écart important par rapport au modèle Functions as a Service, dans lequel une instance traite une requête à la fois.

  1. Exécutez la commande suivante pour redéployer la même image de conteneur avec une valeur de simultanéité correspondant à 1 (pour les tests uniquement), et observez le résultat :
gcloud run deploy monolith --image us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region us-central1 --concurrency 1
  1. Pour afficher les détails, accédez au menu de navigation et cliquez sur Cloud Run, puis sur le service monolith :

Service monolith

  1. Sur la page d'informations du service, cliquez sur l'onglet Révisions. Désormais, 2 révisions créées apparaissent.

Vous trouverez les détails du dernier déploiement à droite.

Onglet &quot;Révisions&quot; de monolith

Vous constaterez que la valeur de simultanéité a été réduite à "1".

Onglet &quot;Conteneur&quot; de monolith

Même si cette configuration est suffisante pour les tests, dans la plupart des scénarios de production, les conteneurs prennent en charge plusieurs requêtes simultanées.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer une révision avec une simultanéité inférieure

Ensuite, rétablissez la simultanéité d'origine sans redéploiement. Vous pouvez rétablir la valeur de simultanéité par défaut de "80", ou vous pouvez simplement fixer la valeur à "0", ce qui supprimera toute restriction de simultanéité et définira la valeur maximale par défaut (qui se trouve être 80).

  1. Exécutez la commande suivante pour mettre à jour la révision actuelle, avec une valeur de simultanéité correspondant à 80 :

gcloud run deploy monolith --image us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region us-central1 --concurrency 80

Vous constaterez qu'une autre révision a été créée, que le trafic est désormais redirigé et que la simultanéité est à nouveau de 80.

Remarque : Vous devrez peut-être quitter l'onglet Révisions, puis y revenir pour consulter les informations les plus récentes.

Tâche 5 : Apporter des modifications au site Web

Scénario : votre équipe marketing vous a demandé de modifier la page d'accueil de votre site. Elle estime en effet que cette page doit fournir plus d'informations sur votre entreprise et sur les produits qu'elle commercialise.

Tâche : vous allez ajouter du texte à la page d'accueil pour répondre aux attentes de l'équipe marketing. L'un de nos développeurs a déjà spécifié les modifications souhaitées dans le fichier index.js.new. Il vous suffit donc de copier le contenu de ce fichier dans le fichier index.js pour répercuter vos modifications. Suivez les instructions ci-dessous pour apporter les changements appropriés.

  1. Exécutez ces commandes pour créer une copie du fichier mis à jour sous le nom de fichier correct :

cd ~/monolith-to-microservices/react-app/src/pages/Home mv index.js.new index.js
  1. Affichez le contenu de ce fichier pour vérifier les modifications :

cat ~/monolith-to-microservices/react-app/src/pages/Home/index.js

Le code obtenu doit se présenter comme suit :

/* Copyright 2019 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ import React from "react"; import { makeStyles } from "@material-ui/core/styles"; import Paper from "@material-ui/core/Paper"; import Typography from "@material-ui/core/Typography"; const useStyles = makeStyles(theme => ({ root: { flexGrow: 1 }, paper: { width: "800px", margin: "0 auto", padding: theme.spacing(3, 2) } })); export default function Home() { const classes = useStyles(); return ( <div className={classes.root}> <Paper className={classes.paper}> <Typography variant="h5"> Fancy Fashion &amp; Style Online </Typography> <br /> <Typography variant="body1"> Tired of mainstream fashion ideas, popular trends and societal norms? This line of lifestyle products will help you catch up with the Fancy trend and express your personal style. Start shopping Fancy items now! </Typography> </Paper> </div> ); }

Vous avez mis à jour les composants React, mais vous devez compiler l'application React pour générer les fichiers statiques.

  1. Exécutez la commande suivante pour compiler l'application React et la copier dans le répertoire public "monolith" :

cd ~/monolith-to-microservices/react-app npm run build:monolith

Maintenant que le code a été mis à jour, recompilez le conteneur Docker et publiez-le dans Artifact Registry. Vous pouvez utiliser la même commande que précédemment, mais cette fois en mettant à jour le libellé de la version.

  1. Exécutez la commande suivante pour déclencher une nouvelle compilation Cloud Build avec la version d'image mise à jour de 2.0.0 :

cd ~/monolith-to-microservices/monolith gcloud builds submit --tag us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:2.0.0

Dans la section suivante, vous utiliserez cette image pour mettre à jour votre application sans aucun temps d'arrêt.

Cliquez sur Vérifier ma progression pour valider l'objectif. Apporter des modifications au site Web

Tâche 6 : Mettre à jour le site Web sans aucun temps d'arrêt

Les modifications ont été effectuées, puis validées par l'équipe marketing. Il est temps de mettre à jour le site Web sans interrompre le travail des utilisateurs. Cloud Run traite chaque déploiement comme une nouvelle Revision (Révision) qui est mise en ligne avant que le trafic y soit redirigé.

Par défaut, la dernière révision se verra attribuer 100 % du trafic entrant pour un service. Il est possible d'utiliser des "Routes" pour attribuer différents pourcentages de trafic à différentes révisions au sein d'un service. Suivez les instructions ci-dessous pour mettre à jour votre site Web.

  • Exécutez la commande suivante pour redéployer le service afin de remplacer l'image par une nouvelle version :

gcloud run deploy monolith --image us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:2.0.0 --region us-central1

Cliquez sur Vérifier ma progression pour valider l'objectif. Mettre à jour le site Web sans aucun temps d'arrêt

Vérifier le déploiement

  1. Vérifiez que votre déploiement a été mis à jour en exécutant la commande suivante :

gcloud run services describe monolith --platform managed --region us-central1

Résultat :

✔ Service monolith in region us-central1 URL: https://monolith-hl5loimtga-uc.a.run.app Ingress: all Traffic: 100% LATEST (currently monolith-00005-xum) Last updated on 2022-08-19T18:39:39.885859Z by student-02-9af04e268b9e@qwiklabs.net: Revision monolith-00005-xum Image: us-central1-docker.pkg.dev/qwiklabs-gcp-00-30d07cf3de5b/monolith-demo/monolith:2.0.0 Port: 8080 Memory: 512Mi CPU: 1000m Service account: 467160385597-compute@developer.gserviceaccount.com Concurrency: 80 Max Instances: 1 Timeout: 300s

Ici, vous constaterez que le service utilise désormais la dernière version de votre image, déployée dans une nouvelle révision.

Pour vérifier les modifications, accédez à l'URL externe du service Cloud Run, actualisez la page et notez que le titre de l'application a été mis à jour.

  1. Exécutez la commande suivante pour lister les services et afficher l'adresse IP :

gcloud beta run services list
  1. Cliquez sur l'URL du service. Votre site Web doit maintenant afficher le texte que vous venez d'ajouter au composant de la page d'accueil.

Site Web Fancy Store mis à jour

Félicitations !

Vous avez réussi à déployer, redimensionner et mettre à jour votre site Web dans Cloud Run.

Terminer votre quête

Cet atelier d'auto-formation fait partie de la quête Website on Google Cloud. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez une quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à n'importe quelle quête contenant cet atelier pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.

Étapes suivantes et informations supplémentaires

Si vous ne connaissez pas ces produits, voici quelques liens pour en savoir plus :

Dernière mise à jour du manuel : 21 novembre 2022

Dernier test de l'atelier : 22 septembre 2022

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.