¿Qué es el seguimiento distribuido?

Definición de trazado distribuido

El seguimiento distribuido es una técnica que se usa para rastrear y observar las solicitudes de aplicaciones a medida que se desplazan a través de sistemas distribuidos o entornos de microservicios.

El seguimiento 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 brinda insights sobre el estado de su aplicación y la experiencia general del usuario. Luego, los desarrolladores pueden usar esta colección de seguimientos para solucionar problemas en áreas donde hay errores o latencia alta.

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

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

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. 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 seguimiento distribuido?

Ahora que tiene una idea de lo que es el seguimiento distribuido, profundicemos en cómo funciona. 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 seguimiento 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 seguimiento distribuido comienza con la instrumentación de la arquitectura de microservicios. Puede usar 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 de seguimiento y etiquetar identificadores únicos para cada transacción. El contexto de seguimiento codificado pasa de un servidor a otro en todo el entorno de la aplicación. Los identificadores que se anexaron al recorrido de la transacción dan visibilidad a la experiencia del cliente.

Las herramientas de seguimiento distribuido rastrean cada actividad o segmento luego de ser activado por un evento mientras viaja a través de un servidor. A medida que se recopila un tramo, se pasa al siguiente, y así sucesivamente. Estos intervalos generalmente comienzan con un intervalo principal y pasan a intervalos 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 seguimiento 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 seguimiento distribuido con una plataforma de observabilidad para obtener un monitoreo integral de su aplicación. Incluir una plataforma como Instana lo ayudará a extraer y procesar datos para que pueda dar los siguientes pasos correctos a fin de resolver cualquier error de aplicación.

IBM DevOps

¿Qué es DevOps?

Andrea Crawford explica qué es DevOps, el valor de DevOps y cómo las prácticas y herramientas de DevOps le ayudan a mover sus aplicaciones a través de todo el delivery pipeline, desde la ideación hasta la producción. Dirigido por los principales líderes de pensamiento de IBM, el programa de estudio 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 seguimiento distribuido

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

Estos son algunos de los principales beneficios del seguimiento distribuido:

  • Solucionar problemas más rápido: reduzca drásticamente el tiempo medio de resolución (MTTR) y el tiempo medio de descubrimiento (MTTD). Los ingenieros pueden revisar los seguimientos distribuidos para encontrar la causa principal y la ubicación de los errores de la aplicación.

  • Impulsar 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 ocurrió el error y quién está a cargo de resolverlo. Un enlace de seguimiento puede ayudar a los equipos de ingeniería a visualizar los datos a fin de que puedan alertar al desarrollador correcto para que arregle el problema.
     

  • Integración e implementación flexibles: los desarrolladores pueden implementar el seguimiento 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 uno de estos beneficios conduce a mejoras en el rendimiento de las aplicaciones, ya que le brinda insights sobre cómo su servidor maneja una sola solicitud. Si bien el seguimiento distribuido tiene muchos beneficios, también hay algunos desafíos que debe tener en cuenta.

  • Instrumentación manual: algunas plataformas de seguimiento distribuido requieren que los desarrolladores modifiquen su código para comenzar a rastrear las solicitudes de los usuarios. El proceso de instrumentación manual requiere muchas horas de trabajo, deja su aplicación más vulnerable a errores y puede concluir en seguimientos faltantes.
     

  • Falta de análisis front-end: al comprar una herramienta de seguimiento distribuido, es importante cerciorarse de contar con una cobertura de extremo a extremo. Sin esta capacidad, solo tendrá insights sobre el backend sin la experiencia del front-end del usuario final. Esta limitación puede hacer que sea mucho más difícil depurar la aplicación.
     

  • Ejemplificación: algunas herramientas de seguimiento distribuido emplean ejemplificación arbitraria, que elige aleatoriamente seguimientos para tomar muestras y analizar. Dado que los seguimientos se seleccionan al azar y no hay forma de saber qué seguimientos tendrán problemas, los equipos pueden pasar por alto errores importantes que están presentes.

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

Seguimiento distribuido vs. registro

Para comprender la diferencia entre el seguimiento distribuido y el registro, primero debemos explicar qué es un registro. Un registro es una marca de tiempo de un evento que ocurre dentro de un sistema de aplicación. El registro consiste en monitorear estos eventos importantes identificados por registros para resaltar comportamientos impredecibles dentro de su aplicación. Si se produce un error, se activa una respuesta automática y se alerta a su equipo de DevOps.

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

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

Herramientas de seguimiento distribuido

Las herramientas de seguimiento distribuido suelen admitir instrumentación, recopilación de datos y visualización de datos en gráficos de llamas. La forma más popular de configurar soluciones de seguimiento 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 monitoreo de rendimiento para entornos de nube es una de las herramientas de seguimiento distribuido más populares. OTel no incluye herramientas para analizar o visualizar datos, pero puede enviar datos de telemetría a aplicaciones de terceros para realizar esta investigación.

  • OpenEnsus: Google creó OpenEnsus con base en su sistema de seguimiento interno. Con el tiempo, se convirtió en código abierto y estuvo disponible en bibliotecas multilingües. Puede recopilar y transferir datos a plataformas de backend para ayudar con 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 la Cloud Native Computing Foundation (CNCF) combinó OpenCensus y OpenTracing para crear OpenTelemetry.

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

  • Zipkin: Zipkin es otro proyecto de código abierto creado por Twitter. Este sistema de seguimiento 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 informar datos a Zipkin mediante Apache, Kafka o HTTP.
  • Jaeger: Jaeger es el proyecto de código abierto más nuevo de esta lista, lo creó Uber y se integra fácilmente con OpenTracing. Esta herramienta es altamente elástica, por lo que es una gran opción para el seguimiento de solicitudes a través de un entorno de microservicios. Zipkin y Jaeger ayudan en la visualización de estadísticas pero tienen limitaciones cuando se trata de muestrear datos.

Si bien OpenCensus y OpenTracing fueron populares en el pasado, recomendamos usar OpenTelemetry, Zipkin o Jaeger. Emplee 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.

Dé seguimiento a cada solicitud en todos los servidores con Instana

Para comprender la interacción entre los mensajes pasados entre la aplicación y sus componentes, es necesario realizar un seguimiento. Con Instana AutoTrace, nunca se perderá ningún contexto ni llamada debido a nuestras capacidades para capturar cada solicitud y correlacionar los seguimientos de las API de código abierto. Instana lo hace fácil a través de su gráfico dinámico.

Optimizamos cada seguimiento entre su aplicación, servicio y arquitectura de sistema para brindarle una cobertura completa del sistema. Para probar Instana con seguimiento distributivo, regístrese a nuestra prueba gratis de dos semanas para acceder a nuestras características.

Soluciones relacionadas
IBM DevOps Accelerate

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

Explorar DevOps Accelerate
Soluciones de DevOps

Utilice el software y las herramientas de DevOps para crear, desplegar y gestionar aplicaciones nativas de la nube en múltiples dispositivos y entornos.

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

Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de IBM de asesoramiento sobre la nube. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.

Servicios en la nube
Dé el siguiente paso

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

Conozca las soluciones de DevOps Descubra las DevOps en acción