

# PERF08-BP01 Compreender as áreas em que o desempenho é mais importante
<a name="perf_tradeoffs_performance_critical_areas"></a>

 Entenda e identifique áreas em que aumentar a performance de sua workload causará um impacto positivo sobre a eficiência ou a experiência do cliente. Por exemplo, um site que tenha muita interação com o cliente se beneficiaria do uso de serviços de borda para aproximar a entrega de conteúdo dos clientes. 

**Resultado desejado:** aumentar a eficiência do desempenho entendendo sua arquitetura, os padrões de tráfego e os padrões de acesso aos dados, além de identificar os tempos de latência e processamento. Identificar possíveis gargalos que possam afetar a experiência do cliente com o crescimento da workload. Ao identificar essas áreas, veja qual solução você pode implantar para remover essas preocupações com o desempenho.

 **Antipadrões comuns:** 
+  Você presume que as métricas de computação comuns, como `CPUUtilization` ou pressão de memória são suficientes para capturar os problemas de desempenho. 
+  Você só usa as métricas comuns registradas pelo software de monitoramento selecionado. 
+  Você só revisa as métricas quando há um problema. 

 **Benefícios de estabelecer esta prática recomendada:** Compreender áreas críticas de desempenho ajuda os proprietários de workloads a monitorar KPIs e priorizar melhorias de alto impacto. 

 **Nível de risco exposto se essa prática recomendada não for estabelecida:** alto 

## Orientação para implementação
<a name="implementation-guidance"></a>

Configure um rastreamento completo para identificar padrões de tráfego, latência e áreas de desempenho críticas. Monitore os padrões de acesso aos dados para consultas lentas ou dados particionados e fragmentados incorretamente. Identifique as áreas de restrição da workload usando o teste ou monitoramento de carga.

## Etapas da implementação
<a name="w2aac19c11c11b5b6c17"></a>

1.  Configure um monitoramento completo para capturar todos os componentes e as métricas da workload. 
   +  Use o [Monitoramento de usuários reais (RUM) do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) para capturar as métricas de desempenho da aplicação de sessões de front-end e do lado do cliente de usuários reais. 
   +  Configure o [AWS X-Ray](https://aws.amazon.com/xray/) para rastrear o tráfego por meio das camadas de aplicação e identificar a latência entre componentes e dependências. Use os mapas do serviço X-Ray para ver os relacionamentos e a latência entre os componentes da workload. 
   +  Use o [Insights de Performance do Amazon Relational Database Service](https://aws.amazon.com/rds/performance-insights/) para ver as métricas de desempenho do banco de dados e identificar melhorias de desempenho. 
   +  Use o [Monitoramento avançado do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html) para ver métricas de desempenho do SO do banco de dados. 
   +  Colete [métricas do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) por componente e serviço da workload e identifique quais métricas afetam a eficiência do desempenho. 
   +  Configure o [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/) para obter recomendações e insights de desempenho adicionais. 

1.  Realize testes para gerar métricas, identificar padrões de tráfego, gargalos e áreas de desempenho críticas. 
   +  Configure o [Canários sintéticos do CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) para imitar as atividades do usuário no navegador de forma programática usando trabalhos `cron` ou expressões de avaliação para gerar métricas consistentes ao longo do tempo. 
   +  Use a solução de [Testes de carga distribuída da AWS](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) para gerar tráfego de pico ou testar a workload na taxa de crescimento esperada. 

1.  Avalie as métricas e a telemetria para identificar as áreas de desempenho críticas. Avalie essas áreas com sua equipe para discutir sobre o monitoramento e as soluções visando evitar gargalos. 

1.  Experimente melhorias de desempenho e meça essas alterações com dados. 
   +  Use o [CloudWatch Evidently](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently.html) para testar novas melhorias e o impacto do desempenho na workload. 

 **Nível de esforço do plano de implementação:** Para estabelecer essa prática recomendada, é necessário analisar suas métricas completas e estar ciente do desempenho atual da workload. Esse é um nível moderado de esforço para configurar o monitoramento completo e identificar as áreas de desempenho críticas. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Amazon Builders’ Library](https://aws.amazon.com/builders-library) 
+  [Documentação do X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/) 
+  [CloudWatch RUM e X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-RUM.html) 

 **Vídeos relacionados:** 
+  [Introducing The Amazon Builders’ Library (DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [Demo of Amazon CloudWatch Synthetics (Demonstração do Amazon CloudWatch Synthetics)](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **Exemplos relacionados:** 
+  [Measure page load time with Amazon CloudWatch Synthetics (Medição do tempo de carga da página com o Amazon CloudWatch Synthetics)](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM Web Client (Cliente da web do Amazon CloudWatch RUM)](https://github.com/aws-observability/aws-rum-web) 
+  [X-Ray SDK para Node.js](https://github.com/aws/aws-xray-sdk-node) 
+  [X-Ray SDK para Python](https://github.com/aws/aws-xray-sdk-python) 
+  [X-Ray SDK para Java](https://github.com/aws/aws-xray-sdk-java) 
+  [X-Ray SDK para .Net](https://github.com/aws/aws-xray-sdk-dotnet) 
+  [X-Ray SDK para Ruby](https://github.com/aws/aws-xray-sdk-ruby) 
+  [Daemon do X-Ray](https://github.com/aws/aws-xray-daemon) 
+  [Testes de carga distribuída na AWS](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 