L’observabilité est la capacité de mesurer et de déduire l’état actuel d’un système sur la base des données qu’il génère. Ces données se présentent généralement sous la forme de journaux, d’indicateurs et de traces. À titre d’exemple, vous pouvez observer l’état de votre application de microservices en examinant ses métriques.
Grâce à la collecte, au stockage et à l’analyse des données, les développeurs sont en mesure d’identifier et de résoudre les problèmes liés à leurs systèmes.
L’observabilité commence par la collecte de données en temps réel. Les données collectées sont ensuite stockées dans un emplacement centralisé pour être analysées. Cette analyse peut être effectuée au moyen d’un algorithme d’apprentissage automatique, d’une visualisation ou d’une combinaison de techniques statistiques.
Le résultat de cette analyse signale aux développeurs toute anomalie au sein d’une application ou d’un système. Les alertes peuvent être automatisées et déclenchées en fonction de seuils établis, de niveaux de gravité ou d’autres critères basés sur les besoins de l’entreprise ou de l’application. Une fois l’anomalie identifiée et localisée, les développeurs peuvent utiliser les données pour déboguer et résoudre le problème.
Comme indiqué ci-dessus, les principaux types de données d’observabilité sont les journaux, les indicateurs et les traces.
La surveillance est la capacité d’observer et de vérifier la progression des processus qui se déroulent au sein d’un système ou d’une application. La surveillance s’appuie fortement sur des indicateurs. En bref, elle fournit une visualisation de l’environnement et vous permet de tester des problèmes connus. L’observabilité, quant à elle, fournit des données nouvelles et plus approfondies qui vous permettent de déduire qu’un problème peut exister. Vous pouvez ensuite plonger dans la cause du problème pour obtenir des informations sur l’avenir.
La surveillance et l’observabilité ne sont pas des notions distinctes, mais plutôt des options d’analyse des données et des techniques de visualisation qui permettent aux développeurs d’obtenir des informations plus rapidement.
Une fois ces définitions établies, le tableau ci-dessous examine de plus près quatre différences subtiles entre la surveillance et l’observabilité dans les applications logicielles, à savoir la portée, la granularité, la flexibilité et l’analyse.
Supervision | Observabilité | |
---|---|---|
Portée | Mesure des indicateurs (par exemple, le temps de fonctionnement du système, l’utilisation de l’unité centrale, les taux d’erreur) | Compréhension des mécanismes du système à l’œuvre sur la base de leurs résultats |
Granularité |
Agrégation ou échantillonnage des données collectées à un rythme régulier (sur la base d’indicateurs prédéfinis) |
Collecte et analyse des données granulaires afin de mieux comprendre le comportement du système |
Flexibilité |
Mise en place de tableaux de bord ou de seuils d’alerte prédéfinis difficiles à modifier une fois déployés |
Utilisation d’une approche souple et adaptable avec des outils faciles à modifier pour s’adapter à l’évolution des situations et des besoins |
Analyse |
Identification et réaction à des événements ou anomalies spécifiques |
L’accent est mis sur l’analyse proactive et le dépannage en donnant aux développeurs les outils dont ils ont besoin pour identifier la cause d’un problème et mettre en œuvre des solutions au fil du temps |
La télémétrie dans l’observabilité des logiciels fait référence à la pratique consistant à collecter et à transmettre des données sur les performances et le comportement d’un système logiciel en temps réel. Ces données (temps de réponse, taux d’erreur, consommation de ressources, etc.) sont utilisées pour surveiller et comprendre l’état actuel du système, et aider les développeurs à identifier les possibilités d’amélioration des performances.
Dans les conversations sur la télémétrie, OpenTelemetry (OTel) devient souvent un sujet de discussion parce qu’il offre une approche simplifiée pour rendre l’observabilité plus facile pour les développeurs. OTel est un ensemble d’outils et de bibliothèques open source qui normalisent la collecte de données de télémétrie (journaux, indicateurs et traces) à partir de systèmes logiciels.
Pour en savoir plus sur OTel et son impact sur le paysage « cloud-native », consultez l’article How OpenTelemetry Is Changing the Way We Trace and Design Apps (en anglais).
L’observabilité permet aux développeurs de mieux comprendre leurs applications, ce qui permet :
L’observabilité présente quelques inconvénients, dont les plus courants sont les suivants :
NGINX est fier de fournir des ressources éducatives gratuites supplémentaires sur l’observabilité et OTel :