O que é rastreamento distribuído?

Definição de rastreamento distribuído

O rastreamento distribuído é uma técnica usada para rastrear e observar solicitações de aplicação à medida que elas se movem através de sistemas distribuídos ou ambientes de microsserviços.

O rastreamento distribuído monitora essas solicitações de aplicação coletando e agregando dados sobre as interações do usuário ao longo do processo de transação. Essa técnica fornece insights sobre a integridade de sua aplicação e a experiência geral do usuário. Os desenvolvedores podem então usar essa coleção de rastreamentos para solucionar áreas onde há bugs, erros ou alta latência.

As mais recentes notícias de tecnologia, corroboradas por insights de especialistas.

Mantenha-se atualizado sobre as tendências mais importantes e fascinantes do setor em IA, automação, dados e muito mais com o boletim informativo da Think. Consulte a declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua inscrição será entregue em inglês. Você pode encontrar um link para cancelar a inscrição em todos os boletins informativos. Você pode gerenciar suas inscrições ou cancelar a inscrição aqui. Consulte nossa declaração de privacidade da IBM para obter mais informações.

Como o rastreamento distribuído funciona?

Agora que você tem uma ideia do que é o rastreamento distribuído, vamos conhecer a fundo como ele funciona. Ao contrário de uma aplicação monolítica, os ambientes de microsserviços rodam em back-ends distribuídos, tornando mais difícil rastrear toda a jornada de uma solicitação. Felizmente, o rastreamento distribuído pode seguir as ações de um usuário em cada etapa e monitorar como isso afeta sua aplicação, do front-end ao back-end.

O rastreamento distribuído começa instrumentando sua arquitetura de microsserviços. Você pode usar ferramentas de código aberto como o OpenTelemetry para iniciar o processo de instrumentação e coleta de telemetria.

Em seguida, os desenvolvedores precisam implementar código em seus serviços para rastrear dados de rastreamento e anexar identificadores únicos a cada transação. O contexto de rastreamento codificado passa de um servidor para outro em todo o ambiente da aplicação. Os identificadores que se anexam à jornada da transação dão visibilidade sobre a experiência do cliente.

As ferramentas de rastreamento distribuído rastreiam cada atividade ou segmento após serem acionadas por um evento enquanto viajam através de um servidor. À medida que um intervalo é coletado, ele passa para o próximo, e assim por diante. Esses intervalos normalmente começam com um intervalo pai e passam para intervalos filhos.

Sua ferramenta colocará essas ações em ordem e coletará métricas relevantes, como atributos personalizados, registros de data/hora e metadados. Normalmente, uma ferramenta de rastreamento distribuído ajuda a visualizar esses dados em um gráfico de chama ou formato de visualização em cascata. Esses gráficos ajudam os engenheiros a interpretar quais partes de um sistema distribuído estão enfrentando gargalos, lentidão ou problemas de desempenho.

Por fim, você precisará combinar sua ferramenta de rastreamento distribuído com uma plataforma de observabilidade para obter monitoramento de ponta a ponta de sua aplicação. Incluir uma plataforma como o Instana ajudará você a extrair e processar dados para que possa seguir as próximas etapas corretas na solução de qualquer erro de aplicação.

IBM DevOps

O que é DevOps?

Andrea Crawford explica o que é DevOps, seu valor e como suas práticas e ferramentas ajudam você a migrar suas aplicações por todo o pipeline de entrega de software, desde a concepção até a produção. Conduzido pelos principais líderes da IBM, o conteúdo foi concebido para ajudar os líderes empresariais a adquirir o conhecimento necessário para priorizar os investimentos em IA que podem estimular o crescimento.

Benefícios e desafios do rastreamento distribuído

A complexidade da arquitetura moderna tornou difícil para aplicações legadas monolíticas servirem às ferramentas que as hospedam. Com esse desafio em mente, o rastreamento distribuído tornou-se essencial para alcançar a observabilidade em ambientes nativos da nuvem.

Aqui estão alguns dos principais benefícios do rastreamento distribuído:

  • Solucionar problemas mais rapidamente: reduza drasticamente o tempo médio para resolução (MTTR) e o tempo médio para descoberta (MTTD). Os engenheiros podem revisar rastreamentos distribuídos para encontrar a causa raiz e a localização de erros de aplicação.

  • Impulsionar a colaboração da equipe: em um ambiente típico de microsserviços, equipes especializadas lidam e desenvolvem diferentes tecnologias. Essa situação pode criar confusão entre as equipes se elas não souberem onde o erro ocorreu e quem é responsável por resolvê-lo. Um link de rastreamento pode ajudar as equipes de engenharia a visualizar os dados para que possam alertar o desenvolvedor correto para corrigir o problema.
     

  • Integração e implementação flexíveis: os desenvolvedores podem implementar o rastreamento distribuído em quase qualquer ambiente nativo da nuvem. As ferramentas são compatíveis com uma ampla gama de linguagens de programação e aplicações.

Cada um desses benefícios leva a melhorias no desempenho da aplicação ao fornecer insights sobre como uma única solicitação é tratada pelo seu servidor. Enquanto há muitos benefícios no rastreamento distribuído, também existem alguns desafios a serem considerados.

  • Instrumentação manual: algumas plataformas de rastreamento distribuído exigem que os desenvolvedores modifiquem seu código para começar a rastrear as solicitações dos usuários. O processo de instrumentação manual consome muitas horas de trabalho, deixa sua aplicação mais vulnerável a bugs e pode resultar em rastreamentos ausentes.
     

  • Falta de análise de front-end: ao adquirir uma ferramenta de rastreamento distribuído, é importante garantir que você tenha cobertura de ponta a ponta. Sem essa capacidade, você terá insights apenas sobre o back-end, sem a experiência de front-end do usuário final. Essa limitação pode tornar muito mais difícil depurar sua aplicação.
     

  • Amostragem: algumas ferramentas de rastreamento distribuído usam amostragem arbitrária, que escolhe aleatoriamente rastreamentos para amostrar e analisar. Como os rastreamentos são selecionados aleatoriamente e não há como saber quais terão problemas, isso pode fazer com que as equipes não identifiquem erros graves existentes.

Embora existam algumas dificuldades que podem surgir ao usar um sistema distribuído, os benefícios quase sempre superam as desvantagens. Combine sua ferramenta de rastreamento distribuído com o Instana para ajudar a solucionar esses desafios em tempo real.

Rastreamento distribuído vs. registro

Para entender a diferença entre rastreamento distribuído e registro, primeiro precisamos abordar o que é um log. Um log é um registro temporal de um evento que ocorre dentro de um sistema de aplicação. O registro é o monitoramento desses eventos importantes identificados por logs para destacar comportamentos imprevisíveis dentro da sua aplicação. Se um erro ocorre, ele aciona uma resposta automática e alerta sua equipe de DevOps.

Uma das principais desvantagens do registro sozinho é que ele não pode fornecer uma visão totalmente abrangente do desempenho da aplicação sem rastreamentos. .

O rastreamento distribuído usa IDs de rastreamento para seguir transações através do seu sistema com contexto. Esse contexto permite que você encontre o local exato onde um erro ocorreu em seu sistema. Essa visibilidade em seu sistema baseado em microsserviços reduz o tempo de resposta para detecção em todo o cenário de transações. Portanto, muitas equipes usam rastreamento distribuído e registro em conjunto para obter uma visão completa da integridade de suas aplicações modernas.

Ferramentas de rastreamento distribuído

As ferramentas de rastreamento distribuído geralmente suportam instrumentação, coleta de dados e visualização de dados em gráficos de chama. A maneira mais popular de configurar soluções de rastreamento distribuído é com ferramentas de código aberto.

Estas são algumas das opções de código aberto mais populares disponíveis no mercado:

  • OpenTelemetry: o OpenTelemetry oferece uma coleção de kits de desenvolvimento de software (SDKs), software de coleta de dados, APIs neutras em relação ao fornecedor e ferramentas para instrumentação. É uma combinação do OpenCensus e do OpenTracing. Esse framework de monitoramento de desempenho para ambientes de nuvem é uma das ferramentas de rastreamento distribuído mais populares. O OTel não inclui ferramentas para análise ou visualização de dados, mas você pode enviar dados de telemetria para aplicações de terceiros para conduzir essa pesquisa.

  • OpenCensus: o OpenCensus foi criado pelo Google com base em seu sistema interno de rastreamento. Eventualmente, se tornou de código aberto e ficou disponível em bibliotecas multilíngues. Ele pode coletar e transferir dados para plataformas de backend para ajudar na depuração, mas, infelizmente, carece de uma API para incorporar o software ao código. Essa limitação é uma das principais razões pelas quais o OpenCensus e o OpenTracing foram combinados pela Cloud Native Computing Foundation (CNCF) para criar o OpenTelemetry.

  • OpenTracing: o OpenTracing é uma API independente de fornecedor que auxilia os desenvolvedores na instrumentação de código para rastreamento distribuído. Este projeto de código aberto está disponível em nove linguagens diferentes, incluindo Java, Python e Ruby.

  • Zipkin: o Zipkin é outro projeto de código aberto criado pelo Twitter. Este sistema de rastreamento distribuído ajuda os profissionais de DevOps a coletar dados importantes de aplicações e solucionar problemas de latência em diferentes arquiteturas de serviço. Você pode enviar dados para o Zipkin usando Apache, Kafka ou HTTP.
  • Jaeger: o Jaeger é o projeto de código aberto mais recente desta lista, foi criado pela Uber e integra-se facilmente com o OpenTracing. Essa ferramenta é altamente flexível, tornando-a uma ótima opção para rastreamento de solicitações em um ambiente de microsserviços. Tanto o Zipkin quanto o Jaeger auxiliam na visualização de estatísticas, mas têm limitações quando se trata de amostragem de dados.

Embora o OpenCensus e o OpenTracing tenham sido populares no passado, recomendamos usar o OpenTelemetry, Zipkin ou Jaeger. Use essas ferramentas em combinação com uma ferramenta de APM ou observabilidade como o Instana para obter total clareza sobre o que está acontecendo dentro da sua aplicação.

Rastreie cada solicitação em todos os servidores com o Instana

Para entender a interação entre as mensagens passadas entre sua aplicação e seus componentes, você precisa de rastreamento. Com o Instana AutoTrace, você nunca perderá nenhum contexto ou chamada devido aos nossos recursos para capturar todas as solicitações e correlacionar rastreamentos de APIs de código aberto. O Instana facilita isso através do seu Dynamic Graph.

Otimizamos cada rastreamento entre sua aplicação, serviço e arquitetura de sistema para lhe dar cobertura total do sistema. Para experimentar o Instana com rastreamento distribuído, inscreva-se para nosso teste sem custo de duas semanas e acesse nossos recursos.

Soluções relacionadas
IBM DevOps Accelerate

Automatize a entrega de software para qualquer aplicação no local, na nuvem ou no mainframe.

Explore o DevOps Accelerate
Soluções de DevOps

Utilize softwares e ferramentas de DevOps para desenvolver, implementar e gerenciar aplicativos nativos da nuvem em diversos dispositivos e ambientes.

Explore as soluções de DevOps
Serviços de consultoria em nuvem 

Libere novos recursos e aumente a agilidade dos negócios com os serviços de consultoria em nuvem da IBM. Descubra como cocriar soluções, acelerar a transformação digital e otimizar o desempenho por meio de estratégias de nuvem híbrida e parcerias especializadas.

Serviço de nuvem
Dê o próximo passo

Libere o potencial do DevOps para criar, testar e implementar aplicativos seguros nativos da nuvem com integração e entrega contínuas.

Explore as soluções de DevOps Descubra o DevOps em ação