Che cos'è l'elasticità del cloud?

L'elasticità del cloud è la capacità di un sistema cloud di modificare automaticamente le proprie risorse di computing per adattarsi a un workload in evoluzione. Chiamato anche computing elastico, questo concetto è come un elastico: può allungarsi per gestire più lavoro e poi tornare alla sua forma originale quando il lavoro è finito, il che significa che non devi indovinare quanta capacità ti servirà in anticipo. Invece, il tuo servizio cloud ti offre automaticamente più potenza di elaborazione, memoria o spazio di archiviazione quando c'è un picco di traffico e poi lo ridimensiona quando le cose rallentano. Questo può aiutare le aziende a risparmiare denaro pagando solo le risorse che utilizzano.

Comprendere l'elasticità del computing

L'elasticità del cloud è un vantaggio fondamentale del cloud computing che consente all'infrastruttura cloud di un'azienda di aumentare o ridurre automaticamente le proprie risorse in base alla domanda. Il significato principale dell'elasticità del cloud è la capacità di adattarsi a cambiamenti imprevedibili nel workload senza l'aiuto umano.

Ad esempio, un sito web di e-commerce potrebbe registrare un enorme aumento del traffico in occasione di una festività come il Black Friday. Con il computing elastico, il sito web ottiene automaticamente più server per gestire il picco di traffico, garantendo ai clienti un'esperienza di acquisto fluida. Una volta terminata la festività, il sistema riduce le risorse ai livelli normali.

Tipi di elasticità del cloud

Un sistema può utilizzare l'elasticità in due modi principali: orizzontale e verticale.

Questa operazione è anche chiamata "fare lo scale out" o "fare lo scale in". Comporta l'aggiunta o la rimozione di più macchine o istanze al sistema. Quando hai bisogno di più capacità, aggiungi altri server. Quando non ti servono più, le elimini. Viene spesso utilizzato per applicazioni che possono essere suddivise ed eseguite su più server contemporaneamente.

Questa operazione è anche chiamata "fare lo scale up" o "fare lo scale down". Ciò comporta l'aumento o la diminuzione delle risorse di una singola macchina. Ad esempio, se hai bisogno di più potenza per un server specifico, gli assegnerai più CPU, memoria o spazio di archiviazione. Al termine, puoi ridurre queste risorse.

Elasticità e scalabilità del cloud

Sebbene i termini elasticità e scalabilità siano spesso usati insieme, descrivono cose diverse.

  • La scalabilità del cloud è la capacità di un sistema di gestire un workload maggiore nel tempo aggiungendo più risorse. È una strategia di crescita pianificata a lungo termine. Ad esempio, un'azienda potrebbe sapere che avrà più utenti ogni anno, quindi prevede di aggiungere più server al suo data center.
  • L'elasticità del cloud è la capacità di un sistema di adattarsi a cambiamenti improvvisi e imprevedibili della domanda in tempo reale. È un processo automatico e reattivo che si concentra sull'efficienza e sul risparmio dei costi.

Pensa alla scalabilità come alla preparazione per una grande maratona, allenandoti per mesi. L'elasticità è come un corridore che può accelerare o rallentare istantaneamente il proprio ritmo durante la gara per tenere il passo degli altri corridori.

Vantaggi dell'utilizzo dell'elasticità del cloud

L'elasticità del computing offre molti potenziali vantaggi per le aziende e gli sviluppatori.

Efficienza in termini di costi

Il computing elastico può aiutarti a risparmiare denaro pagando solo le risorse che utilizzi. Quando la domanda è bassa, non devi mantenere in esecuzione server aggiuntivi, il che riduce le spese inutili. Puoi anche evitare di acquistare hardware costoso per gestire il picco di traffico che ti serve solo poche volte all'anno.

Alta disponibilità e affidabilità

Regolando automaticamente le risorse, l'elasticità del computing può contribuire a garantire che la tua applicazione rimanga disponibile e adattabile anche durante picchi di traffico imprevisti. In questo modo, puoi prevenire rallentamenti o arresti anomali che potrebbero frustrare gli utenti o danneggiare la reputazione della tua attività.

Prestazioni migliorate

Il sistema aggiunge automaticamente le risorse quando necessario, il che può contribuire a mantenere tempi di risposta rapidi e un'esperienza utente fluida. Questo è particolarmente importante per le applicazioni con workload imprevedibili, come i giochi online, i servizi di streaming o l'e-commerce.

Gestione semplificata

Poiché il processo di scalabilità è automatizzato, gli sviluppatori e i team IT non devono monitorare e regolare manualmente le risorse. Questo può liberare tempo e risorse che possono essere concentrate su altre attività importanti, come lo sviluppo di nuove funzionalità o il miglioramento dell'esperienza utente.

Elaborazione elastica per gli sviluppatori aziendali

Per gli sviluppatori in un ambiente aziendale, l'elasticità del computing non è solo una funzionalità, ma una strategia importante che può aiutare a creare applicazioni resilienti, convenienti ed efficienti. Si tratta di progettare sistemi in grado di adattarsi in modo intelligente a workload imprevedibili, evitando sia l'over-provisioning che l'under-provisioning. Ciò è particolarmente importante per le applicazioni mission critical che devono rimanere disponibili 24 ore su 24, 7 giorni su 7, come le piattaforme di e-commerce, i servizi finanziari o le pipeline di elaborazione dei dati.

Creazione di sistemi elastici con Compute Engine

L'elasticità del cloud è il principio fondamentale alla base del funzionamento dei gruppi di istanze gestite (MIG) di Compute Engine. Invece di eseguire manualmente il provisioning delle VM per gestire il traffico, puoi progettare un sistema che si adatti automaticamente alle variazioni della domanda. Un MIG è un gruppo di VM identiche che puoi gestire come una singola entità ed è lo strumento principale per la creazione di un sistema elastico su Compute Engine. Il MIG utilizza un gestore della scalabilità automatica per aggiungere o rimuovere automaticamente le VM dal gruppo in base a metriche predefinite, ottenendo così l'elasticità.

Ecco come uno sviluppatore aziendale può applicare praticamente questi concetti per creare un sistema scalabile:

Crea una blueprint VM: un modello di istanza

Prima di poter creare un sistema elastico, è necessario un modello di istanza. Questo modello funge da singola origine di verità per la configurazione della VM dell'applicazione, inclusi il tipo di macchina, il disco di avvio e tutti gli script di avvio necessari. In questo modo, ogni nuova VM è una replica esatta dell'ultima, il che favorisce la coerenza e semplifica i rollout.

Configura il gruppo di istanze gestite

Vai alla pagina "Gruppi di istanze" nella console Google Cloud e crea un nuovo gruppo di istanze gestite. Seleziona il modello di istanza che hai creato, imposta un numero minimo e massimo di istanze e scegli le zone per il tuo gruppo per garantire ridondanza e alta affidabilità.

Implementare regole di scalabilità automatica

Questo è il cuore dell'elasticità del cloud. Invece di una semplice scalabilità basata sulla CPU, gli sviluppatori aziendali possono implementare regole di scalabilità automatica avanzate basate su metriche di Cloud Monitoring (come la lunghezza di una coda per un servizio worker di backend) o utilizzare la scalabilità automatica predittiva, che utilizza i dati storici per avviare nuove VM prima che si verifichi un picco di traffico.

Aggiungi un bilanciatore del carico

Per qualsiasi applicazione rivolta al pubblico, un bilanciatore del carico è essenziale per distribuire il traffico utente in entrata su tutte le VM del gruppo di istanze gestite, il che garantisce che nessuna singola VM sia sovraccarica e che l'applicazione rimanga altamente affidabile.

Crea una blueprint VM: un modello di istanza

Prima di poter creare un sistema elastico, è necessario un modello di istanza. Questo modello funge da singola origine di verità per la configurazione della VM dell'applicazione, inclusi il tipo di macchina, il disco di avvio e tutti gli script di avvio necessari. In questo modo, ogni nuova VM è una replica esatta dell'ultima, il che favorisce la coerenza e semplifica i rollout.

Configura il gruppo di istanze gestite

Vai alla pagina "Gruppi di istanze" nella console Google Cloud e crea un nuovo gruppo di istanze gestite. Seleziona il modello di istanza che hai creato, imposta un numero minimo e massimo di istanze e scegli le zone per il tuo gruppo per garantire ridondanza e alta affidabilità.

Implementare regole di scalabilità automatica

Questo è il cuore dell'elasticità del cloud. Invece di una semplice scalabilità basata sulla CPU, gli sviluppatori aziendali possono implementare regole di scalabilità automatica avanzate basate su metriche di Cloud Monitoring (come la lunghezza di una coda per un servizio worker di backend) o utilizzare la scalabilità automatica predittiva, che utilizza i dati storici per avviare nuove VM prima che si verifichi un picco di traffico.

Aggiungi un bilanciatore del carico

Per qualsiasi applicazione rivolta al pubblico, un bilanciatore del carico è essenziale per distribuire il traffico utente in entrata su tutte le VM del gruppo di istanze gestite, il che garantisce che nessuna singola VM sia sovraccarica e che l'applicazione rimanga altamente affidabile.

Risolvi le tue sfide aziendali con Google Cloud

I nuovi clienti ricevono 300 $ di crediti gratuiti da spendere su Google Cloud.

Risorse aggiuntive

Fai il prossimo passo

Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.

Google Cloud