¿Qué es el rastreo distribuido?

Definición de rastreo distribuido

El rastreo distribuido es una técnica utilizada para rastrear y observar las solicitudes de aplicaciones a medida que avanzan a través de sistemas distribuidos o entornos de microservicios.

El rastreo distribuido realiza un seguimiento de estas solicitudes de aplicaciones mediante la recopilación y agregación de datos sobre las interacciones de un usuario a lo largo del proceso de transacción. Esta técnica le proporciona conocimiento sobre el estado de su aplicación y la experiencia general del usuario. Los desarrolladores pueden utilizar esta colección de rastreos para solucionar problemas en áreas donde hay fallos, errores o alta latencia.

Las últimas novedades sobre tecnología, respaldadas por conocimientos de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Cómo funciona el rastreo distribuido?

Ahora que ya tiene una idea de lo que es el rastreo distribuido, vamos a profundizar en su funcionamiento. A diferencia de una aplicación monolítica, los entornos de microservicios se ejecutan en backends distribuidos, lo que dificulta el seguimiento de un recorrido completo de solicitudes. Afortunadamente, el rastreo distribuido puede seguir las acciones de un usuario en cada paso del camino y monitorear cómo afecta a su aplicación desde el front-end hasta el back-end.

El rastreo distribuido comienza instrumentando su arquitectura de microservicios. Puede utilizar herramientas de código abierto como OpenTelemetry para comenzar el proceso de recopilación de instrumentación y telemetría.

A continuación, los desarrolladores deben implementar código en sus servicios para rastrear los datos y etiquetar identificadores únicos para cada transacción. El contexto de rastreo codificado pasa de un servidor a otro a través de todo el entorno de la aplicación. Los identificadores que se adjuntan al recorrido de la transacción dan visibilidad a la experiencia del cliente.

Las herramientas de rastreo distribuido realizan un seguimiento de cada actividad o segmento después de ser activado por un evento mientras viaja a través de un servidor. A medida que se recopila un tramo, pasa al siguiente, y así sucesivamente. Estos tramos suelen comenzar con un tramo principal y pasar a tramos secundarios.

Su herramienta ordenará estas acciones y recopilará métricas relevantes como atributos personalizados, marcas de tiempo y metadatos. Por lo general, una herramienta de rastreo distribuido le ayuda a visualizar estos datos en un gráfico de llamas o en formato de vista en cascada. Estos gráficos ayudan a los ingenieros a interpretar qué partes de un sistema distribuido están experimentando cuellos de botella, ralentizaciones o problemas de rendimiento.

Por último, deberá combinar su herramienta de rastreo distribuido con una plataforma de observabilidad para obtener una monitorización integral de su aplicación. Incluir una plataforma como Instana le ayudará a extraer y procesar datos para que pueda dar los próximos pasos correctos para resolver cualquier error de aplicación.

IBM DevOps

¿Qué es DevOps?

Andrea Crawford explica qué es DevOps, su valor y cómo las prácticas y herramientas de DevOps ayudan a desarrollar las aplicaciones a lo largo de todo el proceso de entrega de software, desde la ideación hasta la producción. El plan de estudios, dirigido por los principales líderes de opinión de IBM, está diseñado para ayudar a los líderes empresariales a adquirir los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

Beneficios y desafíos del rastreo distribuido

La complejidad de la arquitectura moderna ha dificultado que las aplicaciones heredadas monolíticas sirvan a las herramientas que las alojan. Con este reto en mente, el rastreo distribuido se ha convertido en esencial para lograr la observabilidad en entornos nativos de la nube.

Estas son algunas de las principales ventajas del rastreo distribuido:

  • Resolución de problemas más rápido: reduzca drásticamente el tiempo medio de resolución (MTTR) y el tiempo medio de detección (MTTD). Los ingenieros pueden revisar los rastreos distribuidos para encontrar la causa raíz y la ubicación de los errores de la aplicación.

  • Fomento de la colaboración en equipo: en un entorno típico de microservicios, los equipos especializados manejan y desarrollan diferentes tecnologías. Esta situación puede crear confusión entre los equipos si no saben dónde se produjo el error y quién está a cargo de resolverlo. Un enlace de rastreo puede ayudar a los equipos de ingeniería a visualizar los datos para que puedan alertar al desarrollador correcto para que corrija el problema.
     

  • Integración e implementación flexibles: los desarrolladores pueden implementar el rastreo distribuido en casi cualquier entorno nativo de la nube. Las herramientas son compatibles con una amplia gama de lenguajes de programación y aplicaciones.

Cada una de estos beneficios se traduce en mejoras en el rendimiento de las aplicaciones, ya que le proporciona conocimiento cómo gestiona el servidor una solicitud concreta. Aunque el rastreo distribuido tiene muchos beneficios, también hay que tener en cuenta algunos retos.

  • Instrumentación manual: algunas plataformas de rastreo distribuido exigen que los desarrolladores modifiquen su código para empezar a rastrear las solicitudes de los usuarios. El proceso de instrumentación manual requiere muchas horas de trabajo, hace que su aplicación sea más vulnerable a los errores y puede hacer que se pierdan trazas.
     

  • Falta de análisis del front-end: al comprar una herramienta de rastreo distribuido, es importante asegurarse de que tiene una cobertura de principio a fin. Sin esta capacidad, solo tendrá conocimiento sobre el backend sin la experiencia del front-end del usuario final. Esta limitación puede dificultar mucho más la depuración de su aplicación.
     

  • Muestreo: algunas herramientas de rastreo distribuidas utilizan el muestreo arbitrario, que elige al azar las trazas para muestrear y analizar. Como los rastros se eligen al azar y no hay forma de saber qué rastros tienen problemas, los equipos pueden pasar por alto los errores importantes que están presentes.

Aunque pueden surgir algunas dificultades al utilizar un sistema distribuido, los beneficios casi siempre superan a los inconvenientes. Combine su herramienta de rastreo distribuido con Instana para ayudar a solucionar estos retos en tiempo real.

Rastreo distribuido frente a registro

Para comprender la diferencia entre el rastreo distribuido y la información de registro, primero debemos entender qué es un registro. Un registro es una marca de tiempo de un evento que ocurre dentro de un sistema de aplicación. La información de registro es la monitorización de estos eventos importantes identificados por los registros para resaltar comportamientos impredecibles dentro de su aplicación. Si se produce un error, desencadena una respuesta automática y alerta a su equipo de DevOps.

Una de las principales desventajas de la información de registro por sí solo es que no puede proporcionar una visión completa del rendimiento de la aplicación sin rastros.

El rastreo distribuido usa identificadores de seguimiento para seguir las transacciones a través del sistema con contexto. Este contexto le permite encontrar la ubicación exacta de dónde se produjo un error en su sistema. Esta visibilidad en su sistema basado en microservicios reduce el tiempo de respuesta a la detección en todo el panorama de transacciones. Por lo tanto, muchos equipos utilizan el rastreo distribuido y el registro en conjunto para obtener una imagen completa del estado de sus aplicaciones modernas.

Herramientas de rastreo distribuido

Las herramientas de rastreo distribuido suelen soportar la instrumentación, la recopilación de datos y la visualización de los mismos en gráficos de llama. La forma más popular de configurar soluciones de rastreo distribuido es con herramientas de código abierto.

Estas son algunas de las opciones de código abierto más populares disponibles en el mercado:

  • OpenTelemetry: OpenTelemetry ofrece una colección de kits de desarrollo de software (SDK), software de recopilación de datos, API independientes del proveedor y herramientas para instrumentación. Es una combinación de OpenCensus y OpenTracing. Este marco de monitorización del rendimiento para entornos en la nube es una de las herramientas de rastreo distribuido más populares. OTel no incluye herramientas para el análisis o la visualización de datos, pero puede enviar datos de telemetría a aplicaciones de terceros para realizar esta investigación.

  • OpenCensus: OpenCensus fue creado por Google en base a su sistema de rastreo interno. Finalmente se hizo de código abierto y estuvo disponible en bibliotecas multilingües. Puede recopilar y transferir datos a plataformas backend para ayudar a la depuración pero, desafortunadamente, carece de una API para incrustar el software en el código. Esta limitación es una de las principales razones por las que OpenCensus y OpenTracing han sido combinados por la Cloud Native Computing Foundation (CNCF) para crear OpenTelemetry.

  • OpenTracing: OpenTracing es una API independiente del proveedor que ayuda a los desarrolladores a instrumentar el código para el rastreo distribuido. Este proyecto de código abierto está disponible en nueve lenguajes diferentes, incluidos Java, Python y Ruby.

  • Zipkin:  es otro proyecto de código abierto creado por Twitter. Este sistema de rastreo distribuido ayuda a los profesionales de DevOps a recopilar datos importantes de las aplicaciones y a solucionar problemas de latencia en diferentes arquitecturas de servicios. Puede enviar datos a Zipkin mediante Apache, Kafka o HTTP.
  • Jaeger: es el proyecto de código abierto más reciente de esta lista, fue creado por Uber y se integra fácilmente con OpenTracing. Esta herramienta es altamente elástica, lo que la convierte en una gran opción para el rastreo de peticiones a través de un entorno de microservicios. Tanto Zipkin como Jaeger ayudan en la visualización de estadísticas, pero tienen limitaciones cuando se trata de muestrear datos.

Aunque OpenCensus y OpenTracing eran populares en el pasado, recomendamos utilizar OpenTelemetry, Zipkin o Jaeger. Utilice estas herramientas en combinación con una APM o una herramienta de observabilidad como Instana para obtener una claridad total de lo que sucede dentro de su aplicación.

Rastrear cada solicitud en cada servidor con Instana

Para comprender la interacción entre los mensajes que se transmiten entre su aplicación y sus componentes, necesita realizar un seguimiento. Con Instana AutoTrace, nunca se perderá ningún contexto o llamada gracias a nuestras capacidades para capturar cada solicitud y correlacionar trazas de API de código abierto. Instana lo pone fácil a través de su Dynamic Graph.

Optimizamos cada rastreo entre su aplicación, servicio y arquitectura de sistema para ofrecerle una cobertura completa del sistema. Para probar Instana con rastreo distributivo, regístrese en nuestra prueba sin coste de dos semanas para acceder a nuestras funciones.

Soluciones relacionadas
IBM DevOps Accelerate

Automatice la entrega de software para cualquier aplicación en entornos locales, en la nube o en el mainframe.

Explore DevOps Accelerate
Soluciones DevOps

Utilice el software y las herramientas de DevOps para crear, implementar y gestionar aplicaciones nativas de la nube en varios dispositivos y entornos.

Explore las soluciones DevOps
Servicios de consultoría en la nube 

Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de consultoría de nube de IBM. Descubra cómo cocrear soluciones, acelerar la transformación digital y optimizar el rendimiento mediante estrategias de nube híbrida y colaboraciones con expertos.

Servicio en la nube
Dé el siguiente paso

Libere el potencial de DevOps para crear, probar e implementar aplicaciones nativas de la nube seguras con integración y entrega continuas.

Explore las soluciones DevOps Descubra DevOps en acción