Superviser en continu les applications et les services
Dans cette unité, vous apprendrez à :
- Comment la supervision continue vous aide à valider l’intégrité, les performances et la fiabilité de vos application et infrastructure.
- Comment l’observabilité met les données à disposition à partir des systèmes que vous devez superviser.
- Comment Azure Monitor et Application Insights vous permettent d’implémenter la supervision continue.
- Comment le connecteur de gestion des services informatiques peut vous aider à implémenter un système de gestion de tickets.
Qu’est-ce que la supervision continue ?
L’équipe souhaite superviser le site web et l’infrastructure pendant le test bêta. Tim a effectué des recherches et appris certaines choses.
La supervision continue fait référence aux processus et technologies que vous pouvez utiliser pour superviser chaque phase du cycle de vie de votre application. La supervision continue permet de valider l’intégrité, les performances et la fiabilité de votre application et de votre infrastructure à mesure que les modifications passent de l’étape de développement à celle de production.
La supervision continue prend appui sur les concepts CI/CD qui vous aident à développer et à livrer des logiciels de façon plus rapide et plus fiable pour fournir une valeur continue à vos utilisateurs.
Qu’est-ce que l’observabilité ?
L’observabilité fait référence à la mise à disposition des données à partir du système que vous souhaitez superviser. La supervision est la tâche réelle de collecte et d’affichage de ces données.
Qu’est-ce qu’Azure Monitor ?
Azure Monitor est un service dans Azure qui fournit l’observabilité de la pile complète entre les applications et l’infrastructure, dans le cloud et localement.
Azure Monitor fonctionne avec des outils de développement comme Visual Studio et Visual Studio Code. Vous pouvez donc l’utiliser lors des phases de développement et de test. Il s’intègre à Azure DevOps pour assurer la gestion des versions et des éléments de travail pendant les phases de déploiement.
Azure Monitor s’intègre également aux outils de gestion des services informatiques (ITSM) et Security Information and Event Management (SIEM) pour vous aider à suivre les problèmes et les incidents au sein de vos processus informatiques existants.
Activer la supervision sur vos applications
Les applications sont complexes et contiennent de nombreux composants interconnectés. Pour visualiser les transactions et les connexions de bout en bout sur tout le système, vous devez activer la supervision sur l’ensemble de vos applications et services web.
Si vous n’avez pas de projet existant dans Azure DevOps, vous pouvez commencer par l’interface Azure Developer CLI. L’interface Azure Developer CLI (azd
) est un outil open source qui accélère le passage de votre application d’un environnement de développement local vers Azure. azd
fournit des meilleures pratiques, des commandes adaptées aux développeurs qui correspondent aux étapes clés de votre workflow, que votre travail s’effectue dans le terminal, votre éditeur ou dans un environnement de développement intégré (IDE) ou CI/CD (intégration continue/déploiement continu).
Ensuite, vous pouvez ajouter la supervision continue à votre pipeline de mise en production en combinant Azure Pipelines avec Azure Application Insights. Application Insights est une fonctionnalité d’Azure Monitor permettant de superviser vos applications en temps réel. Nous examinerons plus en détail Application Insights dans un instant.
Activer la supervision sur votre infrastructure
Les applications ne sont fiables que si leur infrastructure sous-jacente l’est. L’activation de la supervision sur l’ensemble de votre infrastructure vous aide à obtenir une observabilité complète et facilite la découverte des causes principales lors d’un échec.
Azure Monitor vous permet de suivre l’intégrité et les performances de votre infrastructure hybride dans son intégralité, dont les machines virtuelles, les conteneurs, le stockage et les réseaux.
Avec Azure Monitor, vous pouvez collecter les éléments suivants :
- Métriques de plateforme, journaux d’activité et journaux de diagnostic de la plupart de vos ressources Azure, sans aucune autre configuration nécessaire.
- Données de supervision pour les machines virtuelles. (Azure Monitor pour machines virtuelles)
- Données de supervision pour les clusters AKS. (Azure Monitor pour conteneurs)
L’IaC (Infrastructure as Code) permet de décrire, par le biais du code, l’infrastructure dont vous avez besoin pour votre application. Étant donné que vous décrivez votre infrastructure à l’aide de code, vous pouvez suivre les mêmes schémas de développement, de test et de gestion de versions que ceux utilisés par les équipes DevOps pour les applications.
Pour activer la supervision en utilisant une approche IaC, vous pouvez utiliser :
- Des modèles Resource Manager pour activer la supervision et configurer des alertes sur un large éventail de ressources.
- Azure Policy pour appliquer différentes règles sur vos ressources. Azure Policy permet de garantir que ces ressources restent conformes aux normes de votre entreprise et aux contrats de niveau de service (SLA).
Utiliser des groupes de ressources Azure pour combiner des ressources
Une application classique sur Azure comprend des ressources de calcul comme des machines virtuelles, Azure App Service, des microservices, des clusters AKS (Azure Kubernetes Service) et Azure Service Fabric. Ces applications dépendent souvent de données et de services réseau comme Azure Event Hubs, le stockage Azure, Microsoft SQL Database et Azure Service Bus.
Dans Azure, un groupe de ressources contient des ressources Azure associées. Combinez des ressources dans un groupe de ressources pour obtenir une observabilité complète sur toutes les ressources qui composent vos différentes applications. Azure Monitor pour les groupes de ressources fournit une méthode de base pour effectuer le suivi de l’intégrité et des performances de l’ensemble de votre application et vous permet d’explorer au niveau du détail des composants individuels afin de résoudre les problèmes.
Garantir la qualité par l’intermédiaire du déploiement continu
CI/CD vous permet d’intégrer et de déployer automatiquement les modifications du code sur votre application, en fonction des résultats des tests automatisés. CI/CD simplifie le processus de déploiement et vérifie la qualité de votre code avant que les modifications ne passent en production.
Voici quelques méthodes recommandées pour garantir la qualité pendant votre processus de déploiement :
Utilisez Azure Pipelines pour implémenter un pipeline CI/CD qui automatise l’ensemble de votre processus, y compris l’exécution de tests automatisés, à partir du moment où vous validez le code jusqu’à la production.
Utilisez les portes de déploiement pour ajouter la supervision dans vos environnements de prédéploiement et de post-déploiement.
Les portes de déploiement permettent de s’assurer que vos indicateurs d’intégrité et de performance clés (KPI) sont respectés quand vos applications passent de l’étape de développement à celle de production. Les portes de déploiement garantissent également que les différences dans l’environnement d’infrastructure ou le mode de mise à l’échelle n’ont aucun impact négatif sur vos indicateurs de performance clés.
Maintenez des instances de supervision distinctes entre les différents environnements de déploiement, comme le développement, les tests, la préproduction et la production.
Des instances de supervision distinctes permettent de s’assurer que toutes les données collectées sont pertinentes pour les applications et l’infrastructure. Si vous devez mettre en corrélation des données entre différents environnements, vous pouvez utiliser des graphiques à ressources multiples dans Metrics Explorer ou créer des requêtes inter-ressources dans Log Analytics.
Créer des alertes que vous pouvez manipuler
Pour garantir l’efficacité de vos efforts de supervision, vous devez informer les administrateurs des éventuels problèmes actifs ainsi que de ceux susceptibles de se produire. Voici quelques méthodes pour y parvenir :
Créez des alertes dans Azure Monitor en fonction des journaux et des métriques pour identifier les états de défaillance prévisibles.
L’objectif est de s’assurer que chaque alerte représente une condition critique sur laquelle vous pouvez agir. Un faux positif se produit quand la supervision signale un problème qui n’existe pas réellement. Utilisez des seuils dynamiques pour calculer automatiquement les bases de référence sur les données de métriques plutôt que de définir vos propres seuils statiques.
Définissez des actions pour les alertes qui avertissent le plus efficacement vos administrateurs.
Les actions disponibles pour la notification incluent les SMS (Short Message Service), e-mails, notifications Push ou appels vocaux.
Utilisez des actions plus élaborées pour vous connecter à votre outil ITSM ou à d’autres systèmes de gestion d’alertes au moyen de webhooks.
Utilisez des runbooks Azure Automation ou des webhooks pour corriger les conditions d’alerte.
Utilisez la mise à l’échelle automatique pour ajuster dynamiquement vos ressources de calcul en fonction des métriques que vous recueillez.
Créer des tableaux de bord et des workbooks
En vous assurant que vos équipes de développement et des opérations ont accès aux mêmes données de télémétrie et aux mêmes outils, vous leur permettez d’afficher des modèles dans tout votre environnement tout en réduisant le temps moyen de détection (MTTD) et le temps moyen de résolution (MTTR). Voici quelques façons de procéder :
Créez des tableaux de bord personnalisés en fonction des journaux et métriques communs pour les différents rôles de votre organisation.
Les tableaux de bord peuvent combiner des données provenant de plusieurs ressources Azure.
Créez des workbooks Azure Monitor pour partager les connaissances entre les équipes de développement et des opérations.
Vous pouvez préparer un workbook en tant que rapport dynamique qui contient des graphiques et des résumés de journaux. Les développeurs peuvent créer des guides de résolution des problèmes pour aider le support technique ou l’équipe des opérations à résoudre les problèmes.
Optimiser en continu
La supervision est l’un des aspects fondamentaux de la philosophie Build - Measure - Learn populaire, qui vous recommande de suivre continuellement vos indicateurs de performance clés et les métriques de comportement des utilisateurs, puis de les optimiser via des exercices de planification itérative. Azure Monitor vous aide à collecter les métriques et les journaux qui sont pertinents pour votre entreprise et à ajouter de nouveaux points de données lors du déploiement suivant.
- Utilisez les outils dans Application Insights pour suivre le comportement et l’engagement des utilisateurs finaux.
- Utilisez Analyse d’impact pour vous aider à classer par ordre de priorité les zones sur lesquelles se concentrer pour améliorer vos indicateurs de performance clés les plus importants.
Qu’est-ce qu’Azure Application Insights ?
Application Insights est un service de gestion des performances des applications (APM) destiné aux développeurs web. Cette application vous permet d’effectuer les opérations suivantes :
- Superviser votre application web en production.
- Détecter automatiquement les anomalies de performances.
- Diagnostiquer les défaillances et comprendre ce que font réellement les utilisateurs avec votre application.
Application Insights fonctionne avec .NET, Node.js, Java et de nombreux autres frameworks et langages de programmation. Ce service fonctionne avec les applications hébergées dans le cloud ou localement.
Application Insights fournit des points de connexion que vous pouvez utiliser pour l’intégration à vos outils et processus DevOps existants. Application Insights s’intègre également à Visual Studio App Center, ce qui vous permet de superviser et d’analyser la télémétrie à partir de vos applications mobiles.
Comment fonctionne Application Insights ?
Vous commencez par ajouter un petit package d’instrumentation à votre application. Vous créez ensuite une ressource Application Insights dans le portail Azure. L’instrumentation supervise votre application et renvoie les données de télémétrie à Azure, auxquelles vous pouvez accéder à partir du portail. Gardez à l’esprit que votre application peut s’exécuter n’importe où ; elle n’a pas besoin d’être hébergée dans Azure.
En plus des applications web, vous pouvez instrumenter quasiment n’importe quel type de composant d’arrière-plan. Vous pouvez même instrumenter du code JavaScript.
Voici un diagramme qui montre le flux des données de supervision depuis les services en production dans Application Insights. Application Insights peut alors déclencher des alertes ou transmettre des données à un autre outil pour vous permettre de visualiser et de comprendre les tendances.
Vous pouvez également extraire des données de télémétrie à partir de vos environnements hôtes. Ces données incluent les compteurs de performances, les diagnostics Azure et les journaux Docker. Vous pouvez également configurer des tests de supervision synthétique. La supervision synthétique utilise un ensemble de transactions pour évaluer les performances et la disponibilité. Les transactions synthétiques sont des tests prévisibles qui vous permettent de comparer les résultats d’une version à l’autre.
Quelle est la surcharge ? L’impact sur les performances de votre application est généralement faible. Les appels de suivi sont non bloquants, traités par lot et envoyés sur un thread distinct.
Que surveille Application Insights ?
Application Insights permet aux équipes de développement de comprendre le fonctionnement et l’utilisation de leur application.
Application Insights supervise les éléments suivants :
Les taux de demande, les temps de réponse et les taux d’échec
déterminez quelles sont les pages les plus consultées, à quel moment de la journée et où se trouvent vos utilisateurs. Identifiez les pages qui offrent les meilleures performances. Découvrez comment les temps de réponse et les taux d’échec sont comparés à vos niveaux de trafic.
Si des services externes vous ralentissent.
Exceptions d’applications.
Analysez les statistiques agrégées, ou choisissez des instances précises et recherchez les demandes associées dans l’arborescence des appels de procédure. Application Insights signale les exceptions qui se produisent sur le serveur et sur le client.
Performances du chargement des pages web, comme indiqué par le navigateur web de l’utilisateur.
Appels AJAX à partir de pages web, notamment les temps de réponse et taux d’échec.
Nombre de sessions et d’utilisateurs.
Compteurs de performances de vos ordinateurs serveurs Windows ou Linux, par exemple le processeur, la mémoire et l’utilisation du réseau.
Diagnostics d’hébergement de Docker ou Azure.
Journaux de suivi de diagnostic de votre application. Cela vous permet de mettre en corrélation les événements de trace avec les demandes.
Métriques et événements personnalisés que vous écrivez vous-même dans le code du client ou du serveur. Par exemple, vous pouvez suivre des événements comme des articles vendus ou des jeux gagnés.
Où trouver mes données de télémétrie ?
Voici comment vous pouvez afficher et suivre vos données de télémétrie :
-
Les alertes automatiques s’adaptent aux habitudes télémétriques normales de votre application et se déclenchent lorsqu’un comportement inhabituel est détecté. Vous pouvez également définir des alertes sur des niveaux particuliers de mesures personnalisées ou standard.
-
La mise en correspondance d’applications vous permet d’identifier les baisses de performances ou les défaillances sur l’ensemble des composants de votre application distribuée.
-
Vous pouvez exécuter Profiler sur des applications ASP.NET et ASP.NET Core qui s’exécutent sur Azure App Service avec le niveau de service de base ou un niveau supérieur.
-
Cette fonctionnalité permet d’analyser la segmentation et la rétention des utilisateurs.
-
La fonctionnalité Recherche vous permet de rechercher et d’explorer les éléments de télémétrie, par exemple les pages consultées, exceptions ou demandes web.
-
Metrics Explorer permet de tracer des graphiques, de corréler visuellement des tendances et d’examiner les pics et les creux dans les métriques.
Flux de métriques en temps réel
Lorsque vous déployez une nouvelle build, observez les indicateurs de performance presque en temps réel pour vous assurer que tout fonctionne comme prévu.
-
Répondez à des questions difficiles sur les performances et l’utilisation de votre application à l’aide d’un langage de requête puissant.
Débogueur de capture instantanée
Collectez un instantané de débogage à partir de votre application web en production.
-
Intégrez des mesures d’utilisation à d’autres données décisionnelles.
-
Exportez les données brutes vers le stockage dès qu’elles arrivent.
Qu’est-ce que le connecteur de gestion des services informatiques ?
Le connecteur de gestion des services informatiques (ITSMC) pour Azure offre une intégration bidirectionnelle entre les outils de supervision Azure et vos outils ITSM, notamment :
- ServiceNow
- Provance
- Cherwell
- System Center Service Manager
Vous pouvez intégrer les outils de supervision Azure au connecteur ITSMC pour :
- Créer ou mettre à jour des éléments de travail dans les outils ITSM, en fonction des alertes Azure.
- Extraire les données d’incident et de demande de modification des outils ITSM dans Azure Log Analytics.
Les outils de supervision Azure permettent d’identifier, d’analyser et de résoudre les problèmes. Toutefois, les éléments de travail liés à un problème sont généralement stockés dans un outil ITSM. Il est plus judicieux d’implémenter un système de gestion de tickets avec le connecteur ITSMC. De cette façon, au lieu de faire des allers-retours entre votre outil ITSM et les outils de supervision Azure, vous pouvez récupérer toutes les informations dont vous avez besoin à un même emplacement. Le connecteur ITSMC améliore l’expérience de dépannage en réduisant le temps nécessaire à la résolution des problèmes.