Concevoir pour les opérations

Effectué
Déplacez-vous vers la gauche dans les opérations afin d’anticiper les conditions de défaillance.

Testez les défaillances de façon précoce et fréquente dans le cycle de vie du développement, et déterminez l’impact des performances sur la fiabilité. Pour les analyses de la cause racine et les analyses rétrospectives, vous devez avoir une visibilité partagée entre les équipes de l’état des dépendances et les défaillances en cours. Les insights, les diagnostics et les alertes des systèmes observables sont fondamentaux pour la gestion efficace des incidents et pour l’amélioration continue.

Contoso University exploite une application web basée sur des microservices qui fournissent des services éducatifs, comme des cours en ligne, pour les enseignants et les étudiants de Contoso. La charge de travail s’appuie sur Azure App Service, Azure SQL Database, Microsoft Entra ID, Azure Key Vault, Azure Service Bus, Azure Monitor et Azure DevOps.

Implémenter une supervision robuste

Créez des systèmes observables qui peuvent mettre en corrélation les données de télémétrie.

La supervision et les diagnostics sont des opérations cruciales. En cas de défaillance, vous devez savoir ce qui a échoué, quand cela s’est produit et pourquoi. L’observabilité au niveau du composant est fondamentale, mais l’observabilité agrégée des composants et des flux corrélés fournit une vue holistique de l’état d’intégrité. Ces données sont nécessaires pour permettre aux ingénieurs de fiabilité du site de définir la priorité de leurs travaux de correction.

Problématique de Contoso

  • L’application de la charge de travail est déployée dans le cadre d’une suite de cinq services découplés sur plusieurs niveaux fonctionnels.
  • L’équipe souhaite être en mesure d’analyser les transactions et les demandes des utilisateurs quand elles passent à travers les différents niveaux de la solution, de façon à identifier les goulots d’étranglement susceptibles d’entraîner une instabilité et de dépanner plus efficacement en cas de problèmes.

Application de l’approche et résultats

  • L’équipe de la charge de travail instrumente les composants pour capturer les journaux et les métriques avec Application Insights, et configure la journalisation pour tous les services de la plateforme. Tous les journaux sont transférés à l’espace de travail Azure Monitor de la charge de travail.
  • Les données de l’espace de travail AzM peuvent être utilisées pour analyser l’intégrité des composants individuels de la solution ainsi que les flux agrégés et l’intégrité de la solution.
  • La corrélation des entrées appartenant à la même demande entre les composants et les niveaux aide l’équipe à déterminer l’intégrité de la charge de travail et facilite ses processus de résolution des problèmes.

Prédire les dysfonctionnements potentiels et un comportement anormal

Rendez visibles les défaillances de fiabilité actives en utilisant des hiérarchisées et actionnables. Investissez dans des processus et une infrastructure fiables qui permettent un triage plus rapide.

Les ingénieurs chargés de la fiabilité du site peuvent être avertis immédiatement pour pouvoir atténuer les incidents en cours sur le site et atténuer de façon proactive les défaillances potentielles identifiées par les alertes prédictives avant qu’elles ne se transforment en incidents réels.

Problématique de Contoso

  • L’équipe s’attend à une augmentation significative du trafic au début de chaque trimestre, car les étudiants s’inscrivent aux cours, accèdent aux programmes et achètent des manuels scolaires.
  • Pendant cette période critique de l’année scolaire, l’équipe doit faire en sorte qu’une capacité suffisante soit disponible pour l’augmentation attendue de la charge. L’équipe doit également être en mesure de réagir rapidement à d’autres problèmes de disponibilité potentiels qui peuvent survenir.

Application de l’approche et résultats

  • L’équipe configure les niveaux Web et Base de données pour qu’un scale-out soit effectué automatiquement afin d’avoir une capacité supplémentaire avant l’augmentation attendue de la demande, et pour continuer à allouer de la capacité à mesure que la charge augmente.
  • Le plan d’intervention d’urgence est ajusté pour que les alertes liées aux flux en période de forte demande pendant cette période soient traitées en priorité par l’équipe de réponse aux incidents.

Tester les risques de fiabilité

Simulez des défaillances, et effectuez des tests dans les environnements de production et de préproduction.

Il est avantageux d’expérimenter des défaillances en production de façon à avoir des attentes réalistes en matière de récupération. Ceci vous permet de faire des choix de conception qui répondent de façon adaptée aux défaillances. Cela vous permet aussi de tester les seuils que vous définissez pour les métriques métier.

Problématique de Contoso

  • La communication entre le niveau Web et le service REST d’inscription des étudiants dans cette charge de travail s’appuie sur des certificats clients.
  • Comme la fonctionnalité d’inscription des étudiants n’est pas beaucoup utilisée après le début du trimestre, si le certificat utilisé par le service d’inscription des étudiants expire, le problème peut ne pas être détecté pendant un certain temps.
  • En outre, au cours de la dernière période d’inscription, plusieurs interruptions du service se sont produites en raison d’une gestion incorrecte par le système des défaillances de connectivité temporaires. L’équipe a apporté des améliorations au code pour gérer les défaillances temporaires, mais elle ne sait pas comment les fonctionnalités se comportent dans des scénarios de production réels.

Application de l’approche et résultats

  • L’équipe développe des tests de transaction synthétique qui seront exécutés en production selon une planification mensuelle pour simuler plusieurs flux, y compris le flux des inscriptions.
  • Des alertes sont configurées pour les tests de transaction synthétique afin que l’équipe soit avertie des défaillances, couvrant le risque d’expiration des certificats.
  • En outre, l’équipe a investi dans la création de tests de chaos dans leur cycle de vie du développement de logiciels, en réalisant régulièrement des tests de chaos et en capturant les résultats pour valider les techniques d’auto-préservation et pour aider à découvrir des problèmes de fiabilité inconnus auparavant.

Contrôle de vos connaissances

1.

Vrai ou faux : un exemple d’observation d’une charge de travail consiste à instrumenter l’application pour qu’elle émette des données de télémétrie.

2.

Qu’est-ce qui est une caractéristique d’une stratégie d’alerte bien conçue ?

3.

Quelle est une des façons dont Contoso peut prouver que sa charge de travail peut fonctionner dans un état dégradé ?