BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

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

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

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

Conteúdo educacional

BT