SUS02-BP01 Scalare dinamicamente l'infrastruttura dei carichi di lavoro - Pilastro della sostenibilità

SUS02-BP01 Scalare dinamicamente l'infrastruttura dei carichi di lavoro

Usa l'elasticità del cloud e dimensiona la tua infrastruttura in modo dinamico per rispondere alla richiesta di fornitura di risorse cloud ed evitare il provisioning eccessivo nel tuo carico di lavoro.

Anti-pattern comuni:

  • Mancato dimensionamento dell'infrastruttura in base al carico degli utenti.

  • Costante dimensionamento manuale dell'infrastruttura.

  • Dopo un evento di dimensionamento, lasci una capacità aumentata anziché ridurre il dimensionamento.

Vantaggi dell'adozione di questa best practice: configurazione e test dell'elasticità del carico di lavoro consentono di abbinare in modo ottimale l'offerta di risorse cloud alla domanda ed evitare capacità con un provisioning eccessivo. Puoi sfruttare i vantaggi dell'elasticità nel cloud per scalare automaticamente la capacità durante e dopo i picchi di richiesta ed essere sicuro di utilizzare solo il numero esatto di risorse necessario per soddisfare le esigenze aziendali.

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

Guida all'implementazione

Il cloud offre la flessibilità necessaria per espandere o ridurre le risorse in modo dinamico attraverso una serie di meccanismi per soddisfare i cambiamenti della domanda. La corrispondenza ottimale tra offerta e domanda consente l'impatto ambientale più basso per un carico di lavoro.

La domanda può essere fissa o variabile e richiede parametri e automazione, allo scopo di garantire che la gestione non diventi particolarmente onerosa. Le applicazioni possono essere scalate verticalmente (verso l'alto o verso il basso) modificando la dimensione dell'istanza, orizzontalmente (aumentando o diminuendo) modificando il numero di istanze o tramite una combinazione delle due opzioni.

Puoi adottare varie strategie di approccio per associare l'offerta di risorse alla domanda.

  • Approccio al tracciamento degli obiettivi: monitora il parametro di dimensionamento e aumenta o diminuisci automaticamente la capacità in base alle esigenze.

  • Dimensionamento predittivo: procedi a ridurre orizzontalmente in previsione delle tendenze giornaliere e settimanali.

  • Approccio basato sulla pianificazione: imposta il tuo programma di dimensionamento in base alle variazioni di carico prevedibili.

  • Scalabilità dei servizi: scegli servizi (come il serverless) dotati dimensionamento nativo per progettazione o con dimensionamento automatico come funzionalità.

Identifica i periodi di utilizzo assente o ridotto e dimensiona le risorse per evitare capacità in eccesso e migliorare il livello di efficienza.

Passaggi dell'implementazione

  • L'elasticità corrisponde all'offerta di risorse disponibili rispetto alla relativa domanda. Istanze, container e funzioni offrono meccanismi di elasticità, sia insieme al dimensionamento automatico sia come funzionalità del servizio. AWS offre una gamma di meccanismi di dimensionamento automatico per avere la certezza che sia possibile procedere a ridurre verticalmente i carichi di lavoro in modo facile e veloce nei periodi di basso carico di utenti. Ecco alcuni esempi di meccanismi di dimensionamento automatico:

    Meccanismo di dimensionamento automatico Dove usarlo

    Amazon EC2 Auto Scaling

    Da utilizzare per verificare che sia disponibile il numero corretto di istanze Amazon EC2 per gestire il carico degli utenti dell'applicazione.

    Application Auto Scaling

    Da utilizzare per scalare in automatico le risorse per singoli servizi AWS oltre Amazon EC2, ad esempio, funzioni Lambda o servizi Amazon Elastic Container Service (Amazon ECS).

    Kubernetes Cluster Autoscaler

    Da utilizzare per scalare automaticamente i cluster Kubernetes su AWS.

  • Si parla spesso di dimensionamento con servizi di calcolo come le istanze Amazon EC2 o le funzioni AWS Lambda. Prendi in considerazione la configurazione di servizi non di calcolo, come le unità di capacità di lettura e scrittura di Amazon DynamoDB o le partizioni del flusso di dati Amazon Kinesis per soddisfare la domanda.

  • Verifica che le metriche per l'aumento verticale o orizzontale siano convalidate in base al tipo di carico di lavoro implementato. Se implementi un'applicazione di transcodifica video, è previsto il 100% di utilizzo della CPU e non deve essere il parametro principale. Se necessario, puoi servirti di una metrica personalizzata (ad esempio, l'utilizzo della memoria) per la policy di dimensionamento. Per scegliere la metrica corretta, consulta le linee guida seguenti per Amazon EC2:

    • La metrica deve essere una metrica di utilizzo valida e descrivere il livello di impiego di un'istanza.

    • Il valore del parametro deve aumentare e diminuire in proporzione al numero di istanze nel gruppo con scalabilità automatica.

  • Usa il dimensionamento dinamico anziché il dimensionamento manuale per il tuo gruppo Auto Scaling. È consigliabile utilizzare le policy di dimensionamento del monitoraggio degli obiettivi nel dimensionamento dinamico

  • Verifica che le implementazioni dei carichi di lavoro siano in grado di aumentare orizzontalmente e ridurre orizzontalmente. Crea scenari di test per eventi in cui si procede a ridurre orizzontalmente per verificare che il carico di lavoro si comporti secondo le aspettative e che non incida sull'esperienza utente (come nel caso della perdita di sessioni persistenti). Ad esempio, puoi usare la cronologia delle attività per verificare le attività di dimensionamento per un gruppo Auto Scaling.

  • Analizza il tuo carico di lavoro per individuare modelli prevedibili e dimensionare le tue risorse in modo proattivo, anticipando variazioni nella domanda previste e pianificate. Con il dimensionamento predittivo puoi eliminare la necessità di offrire capacità in eccedenza. Per ulteriori informazioni, consulta Dimensionamento predittivo con Amazon EC2 Auto Scaling.

Risorse

Documenti correlati:

Video correlati:

Esempi correlati: