Visão geral
Os Testes de carga distribuída na AWS automatiza o teste de aplicações de software em escala e em carga para ajuda você a identificar possíveis problemas de performance antes do lançamento. Essa solução da AWS cria e simula milhares de usuários conectados, gerando registros transacionais em um ritmo constante, sem a necessidade de provisionar servidores. Essa solução também permite que você execute testes em várias regiões da AWS.
Benefícios
Teste os recursos de carga do seu software usando o Amazon Elastic Container Service (Amazon ECS) independente em contêineres AWS Fargate.
Personalize os testes de aplicações criando scripts personalizados do JMeter.
Agende os testes de carga para que comecem automaticamente em uma data especificada ou em datas recorrentes.
Visualize dados em tempo real para um teste em execução usando o console web desta solução.
Detalhes técnicos
É possível implantar automaticamente essa arquitetura ao usar o guia de implementação e o modelo do AWS CloudFormation.
Etapa 1
Uma API do Amazon API Gateway invoca os microsserviços da solução (funções do AWS Lambda).
Etapa 2
Os microsserviços fornecem a lógica de negócios para gerenciar dados de teste e executar os testes.
Etapa 3
Esses microsserviços interagem com o Amazon Simple Storage Service (Amazon S3), o Amazon DynamoDB e o AWS Step Functions para executar cenários de teste, fornecer o armazenamento para os detalhes desse cenário de teste.
Etapa 4
Uma topologia de rede do Amazon Virtual Private Cloud (Amazon VPC) contém os contêineres Amazon Elastic Container Service (Amazon ECS) da solução em execução no AWS Fargate.
Etapa 5
Os contêineres incluem uma imagem de contêiner compatível com a Open Container Initiative (OCI) de teste de carga da Taurus, usada para gerar a carga para testar a performance da aplicação. A Taurus é uma estrutura de automação de testes de código aberto. A imagem do contêiner é hospedada pela AWS em um repositório público do Amazon Elastic Container Registry (Amazon ECR).
Etapa 6
Um console Web desenvolvido pelo AWS Amplify é implantado em um bucket do S3 configurado para hospedagem estática na Web.
Etapa 7
O Amazon CloudFront fornece acesso seguro público ao conteúdo do bucket do site da solução.
Etapa 8
Durante a configuração inicial, a solução também cria uma função padrão de administrador da solução e envia um convite de acesso para um endereço de e-mail de usuário especificado pelo cliente.
Etapa 9
Um grupo de usuários do Amazon Cognito gerencia o acesso dos usuários ao console e à API do API Gateway.
Etapa 10
Depois de implantar essa solução, você pode usar o console Web para criar um cenário de teste que defina uma série de tarefas.
Etapa 11
Os microsserviços usam esse cenário de teste para executar o Amazon ECS em tarefas do Fargate nas regiões da AWS especificadas.
Etapa 12
Além de armazenar os resultados no Amazon S3 e no DynamoDB, a saída é registrada no Amazon CloudWatch quando o teste é concluído.
Etapa 13
Se você selecionar a opção de dados ativos, a solução enviará os logs do CloudWatch para as tarefas do Fargate para uma função do Lambda durante o teste, para cada região na qual o teste foi executado.
Etapa 14
Em seguida, a função do Lambda publica os dados no tópico correspondente no AWS IoT Core na região em que a pilha principal foi implantada. O console Web se inscreve no tópico e você pode ver os dados enquanto o teste é executado no console Web.
- Data de publicação
“Na Calabrio, nossa missão é ajudar as centrais de atendimento a trabalhar de forma mais inteligente, rápida e melhor. Precisávamos projetar rapidamente um recurso novo e de alto desempenho para um grande cliente. Usamos o teste de carga distribuída na AWS para testar o desempenho do nosso sistema em grande escala, sem a necessidade de licenças de teste corporativas caras ou de escrever código de orquestração personalizado para ferramentas de código aberto. Com essa solução da AWS, projetamos e executamos testes com seis vezes o volume de tráfego esperado e lançamos o novo recurso com sucesso e antes do previsto.”
Conteúdo relacionado
Seja para uma empresa privada ou para um serviço do setor público, você precisa ter certeza de que a aplicação poderá ser escalada com o aumento da carga de usuários. O teste de carga distribuída na AWS permite que você automatize os testes de aplicações, entenda como eles funcionarão em grande escala e corrija os gargalos antes de lançar a aplicação.