Qu'est-ce que l'observabilité ?

L'observabilité consiste à collecter, visualiser et appliquer l'AI à tous vos événements, métriques, logs et traces de manière proactive afin de comprendre le comportement de vos systèmes numériques complexes.

Décrite de façon simple, l'observabilité représente votre capacité à comprendre le système à partir des opérations qu'il effectue. Selon la théorie de contrôle, l'observabilité correspond à la manière dont les ingénieurs peuvent déduire les états internes d'un système à partir des connaissances tirées des sorties externes de celui-ci. Étendue aux domaines de l'IT, des logiciels et du cloud computing, l'observabilité est un moyen pour les ingénieurs de comprendre l'état actuel d'un système à partir des données qu'il génère. Pour complètement saisir l'état du système, vous devez proactivement collecter les bonnes données, puis les visualiser et appliquer l'AI.

En anglais, l'abréviation « o11y » est souvent utilisée à la place de « observability », le 11 représente le nombre de lettres entre le o et le y. (Anecdote : c'est aussi pour cela que l'on trouve souvent « k8s » pour Kubernetes !) Toutefois, cette façon d'abréger les mots n'est pas encore aussi largement employée en français qu'en anglais.

L'observabilité permet aux ingénieurs d'avoir une approche proactive de l'optimisation de leurs systèmes. Elle offre une vue connectée en temps réel de toutes les données opérationnelles du système informatique ainsi que la possibilité de poser des questions à la volée sur les applications et l'infrastructure, ce qui vous permet d'obtenir les réponses dont vous avez besoin quand vous en avez besoin.

Pourquoi l’observabilité est-elle importante ?

Les systèmes modernes se transforment en microservices complexes, open source, cloud natifs, opérant sur des clusters Kubernetes. Ils sont développés et déployés plus rapidement que jamais par des équipes distribuées. Grâce aux DevOps, aux livraisons continues et au développement agile, l'ensemble du processus de distribution des logiciels est plus rapide que jamais, ce qui peut rendre plus difficile la détection immédiate des problèmes.

À l'époque des ordinateurs centraux et des opérations statiques, lorsque quelque chose n'allait pas, il était assez simple d'en connaître la raison et les dashboards statiques préconfigurés alertaient l'opérateur du problème. Ces systèmes échouaient tous, encore et encore, de manière similaire.

Avec la complexité grandissante des systèmes, les outils de monitoring essayaient de faire la lumière sur les performances des logiciels. Vous pouviez suivre les performances des applications avec les données de monitoring et les analyses de séries chronologiques. Ce processus était relativement gérable.

Prévisions sur l'observabilité 2021
Prévisions sur l'observabilité 2021
L'enquête la plus complète du secteur sur l'observabilité
Télécharger le rapport Télécharger le rapport

Aujourd'hui, les causes possibles d'échec sont nombreuses et peuvent sembler infinies, surtout si vous fixez l'écran en sentant la frustration monter. Le serveur est-il en panne ? Le prestataire cloud subit-il une interruption de ses services ? Quelqu'un a-t-il envoyé du nouveau code qui a un impact sur le comportement de l'utilisateur final ?

Lorsque l'on travaille sur ces systèmes complexes et distribués, il est quasiment impossible d'identifier un maillon brisé de la chaîne sans solution d'observabilité. Maintenant que les architectures de microservices sont devenues courantes, les responsabilités sont réparties entre les équipes. Il n'y a pas de propriétaire d'application distinct et de nombreuses équipes doivent être impliquées. Les équipes doivent comprendre, analyser et dépanner les domaines d'application qui ne leur appartiennent pas nécessairement. Vous avez besoin d'un tracing distribué, qui vous permet de faire le suivi des demandes (et les goulots d'étranglement) dans les différentes sections d'un système distribué.

Observabilité et monitoring

Le monitoring classique ne vous aidera pas à réussir dans le monde complexe des microservices et des systèmes distribués. Il ne peut que faire le suivi des inconnues connues. En d'autres termes, les questions que vous savez qu'il faut poser à l'avance (par exemple : « Quel est le débit de mon application ? », « À quoi ressemble la capacité de calcul ? », « Recevoir des alertes lorsque je dépasse un certain nombre d'erreurs »). L'observabilité vous donne la possibilité de non seulement savoir que quelque chose ne va pas, mais aussi de comprendre pourquoi. Elle vous donne la flexibilité de comprendre les schémas auxquels vous n'aviez pas pensé auparavant, les inconnues inconnues.

L'observabilité est en fait la méthode qui vous permet de mieux comprendre votre système complexe, et le monitoring vous permet de soutenir cette méthode. En effet, l'observabilité n'élimine pas le besoin de monitoring, mais celui-ci devient simplement l'une des techniques utilisées pour atteindre l'observabilité. 

Pour plonger dans les spécificités du monitoring des performances des applications, reportez-vous à Qu'est-ce que l'APM ?

Quels sont les éléments essentiels de l’observabilité ?

L'observabilité des systèmes numériques est composée de 4 éléments essentiels :

  1. L'instrumentation open source. L'instrumentation utilise le code (les agents) pour faire le suivi et mesurer les données qui passent dans votre application logicielle. L'instrumentation open source collecte les données télémétriques provenant des entités open source ou de celles qui sont spécifiques au fournisseur produisant ces données. Les données télémétriques comprennent notamment les métriques, événements, logs et traces (également appelés MELT). Les entités peuvent inclure, par exemple, les services, hôtes, applications et conteneurs.
  2. La corrélation et le contexte.  Il est essentiel de comprendre la situation dans son ensemble, en particulier pour les grandes applications d'entreprise contenant d'énormes quantités de données télémétriques brutes. Les données télémétriques collectées doivent être analysées pour établir les corrélations et le contexte, afin que les humains puissent comprendre les schémas et les anomalies qui apparaissent.
  3. La programmabilité. Les organisations ont besoin de la flexibilité nécessaire pour créer leurs propres contextes et méthodes de conservation avec des applications personnalisées basées sur leurs objectifs métier uniques.
  4. Les outils AIOps.Pour que votre infrastructure moderne soit toujours disponible, vous devez accélérer la réponse aux incidents. Les solutions AIOps utilisent les modèles d'apprentissage machine pour automatiser les processus d'opérations IT tels que la corrélation, l'agrégation et la priorisation des données sur les incidents. Ces outils vous aident à éliminer les fausses alarmes, à détecter les problèmes de manière proactive et à améliorer le temps moyen de résolution (MTTR).

Quels sont les avantages de l’observabilité ?

Les outils d'observabilité permettent aux ingénieurs et aux développeurs de créer de meilleures expériences pour les clients malgré la complexité croissante de l'entreprise numérique. Grâce à l'observabilité, vous pouvez collecter, explorer, alerter et corréler tous les types de données télémétriques.

L'observabilité permet d'améliorer l'efficacité opérationnelle et de stimuler l'innovation et la croissance. Par exemple, une équipe peut utiliser une plateforme d'observabilité pour comprendre les incidents critiques qui se sont produits et empêcher qu'ils ne se reproduisent, ce qui réduit les temps d'arrêt et améliore le MTTR.

Lorsqu'une nouvelle version est publiée, l'équipe peut observer les performances de l'application et examiner en détail les raisons pour lesquelles le taux d'erreurs augmente ou la latence de l'application s'accroît. Elle peut voir sur quel nœud particulier se trouve le problème. Pour découvrir d'autres exemples, organisés en 10 principes d'observabilité, consultez le Manifeste de l'observabilité pour le 21e siècle.

Les autres avantages de l'observabilité :

  • Une source factuelle unique pour les données opérationnelles.
  • Des temps de disponibilité et de performances vérifiés.
  • L'intelligibilité en temps réel des fluctuations des performances de votre activité numérique.
  • Une meilleure collaboration entre les équipes permettant un dépannage et une résolution des problèmes plus rapides.
  • La culture de l'innovation.
  • Une plus grande efficacité opérationnelle qui permet de produire des logiciels de grande qualité à grande échelle, accélérant ainsi la mise sur le marché.
  • Des détails précis pour prendre de meilleures décisions commerciales datadriven et optimiser les investissements.

Les prévisions 2021 sur l'observabilité ont révélé que si 90 % des participants estiment que l'observabilité est importante et stratégique pour leur activité, seuls 26 % d'entre eux ont déclaré que leur pratique de l'observabilité était mature. La moitié seulement des quelque 1 300 ingénieurs logiciels, développeurs et responsables informatiques interrogés a indiqué que leur entreprise était en train de mettre l'observabilité en place.

L'observabilité est essentielle, mais il reste encore dans la plupart des entreprises une large marge d'améliorations.

Qui utilise l'observabilité?

Les équipes SRE et celles des opérations IT sont chargées d'assurer le fonctionnement des systèmes complexes (les applications sur lesquelles les utilisateurs comptent), mais l'observabilité est l'affaire de tous pendant le cycle de développement du logiciel. 

Les équipes IT utilisent l'observabilité pour comprendre l'état de santé, les performances et le statut des systèmes informatiques, y compris quand et pourquoi les erreurs se sont produites. En examinant les sorties d'un système, telles que les métriques, les événements, les logs et les traces, les ingénieurs peuvent savoir si la performance de ce système est adéquate.

Observabilité et DevOps

Avec les microservices, la fréquence des déploiements a augmenté de façon spectaculaire. Trop de changements se produisent pour que l'on puisse raisonnablement attendre des équipes qu'elles prédéfinissent tous les modes de défaillance possibles dans leurs environnements. En effet, il ne s'agit pas seulement du code des applications, mais aussi de l'infrastructure, du comportement et de la demande des consommateurs. 

L'observabilité donne aux équipes DevOps la flexibilité dont elles ont besoin pour tester leurs systèmes en production, poser les questions et étudier les problèmes qu'elles ne pouvaient pas prévoir au départ.

L'observabilité aide les équipes DevOps à :

  • Établir des SLO clairs et implémenter l'instrumentation pour préparer et collaborer vers une réussite mesurable.
  • Rassembler les équipes autour de dashboards, orchestrer les réponses et mesurer les effets de chaque changement pour améliorer les pratiques DevOps.
  • Suivre les progrès, analyser les dépendances applicatives et les ressources de l'infrastructure, et trouver des moyens de toujours améliorer l'expérience des utilisateurs avec le logiciel.

Pour une bonne pratique DevOps, consultez l'eBook Bien utiliser DevOps.