O AWS Distributed Load Testing é uma arquitetura, baseada em serviços AWS como Lambda, S3, DynamoDB, Amplify, Cognito, entre outros, que tem por objetivo automatizar testes de carga em escala, possibilitando entender o comportamento da sua aplicação com grandes volumes de acessos e identificar qualquer tipo de gargalo que possa impactar a experiência do seu usuário.

Essa arquitetura suporta a execução de testes de maneira agendada e sua execução de forma concorrentes, permitindo simular um grande volume de usuários simultâneos e, consequentemente, muitas requisições por segundo.

Testes de carga

Testes de carga são testes não funcionais que tem por objetivo permitir um entendimento do comportamento da aplicação e/ou da arquitetura em cenários que simulam a operação real. Um teste de carga, porém, difere de um teste de stress. O primeiro visa medir o desempenho da aplicação enquanto que o segundo vai tentar sobrecarregar o ambiente tentando identificar um ponto de ruptura.

É muito comum empresas utilizarem soluções que simulam grandes volumes de acesso para melhorar o entendimento da sua aplicação e validar as premissas de resiliência, validar se políticas de escalonamento estão adequadas, descobrir bugs que surgem somente com múltiplos acessos simultâneos, entre outros pontos.

Arquitetura do DLT

A arquitetura apresentada se baseia em múltiplos containers como geradores de carga e utiliza o Taurus, um framework opensource para automação de testes de carga. Ainda permite a criação de testes simples, a partir de requisições pré-configuradas ou mesmo o uso de scripts JMeter para simular cargas mais complexas.

Arquitetura do Distributed Load Testing

Após a configuração e lançamento do job de teste, funções lambda que gerenciam os testes são chamadas, armazenando dados no S3 e no DynamoDB. As funções lambda também disparam workflows do Step Functions que, por sua vez, disparam tasks baseadas no Fargate. Essas tasks vão gerar a carga, de acordo com o cenário de testes configurado no job. Através de uma interface web intuitiva, você consegue acompanhar a execução dos seus testes. Por fim, através do CloudWatch é possível agendar a execução dos testes.

Visualização dos testes e seus resultados

Quer entender melhor o funcionamento da sua aplicação, melhorar a experiência dos seus usuários e evitar problemas futuros, melhorando a resiliência da sua arquitetura, entre em contato conosco


0 comentário

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado.