Les problèmes de performance des applications critiques, notamment la manière dont elles sont utilisées, peuvent provoquer une détérioration du résultat global de l’entreprise. La lenteur, la faible disponibilité, le mauvais usage des applications qui soutiennent des processus stratégiques de l’entreprise peuvent causer la perte de revenus, la baisse de la satisfaction des clients et de la productivité des employés, et même porter atteinte à la réputation d’une marque.
En revanche, des applications offrant un bon niveau de performance sont sources de valeur ajoutée dans des contextes d’affaires B2B ou B2C. L’analyse de la performance des applications (APM – Application Performance Management), devient donc un enjeu business crucial.
Application Performance Management et Real User Monitoring
Lorsqu’il s’agit de choisir une solution d’APM, la tâche peut s’avérer compliquée au vu de la pléthore des offres sur le marché.
Voilà pourquoi il est utile de se rappeler que l’objectif principal de l’APM est de comprendre:
- Comment les utilisateurs finaux utilisent l’application, que ce soit un client lourd, un site internet ou une application mobile – ce que l’on peut nommer « l’expérience utilisateur ».
- Comment les données récoltées peuvent être traduites en action pour améliorer l’atteinte d’objectif métier.
Les domaines fonctionnels adressés par les solutions APM sont nombreux, certains se focalisant plus particulièrement sur les performances des applications, d’autres sur un type d’architecture comme la virtualisation, etc. Cet article va vous présenter les solutions qui sont centrées sur l’utilisateur final, i.e. RUM, Real-User Monitoring (appelé aussi EUM – End User Monitoring).
Figure : Les domaines fonctionnels de l’APM (source www.manageengine.com)
Les principaux enjeux et usages
RUM est, comme son nom l’indique, une approche qui vise à capturer et analyser toutes les transactions de chaque utilisateur d’un site ou d’une application, métier ou mobile. C’est une forme de surveillance passive, qui observe en permanence votre système en action, en traçant la disponibilité, les fonctionnalités utilisées, la réactivité etc. RUM fournit des indications précieuses pour optimiser l’usage et la performance de votre système d’information.
Les principaux usages des solutions RUM sont :
- La capture de l’expérience utilisateur c’est à dire le suivi de sa navigation ou de son processus métier et ce pour chaque utilisateur.
- Le profiling utilisateur à savoir son type de comportement.
- La détection de problème : lenteur, bug, …
- La remontée d’alerte via les mécanismes de détection de problème notamment.
- Le reporting, l’agrégation et la segmentation de données collectées à des fins d’analyse.
L’intérêt d’une mesure en situation réelle est multiple :
- La mesure est plus fiable, plus représentative. Elle intègre les contraintes et limites du monde réel : bande passante dégradée, équipement terminal plus limité, vieux navigateurs, utilisation des mobiles et tablettes …
- Chaque mesure unitaire est associée à un acteur métier ou à un internaute, qui peut être un client. Il est possible alors d’associer le relevé de la mesure au profil connu du visiteur, et de l’utiliser ultérieurement à des fins de segmentation, ou simplement d’analyses et de corrélation.
Principes technologiques
Un outil RUM comporte plusieurs composants, principalement de deux types :
- Le premier est un programme ou un script (comme un fichier javascript intégré aux pages du site) exécuté sur le poste de travail qui est chargé de relever les mesures. A noter que pour les applications web, les navigateurs présentent une API permettant d’obtenir la chronologie de chargement et d’exécution, et en particulier la fin de l’affichage.
- Une fois la mesure obtenue, pour une page ou une application métier donnée, il reste à l’adresser à un serveur pour stockage et analyses. C’est le rôle du second composant, exécuté côté serveur. Chaque mesure enregistrée est donc transmise au serveur, à chaque action qu’utilisateur effectue sur l’application. C’est également ce composant qui consolide les résultats et fournit des tableaux de bords. L’application serveur doit donc être en mesure d’enregistrer les données dans une base, à une fréquence potentiellement élevée. Un service SaaS ou un serveur hébergé isolé peut s’avérer nécessaire.
Le schéma ci-dessous présente une architecture type d’une solution RUM :
Figure : Architecture type RUM pour application web (source web)
Il faut mentionner la possibilité d’avoir des collecteurs plus spécialisés par application métier pour tel ou tel type d’ERP ou base de données qui seront intégrés directement sur les serveurs correspondants.
Conclusion
La capacité d’une organisation à évaluer l’impact des problèmes de performance de ses applications critiques, notamment celles qui sont sources de revenus, lui permet de définir des plans d’amélioration pour atteindre et ses objectifs métiers et donc a un impact majeur sur les résultats de l’entreprise.
D’où un intérêt croissant de ces mêmes entreprises, à intégrer les solutions de RUM pour analyser et améliorer la performance de leur système d’information.
Gunther BONNARD, Enterprise Architecture