Corréler l'observabilité côté client et côté serveur bénéficie à toute l'entreprise

Au-delà d'une meilleure efficacité en matière de résolution de problèmes, une bonne corrélation des données permet d'utiliser le machine learning pour détecter l'impact des incidents du backend sur le business.

Lorsqu'un ingénieur qui développe une application découvre un bug critique, disposer sur son application d'un monitoring de l'expérience des "vrais utilisateurs" est une aide à la résolution précieuse.  Un tel outil de RUM (pour Real User Monitoring) permet à l'ingénieur de comprendre les étapes du parcours utilisateur menant au dysfonctionnement. Mais dans de nombreux cas, sa capacité à diagnostiquer le problème est limitée, voire inexistante en ce qui concerne l'interface entre le côté client et le côté serveur.

En effet, certains problèmes visibles côté client peuvent provenir de changements effectués côté backend. Dans ce cas-là, les informations permettant de comprendre l’origine du problème, et donc de le résoudre, seront capturées dans un produit d’APM (Application Performance Monitoring) distinct. Cependant, cela rajoute des étapes et des délais pour réunir toutes les informations, prolonge d’autant la durée des incidents et d’une expérience client dégradée, et par conséquent est source de pertes de revenus pour l’entreprise. La solution efficace à ce type d'incidents est de relier concrètement les données de l'APM et du RUM (Real User Monitoring), et de briser les silos entre les équipes qui les utilisent.

Une vision temps réelle de l'expérience utilisateur

Un outil de RUM donne aux équipes une vision en temps réel de l’expérience utilisateur de leurs applications web ou mobiles. Il permet notamment de collecter des indicateurs objectifs de cette qualité d’expérience, tels que le temps de chargement d’une page et les détails sur les erreurs et les crashes. Il capture en parallèle des informations sur les conditions d’utilisation et l’endroit de survenue du dysfonctionnement (localisation de l'utilisateur, type d'appareil, navigateur, système d'exploitation, version de l'application, l'URL de la page, nom de l’écran…). Cet outil puissant se limite toutefois aux données collectées côté client. Étant donné que les applications font en permanence des appels aux services backend, sans que l’utilisateur ne s’en rende nécessairement compte, une partie importante de la clé de résolution finale est manquante si les informations collectées ne sont pas corrélées avec les données de télémétrie backend.

L'APM révèle souvent l’origine d’une expérience utilisateur dégradée

L’APM, et plus particulièrement le traçage distribué, offre une visibilité sur la durée des requêtes qui sollicitent les services backends. En collectant et en visualisant les traces des applications backend, l'APM aide les ingénieurs à comprendre réellement ce qui se passe lorsqu'une application interagit avec l'infrastructure qui la supporte. Dans le détail, un outil d’APM permet de visualiser la façon dont le code s'exécute sur toute la chaîne logicielle tout en mettant en évidence les principales métriques de performance pour chaque service, notamment la fréquence des requêtes, leur latence et taux d'erreur. L'origine des problèmes identifiés au niveau de l'expérience utilisateur par un outil de RUM peut souvent être trouvée dans les traces mises en évidence par un outil d’APM.

Corréler APM et RUM pour une résolution de problème plus rapide

Pour de nombreuses équipes, cependant, ce n'est pas aussi simple. La plupart des outils de monitoring séparent l'APM et le RUM, si bien que les utiliser simultanément force à une alternance fastidieuse entre les deux, où il faut en permanence ajuster les filtres de recherche de chaque outil pour avoir une vision complète. De même, la structure des équipes côté web, mobile et backend comporte souvent les mêmes obstacles, ce qui rend le processus de résolution de problème cloisonné, avec beaucoup de perte de temps entre équipes qui se renvoient la balle, chacune sur son outil de monitoring.

Une approche plus efficiente consiste à lier les données entre les deux outils et à les rendre disponibles sans avoir à passer de l'un à l'autre. Ainsi, en utilisant son outil RUM, un ingénieur côté web ou mobile pourrait non seulement identifier le problème d'expérience utilisateur, mais aussi obtenir des informations sur les pics de latence et sur les erreurs au niveau des différents micro-services sous-jacents. Il peut alors alerter ses homologues backend et partager avec eux ces informations, ce qui permet de gagner du temps et d'offrir un contexte plus étoffé. Réciproquement, les équipes d'ingénieurs full-stack (qui sont en charge à la fois du côté client et du côté serveur) ont à portée de main les données corrélées provenant du côté client leur permettant de résoudre le problème plus rapidement et plus facilement. Lorsque les produits sont connectés, la collaboration et la résolution sont à la fois accélérées et plus productives.

APM et RUM combinés pour des analyses métier enrichies par le machine learning

Au-delà d'une meilleure efficacité de collaboration et de résolution de problèmes, une bonne corrélation des données permet d'utiliser le machine learning (ML) pour détecter l'impact des incidents backend sur le business. En corrélant toutes les données web, mobile et backend au sein d'une seule plateforme, un système d'alerte basé sur le ML dispose de toutes les données nécessaires à son apprentissage pour identifier l’origine des problèmes à travers l’ensemble de la chaîne applicative, jusqu’au niveau infrastructure. Et lorsque ce système est enrichi avec des données métier, l'impact financier d'un incident backend peut être calculé automatiquement par la plateforme.

Une corrélation complète entre l'APM et le RUM se répercute aussi sur l'ensemble de l'entreprise. D'une part, une organisation d'ingénierie avec moins d'erreurs, et des erreurs résolues plus rapidement, est globalement plus résiliente. De plus, une résolution de problèmes plus rapide libère du temps pour la création de nouvelles fonctionnalités, telle qu’un nouveau processus d'inscription pour les clients ou une nouvelle architecture de service qui réduit la latence de ce processus. L'innovation et les nouveaux produits permettent aux entreprises de se développer. Pour que ceux-ci aient le succès escompté, il est nécessaire que la stabilité de l’existant et les processus de monitoring en place soient suffisants pour que chaque itération ne déclenche pas des bugs chronophages qui pèsent sur l’ingénierie et minent la confiance des utilisateurs finaux.