Entenda como o AWS X-Ray pode auxiliar a aumentar a produtividade de suas aplicações em um ambiente em cloud!

28/04/2023

Por Gustavo Mainchein 

O X-Ray da AWS é um serviço de análise e depuração de aplicações que ajuda desenvolvedores a entender o comportamento de suas aplicações distribuídas, identificando problemas de performance e solucionando erros mais rapidamente.

Com ele, é possível visualizar e analisar o fluxo de uma requisição desde o início até o fim, incluindo chamadas a serviços externos e microsserviços. O serviço captura informações como tempo de resposta, erros e exceções, além de permitir a criação de mapas de serviços que ajudam a identificar gargalos e possíveis pontos de falha na arquitetura.

Ao utilizar o serviço, os desenvolvedores podem facilmente identificar problemas de performance em suas aplicações e melhorar a experiência do usuário final. Além disso, a ferramenta permite a identificação rápida de erros em ambientes de produção, o que ajuda a reduzir o tempo de inatividade e minimizar o impacto nos usuários.

O X-Ray é fácil de integrar com outras ferramentas da AWS, como o Amazon CloudWatch e o AWS Lambda, bem como pode ser usado em conjunto com diversas linguagens de programação, como Java, Node.js, Python e Ruby.

Em resumo, esse serviço da AWS  se consolida como uma ferramenta poderosa para analisar e depurar aplicações distribuídas, que ajuda desenvolvedores a identificar problemas de performance e erros de forma mais rápida e eficiente, melhorando a experiência do usuário final.

Funcionamento do X-Ray

O funcionamento do X-Ray envolve a instrumentação da aplicação, onde o desenvolvedor adiciona código aos componentes da aplicação para gerar dados de rastreamento. Esses dados são enviados para o serviço, para serem agregados e apresentados em uma interface web.

 A seguir, descrevo com mais detalhes as etapas envolvidas no funcionamento do X-Ray:

 1.    Instrumentação da aplicação: para que a aplicação possa ser rastreada pelo serviço, é necessário que ela seja instrumentada, ou seja, que o código seja modificado para gerar dados de rastreamento. A AWS oferece uma série de bibliotecas e SDKs para as principais linguagens de programação, facilitando a instrumentação da aplicação;

 2.    Geração de dados de rastreamento: após a instrumentação, a aplicação gera dados de rastreamento que incluem informações como o tempo de execução, o nome da operação e a identificação do serviço. Esses dados são enviados para o X-Ray em intervalos regulares, geralmente a cada 1 segundo;

 3.    Armazenamento e agregação de dados: a ferramenta armazena os dados de rastreamento em um banco de dados distribuído, que permite a agregação e análise dos dados em tempo real. O serviço usa algoritmos de análise para identificar gargalos e pontos de falha na aplicação;

 4.    Visualização dos dados: a interface web do X-Ray permite que os desenvolvedores visualizem os dados de rastreamento em vários formatos, incluindo gráficos de fluxo e listagens de serviços. Os dados podem ser filtrados e organizados para facilitar a análise;

 5.    Integração com outros serviços: o serviço pode ser integrado com outros serviços da AWS, como o Amazon CloudWatch e o AWS Lambda, permitindo que os desenvolvedores monitorem e depurem a aplicação de forma mais eficiente;

 6.    O X-Ray permite que os desenvolvedores definam políticas de retenção de dados personalizadas para seus dados de rastreamento, para garantir que apenas os dados relevantes sejam armazenados e analisados, ajudando a reduzir custos e melhorar o desempenho.

 7.    A ferramenta pode ser integrado com várias outras ferramentas e serviços de terceiros, como o Datadog, para oferecer ainda mais recursos de análise e depuração para aplicativos em nuvem.

Precificação da ferramenta

O modelo de precificação do X-Ray é baseado no número de solicitações de rastreamento que sua aplicação gera. A AWS cobra uma taxa por solicitação de rastreamento, que inclui a coleta, armazenamento e análise dos dados de rastreamento. O preço varia de acordo com a região da AWS em que sua aplicação está sendo executada e do volume de solicitações de rastreamento.

A primeira camada de solicitações de rastreamento é gratuita (100.000). Cada camada adicional de solicitações de rastreamento é cobrada em incrementos de 100.000 solicitações por mês. Por exemplo, se sua aplicação gera 250.000 solicitações de rastreamento em um mês, você será cobrado pela camada de 200.000 a 300.000 solicitações de rastreamento.

Além disso, a AWS oferece um desconto de volume para clientes que geram mais de 1 bilhão de solicitações de rastreamento por mês. Os clientes também podem economizar dinheiro usando o recurso de amostragem do X-Ray para reduzir o número de solicitações de rastreamento que são coletadas.

É importante notar que o X-Ray também cobra uma taxa para armazenamento de dados de rastreamento. O armazenamento é cobrado em incrementos de GB por mês e varia dependendo da região da AWS em que a aplicação está sendo executada.

Vantagens do X-Ray

O AWS X-Ray traz diversos benefícios para os desenvolvedores e operadores de aplicações distribuídas, entre eles:

– Visualização de ponta a ponta;

– Identificação ágil de problemas;

– Melhoria da performance da aplicação;

– Redução de custos;

– Integração com outras ferramentas AWS;

Configurando o X-Ray localmente

Para configurar o ambiente local, utilizaremos o container do daemon do X-Ray, para fins de padronização das configurações.

Pensando nisso, é fundamental que você já possua o Docker instalado em sua máquina e, após sua devida configuração, execute os passos abaixo:

1.    Inicie o Docker em sua máquina abrindo o aplicativo

2.    Abra seu terminal de comando

3.    Execute o comando: “docker pull amazon/aws-xray-daemon”

4.    Crie o arquivo “xray.env” contendo as seguintes variáveis preenchidas:

a.       AWS_ACCESS_KEY_ID={access_key_var}

b.       AWS_SECRET_ACCESS_KEY={secret_key_var}

c.       AWS_REGION={region_var}

5.    Execute o container por meio do comando “docker run –env-file xray.env -p 2000:2000/udp amazon/aws-xray-daemon”

Após executar os passos acima, seu ambiente local está pronto para enviar logs ao X-Ray da sua conta AWS, sendo exibidos todos os logs e traces processadas na aplicação local.

Para certificar-se de que está tudo certo, você deve visualizar ter um resultado semelhante à este:

Criando uma aplicação e integrando-a com X-Ray

Para fins de demonstração, iremos trabalhar com uma aplicação Node.js, na estrutura Express.js. Portanto é de suma importância que você realize a instalação das ferramentas por meio do tutorial abaixo:

1.    Acesse: https://nodejs.org/en

2.    Faça o download da versão estável do Node.js (LTS)

1.       Siga todos os passos seguintes que forem indicados no terminal ou box de instalação

2.       Crie uma pasta com o nome personalizado do seu projeto, como por exemplo “x-ray-labs”

3.       Entre na pasta e abra o terminal de comando

4.       Execute o comando de criação de projetos Node.js “npm init -y”

5.       Realize a instalação de pacotes fundamentais para o projeto “npm i –save @aws-sdk/client-dynamodb express http aws-xray-sdk @aws-sdk/core uuid”

6.       Crie o arquivo “index.js” para iniciar a configuração de sua aplicação

7.       Insira o seguinte código, substituindo o nome da sua aplicação “x-ray-lab”

8.       Execute a aplicação por meio do comando “node index.js” e abra o navegador na URL http://localhost:8080

9.       Abra o painel do X-Ray, recarregue os gráficos e as Traces, pois já será possível visualizar a integração funcionando normalmente, assim como os detalhes dos logs processados localmente

foto-Gustavo-Mainchein
Gustavo Mainchein Full Stack Developer Senior na Darede
gustavo.mainchein@darede.com.br

Gustavo possui larga experiência em desenvolvimento de software e cloud computing. Ele possui diversas certificações da Hashicorp e da AWS, sendo a última AWS DevOps Engineer – Professional.

OUTRAS PUBLICAÇÕES

Entendendo o AWS Transfer Family

O AWS Transfer Family é uma ferramenta da AWS que pode te ajudar a sanar muitos problemas! Entenda de forma prática como ele funciona! 14/09/2023

Tudo sobre AWS Outposts

Você sabia que a AWS possui uma solução para On Premises? Veja o artigo sobre o serviço AWS Outposts! Entenda como ele pode te ajudar!

Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações