Passer au contenu

Observabilité : conjuguer vision IT et stratégie business

Jean-Baptiste Bron
8 novembre 2021

Les entreprises font face à une accélération de la transformation numérique, qui impacte les départements IT mais aussi le reste des directions de l’entreprise.

Le multi-cloud, la conteneurisation d’applications, l’accélération du rythme des déploiements et le côté éphémère de certains services ; mais aussi les exigences grandissantes des utilisateurs ou encore l’accès à l’IoT ou à la 5G, rendent les outils de monitoring traditionnels obsolètes.

Nous aurons bientôt à déployer des milliers de micro-services sur des milliers de workloads et seront face à  des millions de transactions par seconde. Une solution capable de prendre en compte ces volumes importants sans latence ni perte d’information est essentielle.

L’avènement des organisations orienté produits implique un déplacement du centre d’intérêt des KPIs IT vers des KPIs métier ; la prépondérance de la technologie dans les processus métier modernes implique que l’ensemble du SI sous-jacent est un des déterminants de la performance métier. En outre, la dépendance historique à l’égard d’une équipe d’exploitation pour surveiller, trier et/ou résoudre les problèmes est devenue intenable à mesure que le nombre de services augmente. Cela induit que de nombreux outils ne sont plus adaptés.

C’est donc ici que l’observabilité entre en jeu : elle vise à fournir des informations plus granulaires sur le comportement des systèmes ainsi qu’un contexte riche utile pour le débogage et l’enrichissement pour servir au mieux l’expérience utilisateur et les métiers.

L’observabilité : nouveau buzz word ou vrai besoin ?

Historiquement, la qualité de service de l’IT était jugée en fonction du nombre d’incidents de production et de leur durée, pas de leur nature (exemple le filesystem d’une base de données plein, un service de messagerie indisponible, …). Les différents interlocuteurs impliqués dans la gestion des systèmes informatiques utilisaient la supervision pour être informés des anomalies et incidents. Les outils de supervision se multipliant du fait de l’ajout de technologies dans le SI, les équipes IT se sont tournées vers les hyperviseurs. Ces solutions permettent de centraliser les sources d’information afin de les agréger, les enrichir et de les présenter dans une interface unique aux équipes en charge de traiter les incidents. Avec l’arrivée des applications modernes (New Apps), les hyperviseurs ont montré leurs limites. En effet, le principe des hyperviseurs est de gérer des événements. On peut les interfacer à des outils externes pour en augmenter leurs fonctionnalités mais il leur manque un élément essentiel l’accès aux données facilitant l’analyse et d’accélération de la résolution d’incidents. C’est là que les que les solutions d’observabilité prennent tout leur sens.  Elles s’appuient sur trois piliers :

  1. Les métriques (mesures des systèmes composant le SI)
  2. Les logs (liées à l’activité des composants du SI)
  3. Les traces (liées à la mesure du code applicatif)

L’association de ces sources de données au sein d’une solution unique d’observation permet de proposer une lecture analytique adaptée au rôle du lecteur. Par exemple, les utilisateurs d’une application se plaignent de temps de traitements anormalement longs, dois-je ajouter des containers , dois-je redimensionner les containers ? dois-je modifier le code de mes transactions, dois-je changer mon modèle de données ? Les outils d’observabilité permettront de mettre en équations ces paramètres et de trouver la meilleure approche de transformation.

Ainsi le besoin de mettre en place des indicateurs qui réconcilient les besoins de chacun tout en remontant de façon précise à l’origine d’un dysfonctionnement devient possible.

On observe quoi ?

Historiquement, on supervise les composants que l’on connait. On place des seuils qui permettent de remonter des alertes, on garde un œil sur les choses dont on sait qu’elles peuvent mal se passer. Avec l’observabilité, l’accès aux données provenant des 3 piliers permet de détecter des signaux faibles. Cela facilite la mise en œuvre d’algorithmes d’intelligence artificielle afin d’identifier des patterns pas nécessairement connus, des variations de comportements qui peuvent engendrer des incidents et dont on a besoin de trouver l’origine. Le développement des architectures de type micro-services complexifie leur compréhension et donc leur analyse du fait des imbrications importantes entre les composants. L’observabilité permet de regagner en maitrise dans ce cas. Enfin, les solutions d’observabilité intègrent la mesure de l’expérience utilisateur, il est donc possible de contrôler la qualité de service de leur point de vue et d’intervenir de façon proactive en cas de changement de comportement.

On peut observer les performances d’une application, d’un service, d’une infrastructure. On encore la disponibilité d’un serveur, d’un cluster, d’une base de données, d’un container. On peut observer aussi les coûts d’une plateforme ou d’un service cloud. Ce coût est souvent corrélé à l’utilisation réelle des ressources réservées, on parle alors de FinOps. On peut également observer la consommation d’énergie dans le but d’améliorer son empreinte carbone. On peut observer l’accès aux plateformes et aux données pour s’assurer de la confidentialité et du respect des réglementations …

Une solution personnalisable ?

En général, on observe avec les moyens habituels pour la supervision des objets traditionnels, complétés par des outils capables d’observer le comportement des applications modernes. Tous ces outils génèrent une quantité importante de données qu’il faut canaliser dans un bus de données adapté à sa source. Chaque source de données est plus ou moins compatible avec les logiciels d’observabilité et une mise en forme de leur structure, à commencer par la référence temporelle est souvent nécessaire. Afin de préserver la possibilité de faire évoluer les différents composants sans mettre en péril la stabilité de l’ensemble de l’édifice on privilégiera les solutions d’intégration évolutives. Ces solutions d’intégration sont nommées IPaaS. En effet, les outils d’observabilité des applications modernes sont modernes ! Ils sont donc hautement disponibles, élastiques et adressable au travers d’API.

Pourquoi mettre en place de tels outils ?

Leur but est de réduire le nombre d’actions à traiter et de réagir proactivement aux évènements donnant lieu à une action de service. C’est le processus que nous appelons « Zero crisis ». La corrélation des évènements de chaque composant du système d’information permet de répondre à chaque métier en fonction de sa maturité et de ses besoins dans une logique de boucle retour.

Un afflux massif d’utilisateurs produit par un évènement ou par la saisonnalité a-t-il provoqué des lenteurs dans le traitement des requêtes individuelles ? Un changement de version d’un code applicatif aboutit-il à la clôture des requêtes des utilisateurs ? Un seuil d’utilisation a-t-il été atteint, indiquant la nécessité d’augmenter les capacités de la plateforme ? On passe ainsi à l’échelle avec plusieurs livraisons par jour tout en maitrisant la chaine de bout en bout. C’est l’approche qui a été adoptée par netflix, uber, facebook etc.

Tous ces exemples montrent la nécessité de corréler les informations et de travailler tous ensemble à l’observabilité du système d’information.

Les outils sont une chose, les processus, une autre. Une coordination de bout en bout, depuis les lignes métiers jusqu’à la gestion des infrastructures est nécessaire à l’obtention de résultats tangibles et pérennes. C’est un effort quotidien qui peut s’en trouver facilité par l’apport de méthodes agiles au travers des frameworks SAFE™ et SRE (Site Reliability Engineering).