Tutoriel : gérer des services avec Anthos

Anthos Service Mesh fournit aux utilisateurs Anthos des outils permettant de surveiller et de gérer des applications fiables basées sur des microservices. Ce tutoriel utilise l'exemple de déploiement Anthos sur Google Cloud pour vous présenter certaines fonctionnalités de gestion de services d'Anthos Service Mesh en vous montrant comment définir un objectif de niveau de service (SLO, Service Level Objective). L'exemple de déploiement Anthos déploie un véritable environnement interactif Anthos avec un cluster GKE, un maillage de services et une application de la banque d'Anthos dotée de plusieurs microservices.

Qu'est-ce qu'un SLO ?

Selon le manuel d'ingénierie en fiabilité des sites (SRE, Site Reliability Engineering) de Google :

Il est impossible de gérer un service correctement, et encore moins parfaitement, sans comprendre quels comportements sont vraiment importants pour ce service et sans savoir comment les mesurer et les évaluer. C'est pourquoi nous devons définir et fournir un certain niveau de service à nos utilisateurs, qu'ils utilisent une API interne ou un produit public.

Les équipes SRE de Google utilisent des indicateurs de niveau de service (SLI), des objectifs de niveau de service (SLO) et des contrats de niveau de service (SLA) pour structurer et guider les métriques qui informent leur travail. Un SLI est une mesure quantitative de certains aspects des performances de votre service, telles que sa latence ou sa disponibilité, tandis qu'un SLO correspond à une valeur cible ("cela devrait se produire x % du temps") pour un niveau de service mesuré par un SLI. Anthos Service Mesh permet de définir et d'affiner facilement des SLO pour vos propres services. Il vous fournit les informations dont vous avez besoin pour identifier les SLI et les SLO appropriés et vous avertit lorsque votre service ne respecte pas ses SLO.

Pour en savoir plus sur les SLO et les SLI dans Anthos Service Mesh, consultez les pages Présentation des SLO et Concevoir des SLO.

Objectifs

Dans ce tutoriel, vous allez apprendre à gérer des services avec Anthos Service Mesh dans Anthos en effectuant les tâches suivantes :

  • identifier un indicateur de niveau de service (SLI) pour un service ;

  • utiliser un objectif de niveau de service (SLO) afin de surveiller un comportement inattendu.

Coûts

L'utilisation de l'exemple de déploiement Anthos entraîne des frais pour l'utilisation d'Anthos sur Google Cloud, comme indiqué sur la page Tarifs, à moins que vous ne disposiez d'un abonnement Anthos.

Vous êtes également responsable des autres coûts Google Cloud engendrés par l'exécution de l'exemple de déploiement Anthos, tels que les frais pour les VM et les équilibreurs de charge Compute Engine. Vous pouvez consulter le coût mensuel estimé de toutes ces ressources sur la page Google Cloud Marketplace du déploiement.

Nous vous recommandons d'effectuer un nettoyage une fois le tutoriel terminé ou d'explorer le déploiement pour éviter des frais supplémentaires. L'exemple de déploiement Anthos n'est pas destiné à une utilisation en production et ses composants ne peuvent pas être mis à jour.

Avant de commencer

Ce tutoriel fait suite au tutoriel Découvrir Anthos. Avant de commencer, suivez les instructions fournies sur cette page pour configurer votre projet et installer l'exemple de déploiement Anthos.

Identifier des SLI

Anthos Service Mesh rend la collecte des SLI et la définition des SLO simple et intuitive. Dans notre exemple, vous décidez de définir d'abord un SLO pour le service ledgerwriter de la Banque d'Anthos.

Commencez par utiliser Anthos Service Mesh pour rechercher des informations permettant d'identifier un SLI du service.

  1. Accédez à la page Anthos Service Mesh du projet dans lequel vous avez installé l'exemple de déploiement Anthos.

    Accéder à la page Anthos Service Mesh

    La partie supérieure de cette vue indique l'état actuel des services de votre application, ainsi que des indicateurs pour les alertes et les SLO, y compris le nombre de services sans SLO. Actuellement, tous les services se trouvent dans la rubrique Aucun SLO défini. De plus, dans la colonne État, tous les services sont signalés par un indicateur noir en forme de cercle. Si vous maintenez le pointeur sur cet indicateur pour un service donné, vous êtes informé qu'aucun SLO n'est défini pour celui-ci.

  2. Notez la valeur en ms correspondant à une latence de 99 % pour ledgerwriter (vous devrez peut-être faire défiler la page vers le bas pour la voir). Cette métrique signifie qu'une requête sur 100 subit ce niveau de retard. Vous utiliserez cette valeur dans la section suivante.

Créer un SLO

Créez maintenant un SLO sur un SLI de latence pour le service. Pour voir ce qu'il se passe lorsqu'un service dépasse sa marge d'erreur, définissez un seuil volontairement bas, en fonction des informations que vous avez vues dans la section précédente. Pour un véritable service de production, vous chercheriez à définir un seuil de valeur de latence qui ne soit pas inférieur à celui nécessaire pour que vos utilisateurs profitent d'une bonne expérience avec votre application.

  1. Dans la vue Tableau d'Anthos Service Mesh, cliquez sur ledgerwriter pour accéder à la page de présentation du service.

  2. Sous État du service, cliquez sur Créer un SLO.

  3. Dans la liste Type de SLI, sélectionnez Latence.

  4. Conservez la méthode d'évaluation basée sur les requêtes par défaut, puis cliquez sur Continuer.

  5. Définissez le Seuil de latence sur une valeur arbitrairement faible, telle que 10 ms (une valeur nettement inférieure à la valeur de latence de 99 % observée plus tôt), puis cliquez à nouveau sur Continuer.

  6. Dans le champ Période de conformité, définissez le Type de période sur Rolling et la Durée de la période sur 1 Day.

  7. Dans Objectif SLO, définissez Cible de conformité sur 90%. Anthos Service Mesh utilise cette valeur pour calculer la marge d'erreur dont vous disposez pour ce SLO, c'est-à-dire le pourcentage maximal de requêtes devant dépasser le seuil de latence spécifié. Un aperçu vous montre quelles auraient été les performances de votre SLO au cours de la période d'un jour la plus récente. Cliquez sur Continuer.

  8. La section Nommer votre SLO suggère un nom par défaut pour votre nouveau SLO : vous pouvez accepter la valeur par défaut recommandée ou spécifier un nouveau nom. Pour créer le SLO et accéder à la page État de santé de ledgerwriter, cliquez sur Créer un SLO.

Cliquez sur la flèche du menu déroulant pour afficher plus de détails sur votre SLO. Vous pouvez voir que le SLO se trouve dans Out of Error Budget (Au-delà de la marge d'erreur) en fonction de vos paramètres. Vous pouvez également modifier ou supprimer le SLO à partir de cette vue.

Capture d'écran de l'affichage de l'état du service Anthos Service Mesh

Vérifier à nouveau le SLO et les indicateurs d'alerte

  1. Sur la page de présentation du service, cliquez sur la flèche de retour pour revenir à la vue Tableau. Vous pouvez maintenant constater que le nombre de services pour Aucun SLO défini a été réduit d'une unité et que le nombre de SLO au-delà de la marge d'erreur n'est plus à 0.

  2. Si vous faites défiler la page vers le bas jusqu'à ledgerwriter, notez que l'indicateur adjacent est devenu un triangle d'avertissement orange. Si vous maintenez le pointeur sur cet indicateur, vous êtes invité à examiner la fiabilité du service. Cliquez sur celui-ci pour revenir à la page "État" du service afin de vérifier les informations du SLO. Le même indicateur apparaît également pour votre service dans la vue Topologie.

Capture d'écran de la liste des services Anthos Service Mesh avec avertissement SLO

Explorer le déploiement plus en détail

Il vous reste encore beaucoup de choses à voir et à faire dans Anthos avec notre déploiement. N'hésitez pas à suivre un autre tutoriel ou continuez à explorer vous-même l'exemple de déploiement Anthos sur Google Cloud avant de suivre les instructions de nettoyage de la section suivante.

Nettoyer

Une fois que vous avez terminé d'explorer l'exemple de déploiement Anthos, vous pouvez nettoyer les ressources que vous avez créées dans Google Cloud afin qu'elles ne soient plus comptabilisées dans votre quota et qu'elles ne vous soient plus facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.

  • Option 1. Vous pouvez supprimer le projet. Il s'agit de l'approche recommandée. Toutefois, si vous souhaitez conserver le projet, vous pouvez supprimer le déploiement à l'aide de l'option 2.

  • Option n° 2. (Expérimental) Si vous utilisez un projet existant, mais vide, vous pouvez annuler manuellement toutes les étapes de ce tutoriel en commençant par supprimer le déploiement.

  • Option 3. (Expérimental) Si vous maîtrisez Google Cloud ou que votre cluster comprend des ressources existantes, vous pouvez nettoyer manuellement les ressources que vous avez créées dans ce tutoriel.

Supprimer le projet (option 1)

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer le déploiement (option 2)

Dans cette approche, vous devez autoriser Deployment Manager à annuler les éléments créés. Même si le déploiement comporte des erreurs, cette approche permet de l'annuler.

  1. Dans Cloud Console, accédez au menu de navigation, puis cliquez sur Deployment Manager.

  2. Sélectionnez votre déploiement, puis cliquez sur Supprimer.

  3. Confirmez l'opération en cliquant de nouveau sur Supprimer.

  4. Même si le déploiement comporte des erreurs, vous pouvez le sélectionner et le supprimer.

  5. Si le fait de cliquer sur Supprimer n'entraîne pas la suppression du déploiement, vous pouvez essayer Supprimer le déploiement, mais conserver les ressources. Si Deployment Manager ne peut supprimer aucune ressource, vous devez les noter et essayer plus tard de les supprimer manuellement.

  6. Attendez que Deployment Manager termine la suppression.

  7. (Étape temporaire) Dans le menu Navigation, cliquez sur Services réseau > Équilibrage de charge, puis supprimez les règles de transfert créées par le cluster anthos-sample-cluster1.

  8. (Facultatif) Accédez à la page https://source.cloud.google.com/<project_id>. Supprimez le dépôt dont le nom inclut config-repo, s'il en existe un.

  9. (Facultatif) Supprimez le compte de service créé lors du déploiement et tous ses rôles IAM.

Effectuer un nettoyage manuel (option 3)

Cette approche repose sur la suppression manuelle des ressources depuis Google Cloud Console.

  1. Dans le menu Navigation de Cloud Console, cliquez sur Kubernetes Engine.

  2. Sélectionnez votre cluster et cliquez sur Supprimer, puis de nouveau sur Supprimer pour confirmer.

  3. Dans Cloud Console, accédez au menu de navigation, cliquez sur Compute Engine.

  4. Sélectionnez le serveur intermédiaire, cliquez sur Supprimer, puis de nouveau sur Supprimer pour confirmer.

  5. Suivez les étapes 7 et 8 de l'option 2.

Si vous envisagez d'effectuer un nouveau déploiement après le nettoyage manuel, vérifiez que toutes les conditions sont remplies, comme indiqué dans la section Avant de commencer.

Étape suivante

Notre documentation Anthos contient bien d'autres informations.

Découvrez d'autres tutoriels

  • Découvrez les fonctionnalités de sécurité d'Anthos avec l'exemple de déploiement Anthos dans le tutoriel Sécuriser Anthos.

  • Explorez des architectures de référence, des schémas, des tutoriels et des bonnes pratiques concernant Google Cloud. Consultez notre Centre d'architecture cloud.

En savoir plus sur Anthos