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 ».
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).
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).
Démarrez avec l'APM, et essayez New Relic.
Le meilleur moyen d'en savoir plus sur l'APM et l'observabilité consiste à tenter une expérience pratique avec une solution d'observabilité. Pour démarrer, inscrivez-vous gratuitement à New Relic puis approfondissez vos connaissances avec la documentation sur l'APM de New Relic.
Les opinions exprimées sur ce blog sont celles de l'auteur et ne reflètent pas nécessairement celles de New Relic. Toutes les solutions proposées par l'auteur sont spécifiques à l'environnement et ne font pas partie des solutions commerciales ou du support proposés par New Relic. Veuillez nous rejoindre exclusivement sur l'Explorers Hub (discuss.newrelic.com) pour toute question et assistance concernant cet article de blog. Ce blog peut contenir des liens vers du contenu de sites tiers. En fournissant de tels liens, New Relic n'adopte, ne garantit, n'approuve ou n'approuve pas les informations, vues ou produits disponibles sur ces sites.