Une application App Engine est une ressource d'application composée d'un ou de plusieurs services. Chaque service peut être configuré afin d'utiliser différents environnements d'exécution et de fonctionner avec des paramètres de performance différents. Vous pouvez déployer plusieurs versions du service dans un même service, chaque version étant ensuite exécutée dans une ou plusieurs instances, en fonction de la quantité de trafic qu'elle peut gérer selon les paramètres configurés. Pour plus d'informations, consultez la page Présentation d'App Engine.
App Engine utilise un environnement standard ou flexible. Dans le premier cas, les instances sont exécutées dans un bac à sable, où les options de processeur disponibles ainsi que les accès au disque sont limités.
À l'inverse, l'environnement flexible exécute l'application dans des conteneurs Docker sur des machines virtuelles (VM) Google Compute Engine, lesquelles comportent moins de restrictions. Par exemple, vous pouvez utiliser le langage de programmation ou la bibliothèque de votre choix, écrire sur le disque et même exécuter plusieurs processus. Vous pouvez également choisir les types de machines Compute Engine dont vous avez besoin pour vos instances.
Pour plus d'informations sur les environnements App Engine, reportez-vous aux pages Environnement standard App Engine et Environnement flexible App Engine.
Dans cet atelier, vous allez déployer l'application Quiz dans l'environnement flexible App Engine, et tirer parti des fonctionnalités d'App Engine, telles que celles relatives aux versions et à la répartition du trafic.
Objectifs
Cet atelier va vous apprendre à effectuer les tâches suivantes :
Créer un fichier app.yaml décrivant les conditions de l'environnement flexible App Engine pour une application
Déployer l'application Quiz dans l'environnement flexible App Engine
Utiliser les versions et la répartition du trafic pour procéder à un test A/B d'une fonctionnalité de l'application
Prérequis
Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.
Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.
Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00) : vous devez pouvoir le terminer dans ce délai.
Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.
Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.
Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.
Cliquez sur Ouvrir la console Google.
Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
Activer Google Cloud Shell
Google 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.
Google Cloud Shell offre un accès en ligne de commande à vos ressources GCP.
Dans la barre d'outils située en haut à droite de la console GCP, cliquez sur le bouton Open Cloud Shell (Ouvrir Cloud Shell).
Cliquez sur Continue (Continuez):
Le provisionnement et la connexion à l'environnement ne devraient pas prendre plus de quelques minutes. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Exemple :
gcloud est l'outil de ligne de commande associé à Google Cloud Platform. Pré-installé sur Cloud Shell, il est également compatible avec la saisie semi-automatique via la touche de tabulation.
Vous pouvez répertorier le nom des comptes actifs à l'aide de cette commande :
Pour répertorier les ID de projet, exécutez la commande suivante :
gcloud config list project
Résultat :
[core]
project = <ID_projet>
Exemple de résultat :
[core]
project = qwiklabs-gcp-44776a13dea667a6
Préparer l'application de l'étude de cas
Dans cette section, vous allez accéder à Cloud Shell, cloner le dépôt Git qui contient l'application Quiz, configurer les variables d'environnement et exécuter l'application.
Passez au répertoire qui contient les exemples de fichiers de l'atelier.
cd ~/appengine/start
Lancez le fichier exécutable en exécutant la commande suivante :
. prepare_environment.sh
Remarque : Veuillez ignorer l'avertissement et réexécuter la commande si vous recevez une erreur "OperationError". Poursuivez l'atelier, car des ressources existent déjà.
Ce fichier de script :
crée une application App Engine ;
crée un bucket Cloud Storage ;
exporte les variables d'environnement GCLOUD_PROJECT et GCLOUD_BUCKET ;
crée un environnement Python isolé virtualenv pour Python 3 et l'active.
met à jour PIP, puis exécute la commande pip install -r requirements.txt ;
crée des entités dans Datastore ;
crée des rôles IAM et des comptes de service ;
crée un sujet Pub/Sub ;
crée une instance, une base de données et une table Cloud Spanner ;
crée une fonction Cloud ;
affiche l'ID du projet.
Examiner le code
Au cours de cet atelier, vous allez consulter et modifier des fichiers. Vous pouvez utiliser les éditeurs de script shell installés sur Cloud Shell, tels que nano ou vim, ou encore gcloud, l'éditeur de code intégré.
Dans cette section, vous allez examiner le code de l'application Quiz dans l'éditeur de texte Cloud Shell.
Lancer l'éditeur de code Cloud Shell
Dans Cloud Shell, cliquez sur Open Editor (Ouvrir l'éditeur).
L'éditeur de code s'ouvre avec Cloud Shell dans un nouvel onglet de votre navigateur.
Examiner le code
Accédez à /appengine/start.
La structure du dossier de l'application Quiz correspond à la manière dont cette dernière sera déployée dans App Engine. Par exemple, l'application Web se trouve dans le dossier frontend, qui contient par conséquent les fichiers de configuration d'App Engine. Le fichier app.yaml est présent dans le dossier frontend.
Préparer le code de l'application pour son déploiement dans l'environnement flexible App Engine
Créer le fichier app.yaml pour l'interface
Dans cette section, vous allez modifier les fichiers de configuration qui se trouvent dans le dossier frontend et qui sont associés au déploiement de l'application Quiz dans l'environnement flexible App Engine.
Dans l'éditeur de code Cloud Shell, ouvrez le fichier frontend/app.yaml.
Ajoutez deux paires clé/valeur, et régler la mise à l'échelle sur manuelle:
La première indique que vous voulez utiliser l'environnement d'exécution Python.
La deuxième indique que vous voulez utiliser un environnement flexible.
Le nombre d'instances est défini sur 1. Un service de production doit généralement être autorisé à évoluer vers plus d'instances.
Ajoutez une troisième entrée de configuration comme point d'entrée dans le fichier app.yaml.
entrypoint: "gunicorn -b 0.0.0.0:8080 quiz:app"
Cette valeur est la ligne de commande qui exécute l'application Flask à l'aide du serveur HTTP Gunicorn.
Add runtime_config.
runtime_config:
python_version: 3
Ajoutez une dernière entrée de configuration, env_variables, au fichier app.yaml Incluez une clé GCLOUD_BUCKET et la valeur tirée de -media bucket dans votre projet. Veillez à remplacer [GCLOUD_PROJECT] par l'ID de projet GCP indiqué dans le panneau de gauche de l'atelier.
Déployer l'interface dans l'environnement flexible App Engine
Définition dans Cloud Shell du délai avant expiration de la requête pour Cloud Build.
gcloud config set app/cloud_build_timeout 1800
Déployez l'application Quiz dans l'environnement flexible App Engine
gcloud app deploy ./frontend/app.yaml
Saisissez Y pour confirmer.
App Engine met le code en package, le conteneurise et le déploie automatiquement.
Le déploiement prend jusqu'à 20 minutes.
Dans la console Cloud Platform, cliquez sur le menu de navigation > App Engine.
Cliquez sur le lien vers votre application dans le coin supérieur droit du tableau de bord App Engine.
Le lien se présente sous la forme https://<ID_PROJET>.appspot.com.
Vous devriez voir votre application.
Cliquez sur Check my progress (Vérifier ma progression) pour vérifier l'objectif.
Déployer l'interface dans l'environnement flexible App Engine
Modifier une application dans un environnement flexible App Engine
Dans cette section, vous allez modifier le code de l'application avant de la redéployer.
Modifier l'application Quiz
Dans l'éditeur de code Cloud Shell, ouvrez le fichier frontend/quiz/webapp/templates/home.html.
Ajoutez plusieurs points d'exclamation au titre de premier niveau.
{% extends 'master.html' %}
{% block head %}
<title>Quiz - Python</title>
{% endblock %}
{% block content %}
<h1>Welcome to the Quite Interesting Quiz!!!!!!</h1>
<div class="jumbotron">
<p>Welcome to the Quite Interesting Quiz where you can create a question, take a test or review feedback</p>
</div>
<h3 class="col-md-4"> <a href="/questions/add">Create Question</a></h3>
<h3 class="col-md-4"> <a href="/client/">Take Test</a></h3>
<h3 class="col-md-4"><a href="/leaderboard">Leaderboard</a></h3>
{% endblock %}
Toutes les modifications que vous êtes susceptible d'apporter à une application le seront selon ce même principe.
Enregistrez le fichier.
Déployer l'application modifiée
Dans Cloud Shell, redéployez l'application App Engine.
Vous remarquerez la présence de deux indicateurs supplémentaires dans la commande. Ces indicateurs précisent que la version précédente continuera à recevoir du trafic.
La mise à jour du déploiement peut prendre jusqu'à 20 minutes.
Cliquez sur Check my progress (Vérifier ma progression) pour vérifier l'objectif.
Déployer l'application modifiée
Dans la console, cliquez sur le menu de navigation > App Engine > Dashboard (Tableau de bord).
Cliquez sur l'URL de l'application en haut à droite de la fenêtre. L'ancien titre de l'application reste affiché.
Dans la fenêtre App Engine, cliquez sur Versions. Vous devrez peut-être actualiser la page jusqu'à ce que les deux versions de l'application s'affichent.
Cliquez sur le lien des deux versions pour afficher la nouvelle et l'ancienne version de l'application Quiz.
Nouvelle version (remarquez les points d'exclamation !) :
Ancienne version :
Cochez les deux versions de l'application, puis cliquez sur Split traffic (Répartir le trafic).
Sélectionnez la case d'option permettant de répartir le trafic entre les versions de manière aléatoire.
Configurez la répartition du trafic de manière à envoyer 50 % du trafic vers l'ancienne version et 50 % vers la nouvelle version.
Cliquez sur Save (Enregistrer).
Retournez dans le tableau de bord, définissez Version sur All versions (Toutes les versions), puis cliquez sur le lien de l'application.
Il ne devrait y avoir plus qu'une seule version de l'application.
Actualisez plusieurs fois la page d'accueil.
L'ancienne version et la nouvelle s'affichent chacune 50 % du temps.
Dans la réalité, une petite partie du trafic pourrait d'abord être envoyée vers la nouvelle version dans une version Canary, et vous utiliseriez un cookie ou une adresse IP pour garantir au client l'affichage cohérent d'une seule version de l'application.
Terminer l'atelier
Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.
Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.
Le nombre d'étoiles correspond à votre degré de satisfaction :
1 étoile = très insatisfait(e)
2 étoiles = insatisfait(e)
3 étoiles = ni insatisfait(e), ni satisfait(e)
4 étoiles = satisfait(e)
5 étoiles = très satisfait(e)
Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.
Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.
Copyright 2020 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.
Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
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.
En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.
Utilisez la navigation privée
Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
Cliquez sur Ouvrir la console en navigation privée
Connectez-vous à la console
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.
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
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.
Dans cet atelier, vous allez déployer l'application Quiz dans l'environnement flexible App Engine, et exploiter certaines fonctionnalités d'App Engine comme les instances, les versions et la répartition du trafic.
Durée :
0 min de configuration
·
Accessible pendant 120 min
·
Terminé après 120 min