Jump to section

¿Qué es Jaeger?

Copiar URL

Jaeger es un sistema de software open source que sirve para detectar operaciones entre los servicios distribuidos. Se utiliza para supervisar entornos complejos de microservicios y solucionar los problemas asociados a ellos.

El rastreo de entornos distribuidos es una forma de ver y comprender toda la cadena de eventos en una interacción compleja entre microservicios.

El desarrollo moderno de software nativo de la nube se basa en los microservicios, es decir, en servicios independientes que ofrecen una función central distinta. Cuando un usuario realiza una solicitud en una aplicación, muchos servicios individuales responden para generar cierto resultado.

Una sola llamada en una aplicación puede generar la respuesta de muchos servicios diferentes que interactúan entre sí.Para que los desarrolladores y los ingenieros puedan aislar un problema cuando se genera una falla o cuando una solicitud se ejecuta con lentitud, es necesario realizar un seguimiento de todas las conexiones.

Ahí es donde interviene el rastreo de entornos distribuidos. Normalmente, se ejecuta como parte de una malla de servicios, que es una forma de gestionar y observar los microservicios.

Jaeger utiliza el rastreo de entornos distribuidos para seguir la ruta de una solicitud a través de los diferentes microservicios. En lugar de adivinar, podemos observar una representación visual de los flujos de la llamada.

La información organizada sobre las operaciones es útil para la depuración y la optimización de los servicios. Jaeger incluye herramientas para supervisar las operaciones de los entornos distribuidos, optimizar el rendimiento y la latencia, y realizar un análisis de la causa raíz (RCA), que es un método para la resolución de problemas.

Dado que Jaeger es un proyecto open source, se beneficia de una comunidad de cientos de colaboradores. Jaeger se basa en el uso de herramientas de instrumentación y de API de OpenTracing que no dependen de ningún proveedor en particular.

En 2015, la empresa de transporte compartido Uber desarrolló Jaeger como un proyecto open source. En 2017, la fundación Cloud Native Computing Foundation (CNCF) lo aceptó como un proyecto "en incubación" y, en 2019, pasó a estar dentro de la categoría de proyectos "graduados".

Jaeger presenta las solicitudes de ejecución como rastreos. Un rastreo muestra la ruta de ejecución/datos que se genera a través de un sistema. 

Este se compone de uno o varios intervalos, que son unidades lógicas de trabajo en Jaeger. Todos los intervalos incluyen el nombre de la operación, la hora de inicio y la duración. Los intervalos pueden agruparse y ordenarse.

Jaeger incluye varios elementos que funcionan en conjunto para recopilar, almacenar y visualizar intervalos y rastreos.

Jaeger Client incluye implementaciones específicas del lenguaje de la API de OpenTracing para el rastreo de entornos distribuidos. Estas pueden utilizarse de forma manual o con varios marcos open source.

Jaeger Agent es un daemon de red que está al tanto de los intervalos que se envían a través del Protocolo de datagramas de usuario. El agente debe colocarse en el mismo host que la aplicación instrumentada. Por lo general se implementa mediante un sidecar en entornos de contenedores, como Kubernetes.

Jaeger Collector recibe los intervalos y los coloca en una cola para procesarlos.

Los recopiladores requieren un backend de almacenamiento permanente, así que Jaeger también cuenta con un mecanismo con capacidad de conexión para el almacenamiento de los intervalos. 

Query es un servicio que recupera los rastreos del almacenamiento.

Jaeger Console es una interfaz de usuario que le permite visualizar los datos que se obtienen del rastreo de entornos distribuidos.

Jaeger se instala de forma predeterminada como parte de Red Hat® OpenShift® Service Mesh, que incluye una implementación de Istio (una malla de servicios open source).

Los beneficios de esta implementación de rastreo de entornos distribuidos son muchos y variados. Jaeger se integra con Kiali, una consola con capacidad de observación para Istio. El backend de Jaeger está diseñado para ofrecer mayor escalabilidad sin ningún punto único de falla. Jaeger puede conectar los datos provenientes de los distintos elementos para crear un rastreo completo e integral. También es compatible con las versiones anteriores de Zipkin.

Articulos relacionados

ARTÍCULO

Los microservicios respaldan la integración de la TI en el sector de la salud

Los microservicios permiten que los desarrolladores de varios sectores, como el de la salud, creen aplicaciones compuestas por servicios sin conexión directa, lo cual facilita los procesos de desarrollo, prueba, implementación y actualización.

ARTÍCULO

¿Qué son los microservicios?

Los microservicios son un tipo de arquitectura que permite diseñar aplicaciones cuyos elementos funcionan de forma independiente pero coordinada.

ARTÍCULO

¿Qué es una malla de servicios?

Una malla de servicios es una capa de infraestructura que se integra con las aplicaciones y documenta la interacción entre los servicios, lo cual permite optimizar la comunicación y evitar el downtime con facilidad.

Más información sobre los microservicios

Illustration - mail

Obtenga más contenido como este

Suscríbase a nuestro boletín informativo: Red Hat Shares.