Les équipes logicielles disposent aujourd'hui de nombreuses technologies pour déployer plus fréquemment et efficacement leur code en production, que ce soit les microservices, le Cloud, les containers, le serverless ou encore le DevOps. Malgré de réels avantages, ces approches induisent également davantage de complexité, de volatilité et de fragmentation, en particulier pour garantir la disponibilité, la qualité, la performance et l’expérience utilisateur des applications. 

En répondant à ces nouveaux défis en adaptant les méthodes de monitoring aux nouveaux paradigmes, l’Observabilité connaît un succès grandissant auprès des équipes logicielles et DevOps. Elle permet de maîtriser proactivement et en temps réel les performances de l'activité digitale, d'accélérer l'innovation et les déploiements logiciels, et de diminuer la charge de travail et les coûts, grâce à une vue connectée de toutes les données de télémétrie et de performance dans un seul endroit. C'est en ayant une compréhension profonde et partagée des données et des systèmes qu'il est possible d'améliorer la transparence, la culture d'entreprise et favoriser la croissance.

Aller au-delà du monitoring avec l'observabilité

L’observabilité s’appuie sur la collecte, la visualisation et l’analyse exhaustive de la télémétrie d’un système au sein du cycle logiciel.  Le monitoring se limite à informer simplement de ‘quand’ une anomalie se produit, mais l’observabilité permet de comprendre ‘pourquoi’ cette anomalie survient. Cette dimension supplémentaire procure aux équipes plus de rapidité et d'efficacité dans les situations d'urgence et les aide à améliorer le suivi à long terme de la performance de leurs applications. Pour cela, l’observabilité nécessite l’intégration de trois composantes essentielles : la collecte exhaustive et granulaire des données de télémétrie, la corrélation et la contextualisation des données, la visualisation et l’actionnabilité des données. 

Rendre la télémétrie exhaustive et granulaire grâce à l'instrumentation

L’observabilité apporte des réponses aux enjeux actuels de complexité des architectures en microservices, de fréquence accrue des déploiements logicielles et de volatilité des infrastructures cloud en containers. Elle s'appuie, pour cela, sur une instrumentation exhaustive et ouverte de l’ensemble de l’architecture, et collecte la télémétrie de l’infrastructure, des machines virtuelles et des containers, des clusters Kubernetes, du middleware et du logiciel, dans le Cloud ou non, en mode PaaS ou non.

Elle collecte, de façon exhaustive et ouverte, quatre types de télémétrie complémentaires : ‘Métriques’, ‘Evénements’, ‘Logs’ et ‘Traces’ (M.E.L.T.), en utilisant des outils Opensource, dont Prometheus, Telegraf, StatsD, DropWizard ou Micrometer pour les métriques, Jaeger ou Zipkin pour les traces, Fluentd, Fluent Bit ou Logstash pour la collecte, le filtrage et l’export des logs. L'interopérabilité de tous les types de donnée et de télémétrie est guarantie, quelle qu'en soit la source, en créant automatiquement des entités et connexions entre elles. 

Connecter, contextualiser et faire de la curation

L'analyse en temps réel des données de télémétrie est nécessaire pour construire un modèle des ‘entités’ qui les génèrent et établir des connexions logiques entre elles pour visualiser et comprendre ce système complexe et dynamique, grâce, par exemple, à une cartographie des appels entre microservices.

La curation des données, réalisée par des visualisations et des parcours utilisateurs pré-établis et optimisés, aide à identifier les principaux marqueurs de santé et de performance. La curation simplifie l'identification, l'isolement et la résolution des problèmes pour le SRE ou le développeur DevOps en déterminant rapidement la cause. 

La centralisation sur une plateforme de télémétrie permet d'utiliser des techniques d’intelligence artificielle sur ces grands volumes de données, pour détecter des profils de comportement, des anomalies et des corrélations qui échapperaient à un regard humain. A nouveau, cela permet d'améliorer la détection automatique et précoce des incidents. Nommé AIOps par Gartner, ce champ permet d'améliorer les capacités d’anticipation et de résolution des équipes DevOps, et réduire sensiblement la fatigue liée au bruit généré par les alertes. 

Visibilité, actionnabilité et programmabilité

L'observabilité améliore aussi la visibilité sur les données et les rends actionnables grâce à des ‘alertes’, générées automatiquement par l'intelligence artificielle, qui préviennent l'équipe de la survenue d'un problème, et des ‘tableaux de bord’, outils qui regroupent des visualisations paramétrables ad hoc, s’appuyant sur un langage d’interrogation et d’analyse dimensionnelle. Ils permettent un rapprochement des données de télémétrie, métier et business, offrant ainsi un suivi précis en temps réel de la performance du système et du business. Ces tableaux de bord permettent aux équipes de collaborer de façon poussée et personnalisée, d’anticiper les problèmes et d'optimiser la performance.

Face à la diversité des métiers, des processus et des indicateurs spécifiques à chaque entreprise, il est nécessaire de dépasser les tableaux de bord et d’autoriser les entreprises à construire de véritables applications. La programmabilité d’une plateforme d’observabilité offre à ses utilisateurs la liberté de construire leurs propres représentations et combinaisons des données, et de sophistiquer les formes d’interactivité et de traitement. Par extension, les entreprises y gagnent en termes d'investissements logiciels et de mesure en temps réel de l'efficacité, leur permettant ainsi de prendre des décisions objectives qui maximisent ses performances. 

Avec la transformation digitale, les attentes sont plus fortes envers les équipes en termes d'innovation des pratiques DevOps, d'adoption des infrastructure et technologies logicielles modernes, et de la guarantie d'une performance et d'une expérience utilisateur maîtrisées. L’observabilité est une des technologies nécessaires pour atteindre et maintenir un niveau optimal de vélocité et de performance, se différencier de la compétition et répondre aux attentes des clients et des usagers. 

Par Grégory Ouillon, CTO EMEA, New Relic