Points de contrôle
Create a log metric
/ 50
Create a Service Level Objective(SLO)
/ 30
Create an Alert on the Service Level Objective (SLO)
/ 20
Dépannage des charges de travail sur GKE pour les ingénieurs en fiabilité des sites (SRE)
GSP902
Présentation
Les responsabilités des ingénieurs en fiabilité des sites (SRE) englobent un large éventail de tâches, et la gestion des incidents est l'une des plus importantes. Vous allez apprendre à exploiter les fonctions de journalisation, de surveillance, et les tableaux de bord détaillés et prêts à l'emploi intégrés à la suite Google Cloud Operations.
Le processus de dépannage est une approche "itérative" : les ingénieurs SRE formulent une hypothèse sur la cause potentielle d'un incident, puis parcourent, filtrent et interrogent de grands volumes de données de télémétrie collectées via leurs systèmes pour la valider ou l'invalider. Si une hypothèse n'est pas valide, les ingénieurs SRE formulent une autre hypothèse et effectuent une autre itération jusqu'à ce qu'ils puissent isoler la cause. Pour en savoir plus sur la fiabilité des sites (SRE), consultez la section Google Site Reliability Engineering du site Web Google.
Dans cet atelier, vous allez apprendre à suivre efficacement ce parcours itératif à l'aide des outils Google Cloud Operations.
Points abordés
Dans cet atelier, vous allez apprendre à :
-
Parcourir les pages de ressources de Google Kubernetes Engine (GKE)
-
Visualiser rapidement les données opérationnelles à l'aide du tableau de bord GKE
-
Créer des métriques basées sur les journaux pour identifier des problèmes spécifiques
-
Créer un objectif de niveau de service (SLO)
-
Définir une alerte pour signaler les incidents à l'équipe SRE
Prérequis
Avant de cliquer sur le bouton Start Lab (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 Start Lab (Démarrer l'atelier), indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique Qwiklabs 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. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Conditions requises
Pour réaliser cet atelier, vous devez :
- avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
- disposer de suffisamment de temps pour réaliser l'atelier en une fois.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier.
Remarque : Si vous utilisez un appareil Chrome OS, exécutez cet atelier dans une fenêtre de navigation privée.
Démarrer l'atelier et se connecter à la console Google Cloud
-
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
-
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. -
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.
-
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. -
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.
Activer Google Cloud Shell
Google Cloud Shell est une machine virtuelle qui contient des 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 console GCP, dans la barre d'outils située en haut à droite, cliquez sur le bouton Ouvrir Cloud Shell.
-
Cliquez sur Continue (Continuez):
Il faut quelques instants pour mettre en service et se connecter à l'environnement. Lorsque vous êtes connecté, vous êtes déjà authentifié et le projet est défini sur votre PROJECT_ID. Par 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 les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
Résultat :
ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
$ gcloud config set account `ACCOUNT`
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
Scénario
Votre organisation a déployé une application de microservices à plusieurs niveaux. Il s'agit d'une application Web d'e-commerce appelée "Hipster Shop", où les utilisateurs peuvent parcourir des articles vintage, les ajouter à leur panier et les acheter. Hipster Shop comprend de nombreux microservices, écrits dans différents langages, qui communiquent via des API gRPC et REST. L'architecture du déploiement est optimisée pour l'apprentissage, et la pile inclut des technologies modernes : Kubernetes, Istio, Cloud Operations, App Engine, gRPC, OpenTelemetry et d'autres technologies cloud natives similaires.
En tant que membre de l'équipe d'ingénierie en fiabilité des sites (SRE), vous êtes contacté lorsque les utilisateurs finaux signalent des problèmes pour visualiser les produits et les ajouter à leur panier. Vous explorerez les différents services déployés pour déterminer la cause du problème, mettre en place un objectif de niveau de service (SLO) et ainsi éviter que de tels incidents se reproduisent. Pour en savoir plus, consultez l'article de blog : SLOs, SLIs, SLAs, oh my—CRE life lessons.
Tâche 1. Parcourir les pages de ressources de Google Kubernetes Engine (GKE)
Pour la première partie de cet atelier, vous visualiserez les pages de ressources de Google Kubernetes Engine (GKE), puis vous accéderez à différents tableaux de bord de métriques pour répondre au problème signalé par les utilisateurs finaux.
-
Dans le menu de navigation de Cloud Console, accédez à Kubernetes Engine > Clusters.
-
Vérifiez que le cluster Kubernetes suivant est disponible :
cloud-ops-sandbox
. Une coche verte doit s'afficher à côté de chaque cluster (indiquant qu'il est opérationnel). -
Cliquez sur le lien
cloud-ops-sandbox
sous la colonne Nom pour accéder à l'onglet Détails. -
Cliquez sur l'onglet Nœuds pour afficher tous les nœuds du cluster. Vérifiez qu'il y a un seul pool de nœuds.
-
Dans l'onglet Pools de nœuds, accédez à la section Nœuds. Sous la colonne Nom, cliquez sur le lien du premier nœud du tableau pour afficher plus de détails sur ce nœud. Faites défiler la page jusqu'en bas puis cliquez sur le lien du premier nœud du tableau.
-
Sur la page des détails du nœud qui s'affiche, notez les métriques disponibles. Elles doivent figurer dans la section Résumé des ressources et comprennent, entre autres, l'utilisation du processeur et de la mémoire. Cet atelier génère une charge pendant le provisionnement. Vous devriez voir les métriques actives, mais pas de pics flagrants ni de métriques au-dessus de la limite "demandée" pour les graphiques affichés dans la section Résumé.
-
Pour aller plus loin, plutôt que d'accéder à chaque nœud pour afficher ses propres métriques, cliquez sur les trois points en haut à droite de la section Processeur et sélectionnez Afficher dans l'explorateur de métriques.
Sur la page de l'explorateur de métriques, vous verrez les métriques correspondant au nœud sélectionné et trois filtres configurés dans la section Filtres.
-
Supprimez le filtre pour le
nodename
(nom du nœud) en développant le filtre et en cliquant sur l'icône Supprimer. -
Dans la section Comment afficher ces données, définissez Grouper par sur
node_name
.
Une fois les filtres définis, la visualisation sera mise à jour, et vous pourrez consulter les mêmes métriques pour tous les nœuds du pool du cluster cloud-ops-sandbox
.
Tâche 2. Accéder aux données opérationnelles via les tableaux de bord GKE
Dans la prochaine section, vous découvrirez comment accéder rapidement aux données opérationnelles détaillées de diverses ressources déployées sur GKE via le tableau de bord GKE.
Pour rappel, les internautes ont signalé qu'ils ne pouvaient pas afficher les informations détaillées sur les produits ni ajouter d'articles à leur panier. Pour vérifier cela, ouvrez le site Web.
- Accédez au menu de navigation > Kubernetes Engine > Services et entrées. Cliquez sur le point de terminaison (une adresse IP) de votre service
frontend-external
. - Cliquez sur n'importe quel produit qui s'affiche sur la page de destination pour reproduire l'erreur signalée.
En reproduisant l'erreur, vous remarquez que la trace de la pile indique que l'application n'a pas réussi à obtenir de recommandations sur les produits.
Vous décidez donc d'examiner le déploiement recommendationservice sur GKE :
- Accédez à Cloud Monitoring : depuis Cloud Console, cliquez sur le menu de navigation > Monitoring > Tableaux de bord.
- Sur la page de destination Tableaux de bord, sélectionnez GKE.
Un tableau de bord affichant des métriques pertinentes sur les clusters, les espaces de noms, les charges de travail, les services, les pods et les conteneurs des ressources GKE du projet doit s'afficher dans une vue agrégée.
Pour le scénario de cet atelier, vous devrez consulter les journaux et les métriques associés au déploiement recommendationservice
, car les utilisateurs finaux rencontrent des erreurs liées aux recommandations de produits lorsqu'ils consultent la page de destination d'un produit. Vous créerez des filtres pour le cluster cloud-ops-sandbox
afin d'examiner les symptômes possibles et de diagnostiquer le problème de manière plus approfondie.
Au cours des étapes suivantes, ajoutez des filtres à votre tableau de bord GKE.
-
Cliquez sur le bouton Ajouter un filtre en haut de la page du tableau de bord GKE.
-
Parmi les filtres disponibles, sélectionnez Charges de travail > recommendationservice.
- Cliquez sur le bouton Appliquer une fois le bon filtre sélectionné. La section de filtrage du tableau de bord GKE doit ressembler à l'image suivante.
Cette vue vous permet de concentrer votre attention sur le microservice qui pose problème, recommendationservice
.
-
Dans la section Charges de travail, cliquez sur le déploiement
recommendationservice
pour faire apparaître le volet Informations sur le déploiement. Vous y trouverez des détails sur les alertes, les SLO, les événements, les métriques et les journaux. À ce stade de l'atelier, il n'y a pas de SLO. Vous en ajouterez un ici dans la prochaine partie. -
Cliquez sur l'onglet Métriques pour afficher les métriques liées au déploiement
recommendationservice
. Vous pouvez changer la sélection de la liste déroulante Métriques pour modifier les données de visualisation fournies et afficher les différentes métriques disponibles pour ce service.
-
Cliquez sur l'onglet Journaux pour afficher les journaux liés au déploiement
recommendationservice
. Vous pouvez filtrer les journaux disponibles en utilisant la liste déroulante Gravité correspondant au niveau de journalisation des entrées disponibles. Cette fonction est utile dans un contexte d'ingénierie SRE pour trouver les erreurs répertoriées dans les journaux, exploiter les entrées et ainsi résoudre les problèmes. -
Définissez Gravité sur
Erreur
afin de filtrer les journaux du déploiementrecommendationservice
.
- À ce stade, l'erreur liée au code problématique devrait être évidente. Recherchez l'expression
invalid literal for int() with base 10: '5.0'
dans les résultats. La présence de cette erreur dans les filtres du déploiementrecommendationservice
confirme que le code du service présente un bug.
Vous allez redéployer le microservice recommendationservice pour vous assurer que l'erreur a disparu.
kubectl
.- Dans Cloud Shell, exécutez la commande suivante :
- Exécutez ensuite la commande ci-dessous :
-
Accédez au menu de navigation > Kubernetes Engine > Clusters. Cliquez sur les trois points à droite du cluster
cloud-ops-sandbox
, puis sur Connecter. -
Dans la boîte de dialogue modale Se connecter au cluster, cliquez sur le bouton EXÉCUTER DANS CLOUD SHELL. Appuyez sur Entrée pour exécuter la commande une fois qu'elle apparaît dans Cloud Shell.
-
Enfin, exécutez la commande
restore
pour mettre à jour le service :
-
Pour vérifier que l'application fonctionne correctement, accédez au menu de navigation > Kubernetes Engine > Services et entrées.
-
Cliquez sur le point de terminaison associé au service
frontend-external
.
Vous accéderez ainsi au site Web de Hipster Shop utilisé pour cet atelier. Cliquez sur un produit pour vérifier qu'il se charge sans erreur.
Dans cette section de l'atelier, vous avez exploré les journaux et les métriques disponibles dans le tableau de bord GKE pour diagnostiquer un problème avec la charge de travail de l'application déployée par l'équipe DevOps. Vous avez pu identifier la cause exacte d'un problème, le corriger et redéployer le microservice concerné.
Tâche 3. Surveillance proactive grâce aux métriques basées sur les journaux
Pour vous assurer que le code du déploiement recommendationservice
mis à jour fonctionne comme prévu, et pour éviter de nouveaux incidents, vous décidez de créer une métrique basée sur les journaux. Vous pourrez ainsi surveiller les journaux et informer l'équipe SRE lorsque des incidents similaires se produiront.
Dans cette section, vous allez créer une métrique basée sur les journaux spécifique à l'erreur constatée dans les sections précédentes.
Cette métrique vous permet de suivre les erreurs dans les journaux afin de répondre de manière proactive aux problèmes et symptômes similaires avant qu'ils ne soient remarqués par les utilisateurs finaux.
- Dans Cloud Console, cliquez sur le menu de navigation > Logging > Explorateur de journaux.
-
Dans la section
Query results
, cliquez sur + Créer une métrique. Un nouvel onglet vous permet de créer une métrique basée sur les journaux. -
Saisissez les options suivantes sur la page
Créer une métrique de journaux
:
- Type de métrique : Compteur
- Nom de la métrique de journal : Error_Rate_SLI
- Sélection du filtre : (Copiez et collez le filtre ci-dessous.)
- Cliquez sur Créer la métrique.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 4. Créer un SLO
Après avoir créé une métrique basée sur les journaux, qui décrit précisément l'expérience utilisateur, l'équipe SRE l'utilise comme un SLI pour mesurer le niveau de satisfaction client et définir un objectif de niveau de service (SLO) sur le déploiement recommendationservice
. Cela permet de spécifier des objectifs de niveau de service pour les métriques de performance. Un SLO est un objectif mesurable de performance sur une période donnée. Pour plus de conseils sur la conception des SLO et les filtres que vous utiliserez ci-dessous, consultez Concevoir et utiliser des SLO.
La suite Cloud Operations Suite fournit des fonctionnalités de surveillance orientée services. Cela signifie que vous configurez les SLI, les SLO et les alertes concernant le taux d'utilisation pour un service
.
-
Accédez au menu de navigation > Monitoring > Services. Vous trouverez une liste de tous les services déployés sur GKE pour la charge de travail de l'application.
-
Sélectionnez
recommendationservice
dans la liste des services disponibles pour accéder à la page Informations sur le service. -
À droite, cliquez sur + Créer un SLO.
-
À l'étape 1, une boîte de dialogue vous permettra de créer un SLO. Définissez les paramètres suivants :
-
Choisissez une métrique : Autre
-
Basée sur les requêtes ou sur les fenêtres : Basée sur les requêtes
-
Cliquez sur Continuer.
-
À l'étape 2 (
Détaillez le SLI
), la sectionMétrique de performance
doit être définie sur la valeur suivante :custom.googleapis.com/opencensus/grpc.io/client/roundtrip_latency
. Vous verrez ainsi la latence aller-retour des requêtes faites par le client au service de recommandation.
Définissez la Métrique de performance sur la valeur Moins de -∞ jusqu'à 100 ms
.
-
Cliquez sur Continuer.
-
À l'étape 3 (
Définissez votre objectif de niveau de service [SLO]
), vous devez définir les SLO dont l'objectif de performance (la fiabilité ciblée) et la période de conformité (la période d'évaluation). Pour en savoir plus, consultez la partie Choosing an appropriate time window du Manuel sur l'ingénierie en fiabilité des sites. Sélectionnez les options suivantes :
-
Type de période : Calendaire
-
Durée de la période : Mois calendaire
-
Objectif de performances : 99 %
-
Cliquez sur Continuer.
-
Cliquez sur Créer un SLO à la dernière étape de l'assistant pour finaliser la création du SLO.
Cela vous reconduira à la page de destination Monitoring > Services. La section État actuel du SLO
doit indiquer que le SLO n'a pas été respecté.
- Cliquez sur l'entrée indiquée pour la développer et sélectionnez l'onglet Marge d'erreur.
Cliquez sur Vérifier ma progression pour valider l'objectif.
La fraction Marge d'erreur
représente le pourcentage réel de marge d'erreur restant pour la période de conformité. Le SLO défini s'étend sur une période d'un mois calendaire, au cours de laquelle l'objectif de performance est de 99 % ou plus.
Comme l'indique le pourcentage, l'erreur empêchant le bon chargement des pages de produits dans ce scénario fictif a sérieusement dégradé l'objectif de niveau de service défini. Cela pourrait ne pas être le cas dans un scénario réel, car cet atelier a effectué un test de charge sur le cluster Kubernetes qui héberge la charge de travail de l'application.
Tâche 5. Définir une alerte sur le SLO
Pour contacter de manière proactive l'équipe SRE, il est conseillé de configurer une alerte qui se déclenche en cas de non-respect du SLO. Libre à vous de choisir le canal de notification : e-mail, SMS, PagerDuty, Slack, webhook, abonnement à un sujet PubSub, etc.
-
Accédez au menu de navigation > Monitoring > Services.
-
Cliquez sur
recommendationservice
dans la liste des services disponibles. -
Dans la section État actuel de 1 SLO, vous devriez voir le SLO créé dans la tâche précédente. Vous devrez peut-être agrandir la fenêtre de votre navigateur de la page listant les SLO pour voir d'autres options.
-
Cliquez sur le bouton Créer une alerte SLO associé au SLO. Vous pourrez ainsi définir une règle d'alerte en cas de non-respect du SLO.
Dans la fenêtre modale Créer une règle d'alerte du taux d'utilisation des SLO, vous verrez les champs Durée de l'analyse
et Seuil du taux d'utilisation
à l'étape 1 de l'assistant. Le premier vous permet de spécifier la durée (à partir de l'heure actuelle) pendant laquelle la règle d'alerte recherchera d'éventuelles violations du taux d'utilisation. Le deuxième vous permet de spécifier l'intervalle de temps dans lequel diviser la durée de l'analyse afin d'évaluer si le SLO a été ou non respecté.
- Conservez les valeurs par défaut :
-
Durée de l'analyse : 60 minutes
-
Seuil du taux d'utilisation : 10
-
Cliquez sur Suivant.
-
À l'étape 2, vous pouvez définir un canal de notification pour recevoir l'alerte en cas de non-respect. Pour les besoins de cet atelier, vous pouvez opter pour une notification par e-mail ou par SMS.
- Cliquez sur Suivant.
L'étape 3 est facultative. Elle vous permet de fournir des informations à l'utilisateur final qui reçoit la notification, afin qu'il puisse comprendre immédiatement la nature du problème et savoir comment le résoudre.
- Cliquez sur Enregistrer.
Cliquez sur Vérifier ma progression pour valider l'objectif.
(facultatif) Supprimer votre règle d'alerte
Si vous avez configuré une alerte par e-mail pour votre règle d'alerte, il se peut que vous receviez des e-mails concernant vos ressources, même après la fin de l'atelier.
Pour éviter cela, supprimez la règle d'alerte avant de terminer l'atelier.
Félicitations !
Dans cet atelier, vous avez exploré la suite Cloud Operations, qui permet aux ingénieurs en fiabilité des sites (SRE) d'examiner et de diagnostiquer les problèmes rencontrés lors du déploiement des charges de travail. Afin d'optimiser la fiabilité des charges de travail, vous avez appris à accéder aux pages de ressources de GKE, à consulter les données opérationnelles à partir des tableaux de bord GKE, à créer des métriques basées sur les journaux pour identifier des problèmes spécifiques, et à répondre de manière proactive aux incidents en définissant des objectifs de niveau de service et en envoyant des alertes à l'équipe SRE avant que des interruptions ne surviennent.
Terminer votre quête
Cet atelier d'auto-formation fait partie des quêtes Google Cloud's Operations Suite on GKE, Cloud Architecture et DevOps Essentials et de la quête Measure Site Reliability using Cloud Operations Suite. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Inscrivez-vous à une quête pour obtenir immédiatement les crédits associés à cet atelier si vous l'avez suivi. Découvrez les autres quêtes disponibles.
Atelier suivant
Essayez Surveillance et journalisation pour Cloud Functions
Étapes suivantes
- Assurez-vous d'ajouter la documentation de la Suite Google Cloud Operations.
- Apprenez à maîtriser Cloud Operations sur Google Cloud avec le bac à sable Cloud Operations.
Google Cloud Training & Certification
...helps you make the most of Google Cloud technologies. Our classes include technical skills and best practices to help you get up to speed quickly and continue your learning journey. We offer fundamental to advanced level training, with on-demand, live, and virtual options to suit your busy schedule. Certifications help you validate and prove your skill and expertise in Google Cloud technologies.
Dernière mise à jour du manuel : 13 juillet 2022
Dernier test de l'atelier : 13 juillet 2022
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.