Dans le cadre du principe "Surveiller du point de vue utilisateur" abordé dans mon livre NoBullshit Tech Lead, le Synthetic Monitoring s'impose comme une nécessité et une des conséquences de ce principe.
Il s'agit d'une pratique qui vise à simuler des interactions utilisateur via des robots pour identifier des anomalies dans vos applications. Au lieu de se concentrer sur la disponibilité de l'infrastructure on se focalise sur les chemins critiques de l'application, ceux qui génèrent le plus de valeur business.
Prenons l'exemple d'un site e-commerce : le tunnel d'achat serait prioritaire Ă tester :
Ces tests garantissent non seulement que vos clients peuvent effectuer des achats, mais valident aussi la performance de vos services backend (recherche, gestion des sessions, etc.).
Il existe une multitude d'outils pour mettre en Ĺ“uvre le Synthetic Monitoring, comme Datadog, NewRelic, DynaTrace ou Blackbox Exporter (Prometheus Stack).
Ces scénarios devraient être exécutés hors de l'infrastructure pour simuler un véritable client, permettant ainsi de détecter les problèmes réseaux.
Faites attention aux dépendances externes : elles peuvent engendrer des alertes sans possibilité d'intervention de votre part. Toutefois, être informé d'une indisponibilité chez l'un de vos fournisseurs reste crucial. Pour traiter ces événements, des procédures spécifiques et un système de circuit breaker intégré à vos applications sont recommandés.
La surveillance de vos applications doit être standardisée dans votre cycle de développement, tout comme la sécurité et la performance. Ne négligez jamais la maintenance et l'évolution. Aucun projet ne doit être mis en production sans des sondes de surveillance adéquates.
Et vous, quelles sont vos retours d'expérience concernant l'application de ce principe ?