

# SUS03-BP01 Ottimizzazione del software e delle architetture per processi asincroni e pianificati
<a name="sus_sus_software_a2"></a>

Utilizza modelli efficienti di software e di architettura, come quelli basati sulle code, per mantenere un utilizzo elevato e costante delle risorse distribuite.

 **Anti-pattern comuni:** 
+  Provisioning di risorse in eccedenza per il carico di lavoro in cloud con lo scopo di far fronte a picchi di domanda imprevisti. 
+  Architettura non in grado di disaccoppiare i mittenti e i ricevitori di messaggi asincroni mediante un componente di messaggistica. 

 **Vantaggi dell'adozione di questa best practice:** 
+  Modelli efficienti di software e architettura riducono al minimo le risorse inutilizzate nel carico di lavoro e migliorano l'efficienza complessiva. 
+  È possibile dimensionare le risorse dedicate all'elaborazione indipendentemente dalla ricezione di messaggi asincroni. 
+  Grazie a un componente di messaggistica, i requisiti di disponibilità si attenuano e possono essere soddisfatti con un numero inferiore di risorse. 

 **Livello di rischio associato se questa best practice non fosse adottata:** Medium 

## Guida all'implementazione
<a name="implementation-guidance"></a>

 Utilizza modelli di architettura efficienti, come l'[architettura basata su eventi](https://aws.amazon.com/event-driven-architecture/), che consentono un utilizzo uniforme dei componenti e riducono al minimo il provisioning in eccedenza nel carico di lavoro. L'utilizzo di modelli architetturali efficienti riduce al minimo le risorse inattive a causa del mancato utilizzo dovuto alle variazioni della domanda nel tempo. 

 Comprendi i requisiti dei componenti del carico di lavoro e adotta modelli di architettura che aumentino l'utilizzo complessivo delle risorse. Ritira i componenti che non sono più necessari. 

 **Passaggi dell'implementazione** 
+  Analizza le esigenze del tuo carico di lavoro per determinare come rispondere a tali richieste. 
+  Per le richieste o i processi che non necessitano di risposte sincrone, utilizza architetture basate su code e worker a scalabilità automatica per massimizzare l'utilizzo. Ecco alcuni esempi in cui potresti prendere in considerazione un'architettura basata sulle code: 


<table>
<thead>
  <tr><th>Queuing mechanism</th><th>Description</th></tr>
</thead>
<tbody>
  <tr><td><a href="https://docs.aws.amazon.com/batch/latest/userguide/job_queues.html">code di processi AWS Batch</a></td><td>I processi AWS Batch vengono inviati a una coda di processi, dove risiedono fino a quando non è possibile pianificare la loro esecuzione in un ambiente di calcolo.</td></tr>
  <tr><td><a href="https://aws.amazon.com/blogs/compute/running-cost-effective-queue-workers-with-amazon-sqs-and-amazon-ec2-spot-instances/">Amazon Simple Queue Service e istanze spot Amazon EC2</a></td><td>Abbina Amazon SQS e istanze spot per realizzare un'architettura efficiente e in grado di tollerare i malfunzionamenti.</td></tr>
</tbody>
</table>

+  Per le richieste o i processi che possono essere elaborati in qualsiasi momento, ottieni una maggiore efficienza utilizzando i meccanismi di pianificazione dell'elaborazione delle attività in blocco. Ecco alcuni esempi di meccanismi di pianificazione su AWS: 


<table>
<thead>
  <tr><th>Scheduling mechanism</th><th>Description</th></tr>
</thead>
<tbody>
  <tr><td><a href="https://aws.amazon.com/blogs/compute/introducing-amazon-eventbridge-scheduler/">Sistema di pianificazione Amazon EventBridge</a></td><td>Una funzionalità di <a href="https://aws.amazon.com/eventbridge/">Amazon EventBridge</a> che consente di creare, eseguire e gestire attività pianificate su larga scala.</td></tr>
  <tr><td><a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html">Pianificazione basata sul tempo di AWS Glue</a></td><td>Definisci una pianificazione in base al tempo per crawler e processi in AWS Glue.</td></tr>
  <tr><td><a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduled_tasks.html">Attività pianificate di Amazon Elastic Container Service (Amazon ECS)</a></td><td>Amazon ECS supporta le creazione di attività pianificate. Le attività pianificate utilizzano le regole di Amazon EventBridge per l'esecuzione in base a una pianificazione p in risposta a un evento EventBridge.</td></tr>
  <tr><td><a href="https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/">Instance Scheduler</a></td><td>Configura le pianificazioni di avvio e arresto delle istanze Amazon EC2 e Amazon Relational Database Service.</td></tr>
</tbody>
</table>

+  Se nella tua architettura utilizzi meccanismi di polling e webhook, sostituiscili con eventi. Utilizza [architetture basate su eventi](https://docs.aws.amazon.com/lambda/latest/operatorguide/event-driven-architectures.html) per realizzare carichi di lavoro efficienti. 
+  Approfitta dei servizi [serverless su AWS](https://aws.amazon.com/serverless/) per eliminare la necessità di provisioning in eccedenza sull'infrastruttura. 
+  Dimensiona in modo appropriato i singoli componenti dell'architettura per evitare la presenza di risorse inattive in attesa di input. 

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

 **Documenti correlati:** 
+  [Che cos'è Amazon Simple Queue Service?](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) 
+  [Che cos'è Amazon MQ?](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html) 
+  [Dimensionamento basato su Amazon SQS](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) 
+  [Che cos'è AWS Step Functions?](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 
+  [Che cos'è AWS Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 
+  [Utilizzo di AWS Lambda con Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html) 
+  [Che cos'è Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) 

 **Video correlati:** 
+  [Passaggio ad architetture basate su eventi](https://www.youtube.com/watch?v=h46IquqjF3E) 