PERF01-BP06 Realizar testes comparativos das workloads
Faça um teste comparativo de uma carga de trabalho para entender a performance dela na nuvem. Use os dados coletados em benchmarks para direcionar as decisões de arquitetura.
Use testes comparativos com testes sintéticos e monitoramento de usuários reais para gerar dados sobre a performance dos componentes da sua workload. O benchmarking é usado na avaliação da tecnologia para um componente específico e geralmente é mais simples de configurar do que testes de carga. Muitas vezes o benchmarking é usado no início de um novo projeto, quando ainda não há uma solução completa para o teste de carga.
Você pode criar seus próprios testes comparativos personalizados, ou usar um teste padrão do setor, como o
TPC-DS
Ao realizar testes comparativos, é importante "preaquecer" o ambiente de teste a fim de garantir resultados válidos. Execute o mesmo benchmark várias vezes para assegurar a captura de qualquer variação ao longo do tempo.
Como normalmente é mais rápido executar testes comparativos do que testes de carga, eles podem ser usados mais cedo no pipeline de implantação e fornecer um feedback mais rápido sobre desvios de performance. Ao avaliar uma alteração significativa em um componente ou serviço, um benchmark pode ser uma maneira rápida de verificar se é possível justificar a iniciativa para concretizar a alteração. O uso de benchmarking em conjunto com testes de carga é importante porque o teste de carga informa como será a performance de sua carga de trabalho em produção.
Antipadrões comuns:
-
Você depende de testes comparativos comuns que não são indicativos das características da carga de trabalho.
-
Você conta com o feedback e as percepções de clientes como seu único teste comparativo.
Benefícios do estabelecimento desta prática recomendada: O benchmarking da sua implementação atual permite medir a melhoria da performance.
Nível de exposição a riscos quando esta prática recomendada não é estabelecida: Médio
Orientações para a implementação
Monitorar a performance durante o desenvolvimento: implemente processos que deem visibilidade da performance à medida que a workload evolui.
Integrar-se com o pipeline de entrega: execute testes de carga automáticos em seu pipeline de entrega. Compare os resultados do teste com indicadores-chave de performance (KPIs) e limites predefinidos para garantir que você continue atendendo aos requisitos de performance.
Testar a jornada dos usuários: use versões sintéticas ou limpas de dados de produção (remova informações confidenciais ou de identificação) para o teste de carga. Exercite toda sua arquitetura usando jornadas do usuário reproduzidas ou pré-programadas por meio de seu aplicativo em escala.
Monitoramento de usuários reais: use o CloudWatch RUM para ajudar a coletar e visualizar dados do lado do cliente sobre a performance da sua aplicação. Use esses dados para ajudar a estabelecer testes comparativos de performance de usuários reais.
Recursos
Documentos relacionados:
Vídeos relacionados:
Exemplos relacionados: