REL06-BP01 Surveiller tous les composants de la charge de travail (génération) - Reliability Pillar

REL06-BP01 Surveiller tous les composants de la charge de travail (génération)

Surveillez les composants de la charge de travail avec Amazon CloudWatch ou des outils tiers. Surveillez les services AWS avec le tableau de bord AWS Health.

Tous les composants de votre charge de travail doivent être surveillés, y compris le côté utilisateur, la logique métier et les niveaux de stockage. Au besoin, définissez des métriques clés, décrivez leur procédure d’extraction des journaux, puis spécifiez des seuils d’invocation pour les événements d’alarme correspondants. Assurez-vous que les métriques sont pertinentes pour les indicateurs clés de performance (KPI) de votre charge de travail, et utilisez des métriques et des journaux pour identifier les signes avant-coureurs de la dégradation du service. Par exemple, une métrique liée aux résultats commerciaux, telle que le nombre de commandes traitées avec succès par minute, peut indiquer des problèmes de charge de travail plus rapidement qu’une métrique technique, telle que l’utilisation du processeur. Utilisez le tableau de bord AWS Health pour obtenir une vue personnalisée des performances et de la disponibilité des services AWS sous-jacents à vos ressources AWS.

La surveillance dans le cloud offre de nouvelles opportunités. La plupart des fournisseurs de cloud ont développé des hooks personnalisables et peuvent fournir des informations pour vous aider à surveiller plusieurs couches de votre charge de travail. Des services AWS comme Amazon CloudWatch appliquent des algorithmes statistiques et de machine learning pour analyser en continu les métriques des systèmes et des applications, déterminer les points de référence normaux et détecter les anomalies avec une intervention minimale de l’utilisateur. Les algorithmes de détection des anomalies tiennent compte de la saisonnalité et des changements de tendance des métriques.

AWS met à disposition une multitude d’informations de surveillance et de journalisation qui peuvent être utilisées pour définir des métriques spécifiques à la charge de travail et des processus de changement de la demande, et pour adopter des techniques de machine learning, quelle que soit l’expertise en ML.

En outre, surveillez l’ensemble de vos points de terminaison externes afin de vous assurer qu’ils sont indépendants de votre implémentation de base. Cette surveillance active peut être effectuée avec des transactions synthétiques (parfois appelées Canary utilisateurs à ne pas confondre avec les déploiements Canary) qui exécutent régulièrement un certain nombre de tâches courantes effectuées par les clients de la charge de travail. Maintenez ces tâches de courte durée et veillez à ne pas surcharger votre charge de travail pendant les tests. Amazon CloudWatch Synthetics vous permet de créer des scripts Canary synthétiques pour surveiller vos points de terminaison et vos API. Vous pouvez également combiner les nœuds de clients synthétiques Canary avec la console AWS X-Ray pour identifier les scripts Canary synthétiques qui rencontrent des erreurs, des pannes ou des taux de limitation au cours de la période sélectionnée.

Résultat souhaité :

Collectez et utilisez des métriques critiques de tous les composants de la charge de travail pour garantir la fiabilité de la charge de travail et une expérience utilisateur optimale. Détecter qu’une charge de travail n’atteint pas les résultats vous permet de déclarer rapidement un sinistre et de vous remettre d’un incident.

Anti-modèles courants :

  • Surveillance limitée aux interfaces externes de votre charge de travail.

  • Ne pas générer de métriques spécifiques à la charge de travail et s’appuyer uniquement sur les métriques qui vous sont fournies par les services AWS utilisés par votre charge de travail.

  • Utiliser uniquement des métriques techniques dans votre charge de travail et ne surveiller aucune métrique liée aux KPI non techniques auxquels la charge de travail contribue.

  • S’appuyer sur le trafic de production et de simples surveillances de l’état pour surveiller et évaluer l’état de la charge de travail.

Avantages du respect de cette bonne pratique : la surveillance à tous les niveaux de votre charge de travail vous permet d’anticiper et de résoudre plus rapidement les problèmes dans les composants qui constituent la charge de travail.

Niveau d’exposition au risque si cette bonne pratique n’est pas respectée : élevé

Directives d’implémentation

  1. Activez la journalisation lorsqu’elle est disponible. Les données de surveillance doivent être obtenues à partir de tous les composants des charges de travail. Activez la journalisation supplémentaire, telle que les journaux d’accès S3, et autorisez votre charge de travail à consigner des données qui lui sont spécifiques. Collectez des métriques pour les moyennes du processeur, des E/S réseau et des E/S du disque auprès de services tels qu’Amazon ECS, Amazon EKS, Amazon EC2, Elastic Load Balancing, AWS Auto Scaling et Amazon EMR. Consultez la section Services AWS qui publient des métriques CloudWatch pour obtenir la liste des services AWS qui publient des métriques sur CloudWatch.

  2. Passez en revue toutes les métriques par défaut et explorez toutes les lacunes de collecte de données. Chaque service génère des métriques par défaut. La collecte des métriques par défaut vous permet de mieux comprendre les dépendances entre les composants de charge de travail et sur la manière dont la fiabilité et les performances des composants affectent la charge de travail. Vous pouvez également créer et publier vos propres métriques dans CloudWatch à l’aide de la AWS CLI ou d’une API.

  3. Évaluez toutes les métriques pour décider celles pour lesquelles envoyer des alertes pour chaque service AWS de votre charge de travail. Vous pouvez choisir de sélectionner un sous-ensemble de métriques qui ont un impact majeur sur la fiabilité de la charge de travail. En vous concentrant sur les métriques et les seuils critiques, vous pouvez affiner le nombre d’alertes et réduire le nombre de faux positifs.

  4. Définissez des alertes et le processus de récupération de votre charge de travail après l’invocation de l’alerte. La définition d’alertes vous permet de notifier, de faire remonter et de suivre rapidement les étapes nécessaires pour vous remettre d’un incident et atteindre votre objectif de délai de reprise (RTO) prescrit. Vous pouvez utiliser des alarmes Amazon CloudWatch pour invoquer des flux de travail automatisés et lancer des procédures de récupération en fonction de seuils définis.

  5. Explorez l’utilisation de transactions synthétiques pour collecter des données pertinentes sur l’état des charges de travail. La surveillance synthétique suit les mêmes routes et effectue les mêmes actions qu’un client, ce qui vous permet de vérifier en permanence l’expérience client même lorsque vous n’avez aucun trafic client sur vos charges de travail. En utilisant les transactions synthétiques, vous pouvez découvrir les problèmes avant vos clients.

Ressources

Bonnes pratiques associées :

Documents connexes :

Blogs connexes :

Exemples et ateliers connexes :