SUS03-BP01 Ottimizzazione del software e delle architetture per processi asincroni e pianificati - Framework AWS Well-Architected

SUS03-BP01 Ottimizzazione del software e delle architetture per processi asincroni e pianificati

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

Utilizza modelli di architettura efficienti, come l'architettura basata su eventi, 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:

    Queuing mechanism Description

    code di processi AWS Batch

    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.

    Amazon Simple Queue Service e istanze spot Amazon EC2

    Abbina Amazon SQS e istanze spot per realizzare un'architettura efficiente e in grado di tollerare i malfunzionamenti.

  • 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:

    Scheduling mechanism Description

    Sistema di pianificazione Amazon EventBridge

    Una funzionalità di Amazon EventBridge che consente di creare, eseguire e gestire attività pianificate su larga scala.

    Pianificazione basata sul tempo di AWS Glue

    Definisci una pianificazione in base al tempo per crawler e processi in AWS Glue.

    Attività pianificate di Amazon Elastic Container Service (Amazon ECS)

    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.

    Instance Scheduler

    Configura le pianificazioni di avvio e arresto delle istanze Amazon EC2 e Amazon Relational Database Service.

  • Se nella tua architettura utilizzi meccanismi di polling e webhook, sostituiscili con eventi. Utilizza architetture basate su eventi per realizzare carichi di lavoro efficienti.

  • Approfitta dei servizi serverless su AWS 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

Documenti correlati:

Video correlati: