

# SUS03-BP01 Otimizar o software e a arquitetura para trabalhos assíncronos e agendados
<a name="sus_sus_software_a2"></a>

Use software eficiente e padrões de arquitetura, como orientado a filas, para manter uma alta e consistente utilização dos recursos implantados.

 **Práticas comuns que devem ser evitadas:** 
+  Provisione em excesso os recursos em sua workload na nuvem para atender a picos imprevistos na demanda. 
+  Sua arquitetura não separa remetentes e destinatários de mensagens assíncronas por um componente de sistema de mensagens. 

 **Benefícios de implementar esta prática recomendada:** 
+  Padrões eficientes de software e arquitetura minimizam os recursos não utilizados em sua workload e melhoram a eficiência geral. 
+  Você pode dimensionar o processamento independentemente do recebimento de mensagens assíncronas. 
+  Por meio de um componente de mensagens, você relaxou os requisitos de disponibilidade que podem ser atendidos com menos recursos. 

 **Nível de risco exposto se esta prática recomendada não for estabelecida:** Médio 

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

 Use padrões de arquitetura eficientes, como [arquitetura orientada por eventos](https://aws.amazon.com/event-driven-architecture/), que resultam na utilização uniforme dos componentes e minimizam o excesso de provisionamento em sua workload. A utilização de padrões de arquitetura eficientes minimiza recursos ociosos por falta de uso devido a mudanças na demanda ao longo do tempo. 

 Entenda os requisitos de seus componentes de workload e adote padrões de arquitetura que aumentam a utilização geral dos recursos. Retire os componentes que não são mais necessários. 

### Etapas de implementação
<a name="implementation-steps"></a>
+  Analise a demanda da sua workload para determinar como responder a ela. 
+  Para solicitações ou trabalhos que não exigem respostas síncronas, use arquiteturas orientadas por filas e operadores de escalação automática para maximizar a utilização. Aqui estão alguns exemplos de quando você pode considerar a arquitetura orientada por filas:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2024-06-27/framework/sus_sus_software_a2.html)
+  Para solicitações ou trabalhos que podem ser processados a qualquer momento, use mecanismos de agendamento para processar trabalhos em lote para maior eficiência. Aqui estão alguns exemplos de mecanismos de agendamento no AWS:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/wellarchitected/2024-06-27/framework/sus_sus_software_a2.html)
+  Se você usa mecanismos de pesquisa e webhooks em sua arquitetura, substitua-os por eventos. Use [arquiteturas orientadas por eventos](https://docs.aws.amazon.com/lambda/latest/operatorguide/event-driven-architectures.html) para criar workloads altamente eficientes. 
+  Aproveite a [tecnologia sem servidor na AWS](https://aws.amazon.com/serverless/) para eliminar a infraestrutura provisionada em excesso. 
+  Dimensione corretamente componentes individuais da sua arquitetura para evitar recursos ociosos aguardando entrada. 
  +  As [Recomendações de dimensionamento correto em no AWS Cost Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-rightsizing.html) ou o [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) podem ser usados para identificar oportunidades de dimensionamento correto. 
  +  Para obter mais detalhes, consulte [Dimensionamento correto: provisionamento de instâncias para corresponder a workloads](https://docs.aws.amazon.com/whitepapers/latest/cost-optimization-right-sizing/cost-optimization-right-sizing.html). 

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

 **Documentos relacionados:** 
+  [O que é o Amazon Simple Queue Service?](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) 
+  [O que é o Amazon MQ?](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html) 
+  [Ajuste de escala baseado no Amazon SQS](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) 
+  [O que é o AWS Step Functions?](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 
+  [O que é o AWS Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 
+  [Usar o AWS Lambda com o Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html) 
+  [O que é o Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) 
+ [Gerenciara fluxos de trabalho assíncronos com uma API REST](https://aws.amazon.com/blogs/architecture/managing-asynchronous-workflows-with-a-rest-api/)

 **Vídeos relacionados:** 
+ [AWS re:Invent 2023: Navegar na jornada rumo à arquitetura orientada a eventos sem servidor](https://www.youtube.com/watch?v=hvGuqHp051c)
+ [AWS re:Invent 2023: Usar a tecnologia sem servidor para arquitetura orientada a eventos e design orientado por domínio](https://www.youtube.com/watch?v=3foMZJSPMI4)
+ [AWS re:Invent 2023: Padrões avançados orientados a eventos com o Amazon EventBridge](https://www.youtube.com/watch?v=6X4lSPkn4ps)
+ [AWS re:Invent 2023: Arquitetura sustentável: passado, presente e futuro](https://www.youtube.com/watch?v=2xpUQ-Q4QcM)
+ [Padrões de mensagens assíncronas \$1 Eventos da AWS](https://www.youtube.com/watch?v=-yJqBuwouZ4)

 **Exemplos relacionados:** 
+ [Arquitetura orientada a eventos com processadores AWS Graviton e instâncias spot do Amazon EC2](https://catalog.workshops.aws/well-architected-sustainability/en-US/2-software-and-architecture/event-driven-architecture-with-graviton-spot)