Account Connexion
Jump to section

Jaeger, qu'est-ce que c'est ?

Copier l'URL

Jaeger est un logiciel Open Source qui permet de tracer les transactions entre plusieurs services distribués. Il surveille les environnements de microservices complexes et permet d'en résoudre les problèmes.

Le traçage distribué est un moyen d'observer et de comprendre l'ensemble de la chaîne d'événements lors d'une interaction complexe entre des microservices.

Le développement moderne d'applications cloud-native repose sur les microservices, c'est-à-dire des services indépendants qui fournissent chacun une fonction essentielle différente. Lorsqu'un utilisateur lance une requête dans une application, de nombreux services individuels répondent pour produire un résultat.

Dans une application, une requête unique peut appeler des dizaines de services différents qui interagissent les uns avec les autres.Dans de telles conditions, comment les développeurs et les ingénieurs peuvent-ils isoler un problème en cas de panne ou lorsqu'une requête s'exécute au ralenti ? Ils ont besoin de garder une trace de toutes les connexions.

C'est là qu'intervient le traçage distribué. Il est souvent exécuté au sein d'un Service Mesh, qui est un moyen de gérer et d'observer les microservices.

Jaeger utilise le traçage distribué pour suivre le chemin d'une requête au travers des différents microservices. Comme cette solution offre une représentation visuelle des flux d'appels, elle élimine toute supposition.

Que ce soit pour la résolution des problèmes ou l'optimisation, il est utile de disposer d'informations bien organisées. Jaeger inclut des outils de surveillance des transactions distribuées, d'optimisation des performances et de la latence, ainsi que d'analyse de l'origine des problèmes, une méthode de résolution des problèmes.

En tant que projet Open Source, Jaeger s'appuie sur une communauté de centaines de contributeurs. Jaeger repose sur des API OpenTracing et des instruments qui ne dépendent d'aucun fournisseur.

C'est l'entreprise de covoiturage Uber qui a développé le projet Open Source Jaeger en 2015. Il a été accepté en 2017 comme projet d'incubation par la Cloud Native Computing Foundation (CNCF) et a été approuvé en 2019.

Jaeger présente des requêtes d'exécution sous la forme de traces. Une trace montre le chemin des données ou de l'exécution à travers un système. 

Une trace se compose d'au moins un intervalle. Un intervalle est une unité logique de travail dans Jaeger. Chaque intervalle comporte le nom de l'opération, l'heure de début et la durée. Les intervalles peuvent être imbriqués et classés.

Jaeger inclut différents composants qui agissent ensemble pour collecter, stocker et visualiser les intervalles et les traces.

Le client Jaeger comporte des modes d'exécution spécifiques de l'API OpenTracing pour le traçage distribué en fonction du langage. Ils peuvent être utilisés manuellement ou avec différentes structures Open Source.

L'agent Jaeger est un démon réseau qui écoute les intervalles envoyés via le protocole UDP (User Datagram Protocol). Cet agent doit être placé sur le même hôte que l'application instrumentée. Il est généralement mis en place via un proxy sidecar dans des environnements conteneurisés comme Kubernetes.

Le collecteur Jaeger reçoit les intervalles et les place dans la file d'attente en vue de leur traitement.

Les collecteurs ont besoin d'un système de stockage back-end persistant. Jaeger dispose donc également d'un module de stockage des intervalles. 

Query est un service qui récupère les traces depuis l'espace de stockage.

La console Jaeger est une interface utilisateur qui vous permet de visualiser toutes vos données de traçage distribué.

Jaeger est installé par défaut avec la solution Red Hat® OpenShift® Service Mesh qui inclut la mise en œuvre d'Istio, un Service Mesh Open Source.

La mise en œuvre du traçage distribué offre plusieurs avantages. Jaeger est compatible avec Kiali, une console d'observation pour Istio. Le back-end de Jaeger est conçu pour être hautement évolutif sans point individuel de défaillance. Jaeger peut relier des données de différents composants pour créer une trace complète de bout en bout. Jaeger est également rétrocompatible avec Zipkin.

Pour aller plus loin

ARTICLE

Les microservices comme technologie d'intégration dans le secteur de la santé

Les microservices permettent aux développeurs, notamment ceux du secteur de la santé, de créer des applications qui sont constituées de services faiblement couplés, ce qui facilite les étapes de développement, de test, de déploiement et de mise à niveau.

ARTICLE

Les microservices, qu'est-ce que c'est ?

Les microservices désignent une approche architecturale du développement d'applications selon laquelle les différentes parties d'une application fonctionnent en synergie tout en étant séparées.

ARTICLE

Un Service Mesh, qu'est-ce que c'est ?

Un Service Mesh est une couche d'infrastructure comprise dans une application qui permet de documenter les interactions entre les services, pour simplifier l'optimisation des communications et réduire les temps d'arrêt.

En savoir plus sur les microservices

Produits

Red Hat OpenShift

Plateforme de conteneurs Kubernetes pour les entreprises qui automatise l'exploitation de toute la pile pour la gestion des déploiements multicloud, de clouds hybrides et d'edge computing.

Ressources

Livre numérique

La voie vers les applications natives pour le cloud

Livre numérique

Apprendre la danse à un éléphant : synthèse

Formations

Cours gratuit

Développement d'applications cloud-native avec des architectures de microservices

Illustration - mail

Ce type de contenu vous intéresse ?

Inscrivez-vous à notre newsletter Red Hat Shares.