Le monitoring des performances des applications (APM) est une pratique qui consiste à utiliser des données en temps réel pour suivre les performances d'une application et l'expérience numérique de vos utilisateurs finaux.

Un bon outil d'APM doit pouvoir répondre aux questions suivantes :

  • « L'application est-elle en panne ou lente ? »
  • « Si l'application est en panne ou lente, à quoi est dû le problème ? »

Les équipes DevOps et IT peuvent utiliser des outils d'APM pour répondre à ces questions, et trouver et résoudre rapidement les problèmes avant qu'ils aient un impact sur les utilisateurs.

Les termes « monitoring des performances des applications » et « gestion des performances des applications » sont souvent utilisés de façon interchangeable, et vous rencontrerez sans doute aussi des termes comme « monitoring des performances » et « monitoring des applications ».

Les applications d'entreprises modernes sont souvent extrêmement distribuées, ce qui rend plus difficile le suivi des erreurs et des problèmes de performances sans solution APM.

Pourquoi l'APM est-il important ?

Qu'il s'agisse des utilisateurs finaux ou des équipes maintenant et développant les applications, personne ne veut avoir affaire à une application en panne ou lente.

L’expérience de l'utilisateur final

Lorsqu'ils utilisent des applications web, les utilisateurs finaux s'attendent à une vitesse et une fiabilité certaines. Ils souhaitent des performances optimisées et des temps de réponse rapides.

Si un site web met trop longtemps à s'ouvrir, les utilisateurs peuvent l'abandonner après quelques secondes. Pire encore, en cas d'expérience décevante, ils risquent fort de se tourner vers un concurrent. Une étude suggère que 12 % des utilisateurs déconseilleraient même à leurs amis et familles d'utiliser une application ou un site particuliers, ce qui peut porter atteinte à la réussite de l'entreprise, à la satisfaction des clients et à la réputation de la marque.

Facilité et sérénité pour les équipes

Les problèmes de performances des applications constituent souvent de véritables casse-tête pour les équipes d'ingénieurs. Un ingénieur d'astreinte peut recevoir à 3 h du matin une alerte système critique concernant des transactions commerciales et nécessitant que des équipes entières s'attachent à résoudre le problème en plein milieu de la nuit.

Les choses se compliquent encore lorsque ce problème critique est dépourvu de contexte, ce qui signifie que les ingénieurs ne savent pas vraiment d'où il provient. Il peut venir d'une API, d'un cluster Kubernetes, d'un service cloud, ou de toute autre source entre le code et le cloud, et plus sa résolution prend de temps, plus ses conséquences sont négatives pour les clients et le chiffre d'affaires de la société.

Le monitoring des performances des applications aide les équipes d'ingénieurs à mettre le doigt sur les problèmes rapidement, et à les résoudre de façon proactive. Par exemple, une équipe d'ingénieurs peut définir un seuil critique qui envoie une alerte lorsque les délais de chargement des pages deviennent trop longs, puis associer tout cela à un tracing détaillé afin de révéler la cause et de résoudre le problème rapidement avant que les utilisateurs finaux ne soient impactés.

L'alternative ? Les ingénieurs sont informés du problème par les utilisateurs finaux, ce qui veut dire que ces derniers sont déjà impactés, et toute l'équipe doit se démener pour résoudre le problème sans le contexte supplémentaire fourni par l'APM ; cela se traduit par une augmentation des délais moyens de détection (MTTD) et des délais moyens de résolution (MTTR).

L'APM peut rassembler une grande quantité de données télémétriques brutes et les corréler en métriques, schémas et anomalies afin que les équipes d'ingénieurs puissent trouver et résoudre rapidement les problèmes.

Que peut-on monitorer avec une solution d'APM ?

Une application logicielle a souvent un grand nombre de couches et de services différents à monitorer et l'APM peut être utilisé pour le monitoring de chacune de ces couches. Par exemple, une solution APM peut être utilisée pour recueillir des informations actuelles et historiques sur les couches suivantes :

  • Infrastructure, y compris l'usage de la mémoire, l'utilisation du CPU et la disponibilité des applications
  • Backend des applications, y compris les performances des requêtes de bases de données et l'analyse des erreurs
  • Frontend des applications, y compris le rendu du navigateur web, le monitoring de l'expérience utilisateur et les métriques de performances

L'APM n'est pas restreint au monitoring des sites web. Vous pouvez également monitorer des applications mobiles, serveurs, réseaux, API, applications internes (côté employés), services basés sur le cloud, ainsi que d'autres technologies.

Examinons de plus près les différents types d'outils qui sont généralement inclus dans une solution de monitoring des applications.

Dashboards opérationnels

Les dashboards opérationnels fournissent un aperçu global des performances de votre application. Vous pouvez personnaliser les dashboards opérationnels pour afficher vos métriques les plus importantes, des signaux dorés aux KPI personnalisés en passant par les services que vous monitorez.

Monitoring des utilisateurs réels

Le monitoring des utilisateurs réels, ou RUM, fournit des informations sur les activités des utilisateurs réels dans votre application, ainsi que sur les performances de l'application pour ces utilisateurs.

Monitoring synthétique

Le monitoring synthétique implique l'utilisation d'un navigateur sans tête pour imiter le comportement d'utilisateurs réels. Les professionnels peuvent tester des flux d'utilisateur spécifiques de façon proactive sans s'appuyer sur des données d'utilisateurs réels.

Monitoring serverless

Le monitoring serverless vous permet de monitorer les performances des applications utilisant des services basés sur le cloud tels qu'AWS au lieu d'avoir des serveurs sur site.

Monitoring de base de données

Le monitoring de base de données vous permet de monitorer les performances de votre base de données afin de pouvoir déterminer le délai des requêtes.

Monitoring de l’activité mobile

Le monitoring des applications mobiles vous permet de monitorer les applications iOS et Android, notamment les problèmes de latence et l'historique des pannes. 

Monitoring de l'infrastructure

Le monitoring de l'infrastructure est nécessaire pour obtenir des informations sur les performances de votre infrastructure, qu'il s'agisse du matériel, de l'infrastructure cloud, ou des clusters Kubernetes.

Cartes de service

Les cartes de service vous permettent de voir rapidement les connexions et dépendances de votre application, ce qui est particulièrement important dans les applications volumineuses qui utilisent des milliers de services.

Une bonne solution APM vous permet également d'interroger vos données télémétriques pour obtenir des informations approfondies, examiner les logs et utiliser un tracing distribué afin de passer au peigne fin une série d'événements et de trouver la cause profonde de tout problème.

Quels sont les avantages de l'APM ?

Une bonne solution de monitoring d'applications offre de nombreux avantages directs et indirects.

  • Une approche proactive pour gérer les incidents
  • De meilleurs délais moyens de détection et de résolution des problèmes
  • Plus de temps pour l'innovation et la création de nouvelles fonctionnalités
  • La réduction de la charge de travail et moins de stress pour les ingénieurs de la fiabilité des sites (SRE) et les équipes de réponse aux incidents
  • Des pannes moins fréquentes et plus courtes
  • Une expérience utilisateur améliorée
  • Une utilisation plus efficace et rentable de services basés sur le cloud et d'autres services basés sur la consommation
  • Un impact positif sur les résultats, notamment une hausse des bénéfices et des marges brutes

Qui utilise l'APM ?

Le monitoring des performances des applications est une pratique importante pour toutes les entreprises, et pas seulement pour celles du secteur technologique. En effet, pour la plupart des sociétés ayant une présence en ligne, il est nécessaire de monitorer les performances des ressources web ainsi que l'expérience globale des utilisateurs finaux. Mais quelles sont les équipes qui utilisent l'APM et en tirent parti ? Cela peut varier en fonction de la taille et de la portée de l'application.

  • Les ingénieurs DevOps automatisent les processus liés aux tests, au déploiement et au maintien des applications en production. Le monitoring des performances des applications est une bonne pratique qui est essentielle pour les DevOps.
  • Les ingénieurs de la fiabilité des sites (SRE) opèrent en suivant une approche basée sur les logiciels. Leur travail est d'assurer la fiabilité des applications. L'utilisation de solutions APM est absolument essentielle pour que les équipes SRE puissent monitorer de façon proactive la fiabilité des sites.
  • Les ingénieurs logiciels écrivent du code et développent de nouvelles fonctionnalités. Dans les entreprises de plus petites tailles, les ingénieurs logiciels peuvent être impliqués à chaque étape du processus, y compris le monitoring du code en production. Même dans les entreprises plus grandes, les ingénieurs sont de plus en plus impliqués dans de nombreuses étapes du cycle de vie des logiciels.

Quelles sont les étapes de configuration de l'APM ?

Pour intégrer le monitoring des performances des applications, vous devez installer des agents qui suivent les données circulant dans votre application. Ce processus s'appelle l'instrumentation, et il se résume souvent à l'utilisation d'une interface de ligne de commande (CLI) pour installer automatiquement les agents dont vous avez besoin. Ces agents recueillent et rapportent des informations sur des transactions web et non web. Vous pouvez également utiliser une instrumentation personnalisée pour ajouter des détails supplémentaires à des traces de transactions ou pour bloquer l'instrumentation des transactions que vous ne souhaitez pas suivre. Si vous utilisez une CLI pour automatiser le processus d'instrumentation, vous pouvez commencer à envoyer des données télémétriques à votre solution APM en quelques minutes seulement.

Les applications distribuées complexes utilisent de nombreux services différents et, dans l'idéal, chaque partie d'une application devrait être instrumentée. Un outil APM complet fournit des intégrations pour de nombreux services populaires tels qu'AWS et Azure, de sorte que vous pouvez rapidement instrumenter n'importe quelle dépendance tierce dans votre application.

En définitive, vous pouvez choisir les fonctionnalités dont vous avez besoin pour votre application et ce que vous souhaitez instrumenter. Une approche utilisant tous les outils susmentionnés donnera les meilleurs résultats en vous offrant un monitoring de bout en bout, c'est-à-dire une observabilité, pour toutes vos applications.

Quelle est la différence entre l'APM et l'observabilité ?

L'APM concerne le monitoring des performances d'une application, mais de nombreuses architectures d'applications modernes sont trop complexes à monitorer et gérer avec l'APM seulement. L'APM fournit un aperçu global des performances d'une application, mais pour trouver la cause profonde d'un problème dans des applications complexes et volumineuses, il est nécessaire d'adopter une approche plus technique.

L'observabilité permet d'avoir des informations techniques approfondies sur l'état de l'ensemble de votre système, quelles que soient sa taille et sa complexité. Si l'APM fournit des métriques agrégées, il vous faudra également d'autres outils tels qu'un tracing distribué pour examiner vos données.

Le monitoring des performances des applications est une partie de l'observabilité, et l'observabilité est un surensemble de l'APM. Pour de nombreuses applications, il est nécessaire d'avoir une solution d'observabilité complète.

Pour en savoir plus sur les différences entre l'APM et l'observabilité, consultez APM vs. observability (en anglais).