Riepilogo
Ecco alcuni dei punti chiave illustrati in questo modulo sull'elasticità:
- Le macchine virtuali e altre risorse cloud hanno raramente carichi costanti. Al contrario, sperimentano carichi variabili, che a volte variano nel tempo di un ordine di grandezza o più.
- Dimensionare la capacità di calcolo sulla base dei picchi di carico garantisce la qualità del servizio (QoS), ma comporta un aumento dei costi e dell'utilizzo di energia.
- Per elasticità si intende la possibilità di aggiungere risorse per gestire carichi più elevati e rimuovere risorse quando il carico diminuisce.
- L'elasticità nel cloud viene realizzata ridimensionando risorse quali macchine virtuali e database.
- Per aumento e riduzione delle istanze (scalabilità orizzontale) si intende la possibilità di aumentare e ridurre il numero di risorse dedicate a un'attività, ad esempio aumentare il numero di macchine virtuali che servono gli utenti del sito Web da 10 a 15.
- Per aumento e riduzione delle prestazioni (scalabilità verticale) si intende la possibilità di sostituire le risorse esistenti con altre più o meno potenti, ad esempio sostituire una macchina virtuale del server Web contenente 2 core e 4 GB di RAM con una contenente 4 core e 8 GB di RAM.
- Il ridimensionamento delle risorse in base alla domanda mantiene l'utilizzo di risorse relativamente costante, riduce i costi e migliora l'utilizzo di energia.
- Il ridimensionamento automatico consente di ridimensionare le risorse in base a regole o criteri stabiliti da un amministratore cloud. Le regole o i criteri possono essere basati sul tempo, su metriche o su entrambi. Un esempio di ridimensionamento automatico basato su metriche è portare online istanze aggiuntive quando l'utilizzo medio della CPU raggiunge una soglia prestabilita, ad esempio il 70%.
- Il ridimensionamento automatico basato sul tempo, noto anche come ridimensionamento automatico pianificato, è ideale quando i carichi sono ciclici e prevedibili.
- Il ridimensionamento automatico basato su metriche consente di gestire carichi sia prevedibili che imprevedibili.
- Un bilanciamento efficace del carico è fondamentale per l'implementazione di servizi cloud scalabili.
- I servizi di bilanciamento del carico usano diversi tipi di algoritmi per distribuire il carico, tra cui algoritmi round robin e basati su hash.
- Alcuni servizi di bilanciamento del carico provano a inviare le richieste in modo più intelligente, usando metriche come il tempo di esecuzione delle richieste e l'utilizzo di CPU in ogni nodo.
- I servizi di bilanciamento del carico aumentano inoltre la disponibilità, monitorando l'integrità delle risorse back-end e rilevando quando queste risorse non sono disponibili.
- Poiché un singolo servizio di bilanciamento del carico rappresenta un singolo punto di guasto, i servizi di bilanciamento del carico vengono spesso distribuiti in coppie.
- L'elaborazione serverless offre diversi vantaggi, tra cui prezzi basati sul consumo, scalabilità automatica e costi amministrativi ridotti
- Un esempio di elaborazione serverless è rappresentato dalle funzioni serverless, che consentono di caricare codice nel cloud e definire quando eseguirlo.
- Un altro esempio sono i flussi di lavoro serverless, che consentono di definire flussi di lavoro aziendali, in genere usando finestre di progettazione grafica e senza scrivere codice, e di specificare quando eseguirli.
- L'elaborazione serverless si estende anche ai database, che vengono ridimensionati per soddisfare la domanda posta su di essi.