DEVOPS

L’observabilité : ce n’est pas ce que vous croyez

Qu’est-ce que l’observabilité ?

L’observabilité est un état d’esprit qui vous permet de répondre à tout type de question sur l’ensemble de votre entreprise par la collecte et l’analyse des données. Si vous posez la question à d’autres personnes, elles vous diront que l’observabilité consiste, selon la définition stricte de la théorie du contrôle, à « superviser l’état interne d’un système en examinant ses résultats ». Enfin, pour en donner une définition très technique, l’observabilité correspond à l’ensemble des « métriques, traces et logs ». Si toutes ces descriptions sont correctes, l’observabilité n’est pas une fonctionnalité que l’on implémente pour ensuite déclarer fièrement que « ce système est équipé de l’observabilité™ ». Intégrer l’observabilité à votre entreprise vous permet de répondre aux questions sur votre activité.

L’observabilité : ce n’est pas ce que vous croyezQuel type de questions ?

Bien sûr, les outils d’observabilité sont capables de répondre à des questions de base comme « Que se passait-il dans notre application quand le nombre d’erreurs a augmenté ? », mais cet usage ne fait qu’effleurer la surface de ce qu’est réellement l’observabilité. Une culture de l’observabilité vous permet de comprendre pourquoi le nombre d’erreurs a augmenté. Si vous connaissez parfaitement votre application et toutes ses dépendances, vous pourrez peut-être obtenir cette information d’un système de supervision, mais les applications modernes sont de plus en plus complexes et il devient de plus en plus difficile de garder leur fonctionnement en tête. Demandes commerciales, lancements de fonctionnalités, tests A/B, refactorisation en microservices… tout se conjugue pour créer une entropie croissante, et tout savoir sur votre système sans aide extérieure est un défi chaque jour plus ambitieux. 

L’observabilité vous permet également de savoir comment (ou si) ces erreurs ont eu un impact sur l’expérience utilisateur. Vous pouvez consulter les données RUM, le volume d’achat, les indicateurs commerciaux généraux, les campagnes marketing, les tickets d’assistance client, l’opinion des réseaux médias... la liste est longue. Avec de telles données, un système d’observabilité n’est plus un outil réservé à une poignée de personnes : toute l’entreprise peut en tirer de précieuses informations. Ces données vous permettent de savoir non seulement « quoi », mais aussi « pourquoi » et « comment ». Une véritable suite d’observabilité vous permet de répondre à toutes ces questions :

  • «Qu’est-ce qui a provoqué cette panne ? »
  • «Quelle a été l’efficacité de cette publicité ? »
  • «Est-ce que ce nouveau design a stimulé les achats ? »
  • « Est-ce que cette interruption de service a contrarié nos utilisateurs ? »

Pourquoi est-ce aussi important ?

L’intégration de ce type de données dans votre système vous permet de découvrir qu’une campagne marketing que vous avez envoyée à vos meilleurs clients comprenait une faute de frappe dans l’URL du bouton d’action, dirigeant vos clients vers une page 404. Vous n’aurez aucun mal à voir l’augmentation d’erreurs 4xx sans pour autant intégrer toutes vos données dans votre solution d’observabilité. En revanche, vous ne pourrez pas comprendre pourquoi le taux d’erreurs 4xx a augmenté, seulement savoir qu’il a augmenté. Imaginez à quelle vitesse vous pourriez résoudre un problème si, en plus de l’information « Dépassement du seuil de 4xx sur fe-server », vous pouviez voir un événement indiquant que « la campagne marketing de réactivation a commencé » au même moment. Non seulement vous seriez informé du problème, mais vous auriez également une piste solide quant à sa cause, ainsi qu’un bon tremplin pour analyser l’impact de cette erreur sur les revenus ou la confiance des clients.

En quoi cela diffère-t-il de la supervision ?

Comme je l’ai dit, la supervision vous dit que quelque chose ne va pas, mais elle ne vous dit pas pourquoi. Les configurations de supervision ne peuvent superviser que des points que vous avez anticipés comme potentiellement problématiques (les choses « connues et sues »). Si vous n’avez pas pensé à ajouter une instrumentation au composant en question, vous ne pouvez pas le superviser. Pire encore, si un problème apparaît au niveau de ce composant et que vous décidez de le superviser, vous n’aurez pas les données historiques de ses performances précédentes. D’autre part, la supervision nécessite une attention spéciale avant même de savoir ce qui peut mal tourner : vous devez instrumenter des points spécifiques et créer des alertes précises à leur sujet. Cela prend du temps et ouvre la porte aux erreurs.

De plus, même si votre solution de supervision est très bien équipée, elle ne vous permet pas d’analyser votre entreprise. Il est impossible de rechercher les « inconnues inconnues » avec un système de supervision classique, parce qu’il n’existe tout simplement pas de données à évaluer. L’ajout de métriques métier est rarement (ou mal) pris en charge dans la supervision traditionnelle. Les données des utilisateurs réels ne sont presque jamais incluses dans les solutions de supervision, ce qui est absurde car tout ce que nous faisons dans nos applications web n’a qu’un seul but : proposer une expérience utilisateur !

Comment les « trois piliers » fonctionnent-ils ensemble ?

Les métriques, les traces et les logs sont les « trois piliers » de l’observabilité, ils sont nécessaires, mais pas suffisants pour comprendre ce qu’est véritablement l’observabilité et pour obtenir des informations sur vos applications et votre activité. Les métriques peuvent vous dire ce qui ne va pas. Les traces vous disent comment se manifeste le problème, en indiquant par exemple quels appels en particulier ne fonctionnent pas. Les logs vous disent pourquoi le problème est apparu en vous permettant d’analyser une métrique ou une trace particulière pour comprendre son comportement. La collecte de ces données est le point de départ d’un état d’esprit d’observabilité, mais rien de plus.

Pourquoi avez-vous besoin de chaque donnée sans exception ?

D’un point de vue naïf, l’un des grands problèmes de l’observabilité vient du fait qu’il y a beaucoup trop de données à collecter et à conserver. « Soyons réalistes : vous ne pouvez pas stocker la quantité de données produites par un service moderne à un même endroit », nous répète-t-on. La solution à cet écueil le plus souvent proposée par les fournisseurs est ce qu’ils appellent l’échantillonnage, mais moi, j’appelle ça « jeter les données par la fenêtre ». Les données rejetées pourraient contenir la transaction de votre client le plus important. Il pourrait s’agir d’un scénario d’utilisation particulier entraînant un bug étrange qui fait planter votre serveur de base de données. Et le pire, c’est que de nombreux fournisseurs vous présentent cette fonctionnalité comme un moyen de « faire des économies ». Je parlerai plus en détail des coûts cachés de l’échantillonnage dans un autre article.

Dans un environnement classique de théorie du contrôle, où un ensemble de jauges supervise une infrastructure critique, laisseriez-vous de côté 70 % des observations sous prétexte que « 30 % suffisent amplement » ? Bien sûr que non. Et pourtant, c’est ce que de nombreux fournisseurs vous suggèrent de faire avec l’observabilité, en raison de la nature des données concernées. Ce n’est pas vrai. Les plateformes matures sont parfaitement capables de gérer toutes les données de votre entreprise sans en mettre aucune de côté.

L’observabilité n’est pas une pratique, c’est un état d’esprit

Si cet article aborde certains aspects de l’implémentation de l’observabilité, la véritable nature de l’observabilité n’est pas « la collecte et le stockage des métriques, traces et logs ». C’est un état d’esprit qui se pose une question : « quelle données devons-nous recueillir pour répondre à n’importe quelle question au sujet de notre entreprise ? ». L’observabilité ne concerne qu’à peine la supervision des performances des applications ou la supervision des infrastructures (bien qu’elles en fassent partie). Elle nous dit qu’il est indispensable de tout prendre en compte. Les indicateurs de l’expérience des utilisateurs réels. Les campagnes marketing. Les variations saisonnières du trafic. Les congés maladie de l’équipe de l’entrepôt. 

L’observabilité est un état d’esprit qui nécessite une source de vérité unique pour toutes les données de votre entreprise et de vos applications, utilisable par tout le monde (développeurs, opérations, équipes produit, directeurs, etc.). Votre entreprise est composée de millions de données, et l’observabilité vise à les capturer au sein d’un seul et même système puis à les utiliser pour répondre à des questions dépassant le cadre des applications techniques de votre entreprise.

Guide pratique de l’observabilitéPour exploiter pleinement l’observabilité, il vous faut une architecture de flux spécialement conçue, capable d’évoluer de façon arbitraire et qui vous permette de recevoir un feedback constant concernant l’impact de vos modifications sur vos utilisateurs et votre entreprise. Il vous faut un système qui englobe de nombreux outils au sein d’une source unique de vérité et en extrait des informations.

Vous pouvez en faire l’expérience avec un essai gratuit de Splunk Observability Cloud et commencer dès aujourd’hui à obtenir de précieuses informations.

Si vous n’êtes pas encore prêt à faire un essai et souhaitez en savoir encore plus sur l’acquisition de l’observabilité, téléchargez gratuitement notre Guide pratique de l’observabilité.

*Cet article est une traduction de celui initialement publié sur le blog Splunk anglais.

----------------------------------------------------
Thanks!
Splunk

Splunk
Posted by

Splunk