BT

AWS lança o serviço "X-Ray": rastreamento de requisições em sistemas distribuídos

| por Daniel Bryant Seguir 636 Seguidores , traduzido por Wellington Soares Seguir 1 Seguidores em 12 dez 2016. Tempo estimado de leitura: 3 minutos |

Na conferência AWS re:Invent, realizada em Las Vegas (Estados Unidos), foi lançado o serviço AWS X-Ray em modo preview nas 12 regiões da AWS. Similar aos projetos Dapper (Google), Zipkin (Twitter) e ao OpenTracing API, o serviço X-Ray auxilia o desenvolvedor a analisar e realizar o processo de debug em aplicações distribuídas, como por exemplo, aplicações desenvolvidas utilizando a abordagem de arquitetura de microserviços. O serviço da AWS também fornece uma interface gráfica web para exibir o mapa topológico dos serviços, o registro de rastreio em formato gráfico e a possibilidade de pesquisar em todos registros armazenados.

Jeff Barr comentou, no blog oficial da AWS, que ao longo dos últimos anos o projeto e o processo de deploy do software fazem aumentar a complexidade de um sistema distribuído baseado em serviços. Consequentemente, o processo para realizar o debug nas aplicações mudou, principalmente quando é desejável encontrar padrões de comportamento que só acontecem em escala.

A combinação de computação na nuvem, microserviços, assincronicidade e arquitetura baseada em eventos faz com que um sistemas seja composto por centenas ou até milhares de componentes. O desafio de identificar e solucionar problemas de performance nestes sistemas complexos somente aumentou, assim como a dificuldade de gerar informações no nível de sistema utilizando dados observados no nível de serviço.

O desafio principal para o desenvolvedor e sysadmin de sistemas distribuídos em ambientes na nuvem tem sido em relação ao processo de “seguir-o-fluxo-de-execução”, uma vez que a execução atravessa os serviços da aplicação, containers, instâncias, database-as-a-service e messaging-as-a-service.

AWS X-Ray rastreia as requisições assim que elas percorrem o sistema implantado no ambiente da AWS. Todos os dados gerados são agregados individualmente por serviço e pelos recursos que compõem uma aplicação, podendo fornecer uma visão "ponta a ponta" de como a aplicação está executando. A funcionalidade de rastreamento (tracing) do serviço X-Ray permite visualizar o caminho de um requisição (request) arbitrária e determinar o ponto da aplicação que está ocorrendo problema de performance. O serviço X-Ray também fornece anotações para permitir que metadados sejam adicionados nos registros de rastreio, possibilitando adicionar tags e dados para uma posterior pesquisa.

AWS X-Ray distributed tracing service

De acordo com o post no blog da AWS detalhando o lançamento, o serviço AWS X-Ray funciona somente com os serviços Amazon EC2, Amazon EC2 Container Service (ECS), AWS Elastic Beanstalk e o Amazon API Gateway. O SDK do AWS X-Ray pode ser utilizado em aplicações escritas em Java, Node.js e .NET; desde que seja feito o deploy nos serviços compatíveis da AWS. É possível rastrear até requisições feitas para aplicações que atingem diferentes regiões e zonas de disponibilidade. O serviço AWS Lambda será suportado em breve.

O serviço AWS X-Ray implementa a funcionalidade seguir-o-fluxo-de-execução (follow-the-thread) adicionado um cabeçalho HTTP (um identificador único) nas requisições que ainda não possuam esse cabeçalho, esse identificador começa a ser repassado ao demais componentes. Os dados coletados em cada ponto são denominados de segmento – análogo ao Span da especificação OpenTracing API – e são armazenados como parte de informação JSON. Um segmento representa uma unidade de trabalho e contém a requisição e o tempo de resposta, junto com outros subsegmentos opcionais que representam menores unidades de trabalho.

A documentação do serviço AWS X-Ray diz que uma amostra ‘statistically meaningful' de segmentos é enviada ao X-Ray. O SDK não envia os registros de rastreabilidade diretamente ao serviço, ao invés disso, o SDK envia os dados de rastreio ao AWS X-Ray daemon que precisa estar em execução em uma instância EC2 ou dentro de cada ECS container. O daemon coleta segmentos para diversas requisições e os envia em lotes. Os dados de rastreio são coletados e podem ser visualizados no painel web, ou acessados via API do serviço AWS X-Ray APIs e via a ferramenta AWS CLI.

Mais informações sobre AWS X-Ray podem ser encontradas no blog da AWS, no post intitulado como “AWS X-Ray – See Inside of Your Distributed Application”, na página do produto AWS X-Ray e na documentação do AWS X-Ray. O resumo das demais novidades divulgadas na conferência "AWS re:Invent Recap" pode ser encontrado na notícia "AWS re:Invent Recap".

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT