Che cos'è il cloud bursting?

Il cloud bursting è una configurazione nel cloud computing in cui un'applicazione viene eseguita in un cloud privato o in un data center on-premise ed "esplode" in un cloud pubblico quando la domanda di capacità di computing aumenta. In sostanza, funge da valvola di sfogo, in modo che quando l'infrastruttura privata raggiunge il suo limite, il traffico venga automaticamente indirizzato ai servizi di cloud pubblico per garantire l'assenza di interruzioni del servizio. È come un negozio al dettaglio che apre casse aggiuntive solo quando le file diventano troppo lunghe. La configurazione del cloud bursting è un tipo specifico di deployment di cloud ibrido.

In un modello di scalabilità cloud standard, un'azienda potrebbe provare a gestire tutto in un unico ambiente. Tuttavia, possedere un numero sufficiente di server fisici per gestire il giorno più impegnativo dell'anno significa che questi server rimangono vuoti e inutilizzati per gli altri 364 giorni. Il cloud bursting può aiutare a risolvere questo problema, in quanto può consentire a un'organizzazione di pagare la capacità di base nel proprio data center e pagare solo le risorse extra del cloud pubblico quando ne ha effettivamente bisogno. Questo approccio può aiutare le aziende a gestire improvvisi picchi di traffico senza dover acquistare hardware costoso che non serve sempre.

Come funziona il cloud bursting

Per comprendere la meccanica di un cloud burst, immagina il tuo cloud privato come un serbatoio d'acqua. In condizioni normali, l'acqua (il traffico di dati) rimane all'interno della capacità del serbatoio. Tuttavia, quando si verifica una tempesta improvvisa (un picco di traffico), il serbatoio rischia di traboccare.

In una configurazione di cloud bursting, i team IT configurano un "trigger" o una soglia, in genere quando l'utilizzo delle risorse raggiunge circa il 70-80%. Una volta superata questa soglia, il sistema apre automaticamente una valvola a un serbatoio secondario, il cloud pubblico. L'applicazione continua a essere eseguita senza problemi, con il traffico in eccesso che viene instradato alle risorse del cloud pubblico. Una volta passata la tempesta e quando i livelli di traffico tornano a diminuire, il sistema chiude la valvola e disattiva le risorse del cloud pubblico, riportando le operazioni esclusivamente al cloud privato.

Tipi di cloud bursting

Esistono diversi modi per impostare questi burst a seconda del livello di controllo o automazione di cui ha bisogno un team.

  • Bursting manuale: si verifica quando un amministratore aggiunge manualmente risorse cloud pubbliche. Questo può essere utile per eventi prevedibili, come il lancio di un software pianificato, in cui una persona può decidere esattamente quando avviare e interrompere la capacità extra.
  • Bursting automatizzato: questo metodo utilizza policy software per attivare il burst. Quando il sistema rileva che l'utilizzo delle risorse ha raggiunto un limite specifico, può avviare automaticamente risorse aggiuntive nel cloud pubblico senza intervento umano.
  • Bilanciamento del carico distribuito: questo approccio distribuisce il traffico sia sul cloud privato che su quello pubblico contemporaneamente. Instrada le richieste degli utenti verso la località più vicina o con la maggiore capacità disponibile in quel momento.

Quando utilizzare il cloud bursting

Il cloud bursting non è sempre la soluzione giusta per ogni applicazione, soprattutto per quelle che si basano su dati complessi e sensibili che non possono lasciare una rete privata. In genere è più adatta ai workload con modelli di domanda fluttuanti, stagionali o imprevedibili in cui la velocità e l'uptime sono fondamentali, ad esempio nelle seguenti situazioni:

I retailer spesso devono affrontare enormi picchi di traffico durante eventi di shopping popolari come il Black Friday o il Cyber Monday. Il cloud bursting consente a queste aziende di gestire milioni di acquirenti per alcuni giorni utilizzando il cloud pubblico, per poi tornare alla propria infrastruttura privata quando il picco di traffico è terminato.

I data scientist e gli ingegneri spesso eseguono attività di computing ad alte prestazioni (HPC) come simulazioni complesse, addestramento di modelli di AI o altri calcoli pesanti come il rendering 3D. Questi job potrebbero aver bisogno di migliaia di server solo per poche ore. Il bursting consente ai team di noleggiare temporaneamente questa enorme potenza invece di aspettare in una lunga coda di supercomputer o di costruire un supercomputer che sarà sottoutilizzato.

Gli sviluppatori di software hanno spesso bisogno di creare ambienti temporanei per testare nuovo codice o aggiornamenti. Invece di occupare spazio sui server privati principali, possono trasferire questi ambienti di test sul cloud pubblico. Ciò contribuisce a mantenere l'ambiente di produzione sicuro e stabile.

Se un data center locale va offline a causa di un'interruzione di corrente o di una calamità naturale, il cloud bursting può fungere da meccanismo di failover a supporto del disaster recovery. Il sistema può reindirizzare il traffico al cloud pubblico per mantenere l'applicazione in esecuzione fino a quando il sito principale non viene riparato.

Come possono le organizzazioni implementare il cloud bursting?

L'implementazione del cloud bursting richiede più di due ambienti di computing; richiede una strategia per gestire la complessità dello spostamento di dati e applicazioni tra di essi. Per farlo in modo efficace, le organizzazioni hanno bisogno di funzionalità che garantiscano una connettività perfetta e una gestione coerente.

Configurazione di un trigger di burst con GKE

Uno dei modi più efficaci per implementare un trigger di cloud bursting è utilizzare Google Kubernetes Engine (GKE) e Horizontal Pod Autoscaler (HPA) con metriche esterne. In questo scenario, l'applicazione on-premise invia un segnale (una metrica) a Google Cloud Monitoring. Quando questo segnale supera una soglia, GKE avvia automaticamente nuovi pod nel cloud per gestire il carico.

Ecco come puoi configurare un trigger basato sulla profondità della coda Pub/Sub (un indicatore comune del fatto che i tuoi worker on-premise sono sovraccarichi):

1. Abilita l'API delle metriche personalizzate: per prima cosa, devi consentire al tuo cluster GKE di leggere le metriche da Cloud Monitoring. A tale scopo, devi eseguire il deployment dell'adattatore Stackdriver delle metriche personalizzate nel tuo cluster. Questo adattatore funge da ponte, traducendo le metriche di Google Cloud in qualcosa che Kubernetes può comprendere.

  • Bash
Caricamento in corso...

2. Definisci la configurazione HPA: crea un file YAML HorizontalPodAutoscaler. A differenza di un gestore della scalabilità automatica standard che esamina l'utilizzo della CPU, questo esaminerà una metrica esterna, in particolare il numero di messaggi non consegnati in una sottoscrizione Pub/Sub (num_undelivered_messages).

  • YAML
Caricamento in corso...

3. Applica e monitora: applica questa configurazione utilizzando kubectl apply -f hpa.yaml. Ora GKE "monitora" la tua coda. Se il sistema on-premise rallenta e la coda si riempie oltre il target (50 messaggi), l'HPA attiverà automaticamente la creazione di nuovi pod nel cloud per elaborare il backlog. Una volta che la coda è vuota, GKE ridimensionerà i pod fino a zero.

Ottimizzazione tramite monitoraggio

Non si può gestire ciò che non si può misurare. Per far funzionare il cloud bursting, i team IT hanno bisogno di una visione chiara delle proprie risorse sia nel data center privato che nel cloud pubblico. Google Cloud offre strumenti che forniscono una visibilità granulare su come le applicazioni utilizzano CPU e memoria.

Comprendendo esattamente quanto "carburante" consuma un'applicazione, i team possono impostare soglie accurate per il momento in cui eseguire il burst. Se la soglia è troppo bassa, potresti spendere denaro per il cloud pubblico quando non è necessario. Se è troppo alto, l'app potrebbe bloccarsi prima che arrivino le nuove risorse. Il monitoraggio unificato aiuta le organizzazioni a ottimizzare queste impostazioni per bilanciare prestazioni e costi.

Il ruolo dell'automazione

Il bilanciamento manuale funziona per progetti piccoli e poco frequenti, ma potrebbe non essere scalabile per le applicazioni aziendali. Per essere più efficienti, le organizzazioni possono implementare software e strumenti per orchestrare automaticamente le risorse di cloud computing. Gli strumenti di automazione, come Terraform o Deployment Manager di Google Cloud, possono aiutare a definire l'infrastruttura come codice (IaC).

Ciò significa che il sistema può eseguire il provisioning, la configurazione e la gestione dei server in modo automatico in base alla domanda in tempo reale. Quando il picco di traffico si attenua, gli strumenti di automazione gestiscono anche il "deprovisioning", ovvero la chiusura di queste risorse. Ciò garantisce che l'azienda smetta di pagare per il cloud pubblico nel momento in cui non è più necessario.

Controlli (monitoraggio e report)

Mantenere il controllo durante un picco è fondamentale per la sicurezza e la gestione del budget. Le organizzazioni hanno bisogno di solide funzionalità di monitoraggio per tenere traccia delle risorse e assicurarsi che siano correttamente sottoposte a provisioning senza interruzioni del servizio.

Gli strumenti di generazione di report aiutano a monitorare i costi di bursting nel tempo. Questi dati sono essenziali per prevedere i budget futuri. Inoltre, alle risorse di burst devono essere applicate policy di sicurezza coerenti. Gli strumenti che implementano il monitoraggio e la creazione di report possono contribuire a ridurre i costi e aumentare l'efficienza nel tempo identificando tendenze e anomalie nell'utilizzo.

Vantaggi del cloud bursting

L'adozione di una strategia di cloud bursting può offrire diversi vantaggi alle organizzazioni che cercan o di bilanciare prestazioni e budget.

Risparmi sui costi

Le aziende pagano le risorse aggiuntive del cloud pubblico solo quando le utilizzano, il che può aiutare a evitare le spese in conto capitale per l'acquisto di hardware che rimane inattivo durante i periodi di calma.

Flessibilità e scalabilità

Può dare ai team la libertà di testare nuovi progetti o gestire picchi massicci di traffico senza essere limitati dallo spazio fisico o dalla potenza disponibile nel proprio data center.

Continuità operativa e resilienza

Se il data center privato ha un problema o viene sovraccaricato, l'applicazione rimane online spostando il carico sul cloud pubblico, il che aiuta a prevenire arresti anomali e tempi di inattività.

Ottimizzazione delle risorse

I team IT possono mantenere il loro cloud privato in esecuzione a un livello costante ed efficiente per le attività critiche, scaricando il traffico variabile e imprevedibile sul cloud pubblico flessibile.

Risolvi le tue sfide aziendali con Google Cloud

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

Vantaggio di Google Cloud per il bursting e la scalabilità

Sebbene il concetto di cloud bursting sia universale, l'infrastruttura che lo supporta varia in modo significativo tra i provider. Google Cloud offre vantaggi specifici che rendono il bursting ibrido più veloce, affidabile e facile da gestire.

  • Piattaforma coerente con GKE Enterprise: molte soluzioni ibride richiedono ai team di gestire due ambienti diversi, uno on-premise e uno per il cloud, il che può creare problemi di compatibilità durante un burst. GKE Enterprise di Google Cloud fornisce un runtime Kubernetes coerente in entrambi gli ambienti. Ciò significa che un'applicazione creata per il tuo data center privato può essere trasferita istantaneamente in Google Cloud senza bisogno di modifiche al codice o di un replatforming complesso.
  • Prestazioni di rete migliorate: quando un'applicazione subisce un burst, i dati devono viaggiare tra il data center privato e il cloud pubblico. Google gestisce una delle più grandi reti private in fibra ottica del mondo. Mantenendo il traffico su questo backbone privato anziché sulla rete internet pubblica, Google Cloud può ridurre la latenza e migliorare la sicurezza durante eventi critici con traffico elevato.
  • Bilanciamento del carico globale avanzato: Google Cloud Load Balancing non si limita a instradare il traffico, ma può rispondere ai picchi di traffico in pochi secondi (non minuti) e distribuire i carichi tra le regioni a livello globale. Se un burst locale non è sufficiente, la rete può instradare automaticamente gli utenti alla regione più vicina con capacità disponibile, offrendo un livello di resilienza difficile da raggiungere con gli strumenti di rete standard.
  • Flessibilità open source: poiché Google Cloud è basato su standard aperti come Kubernetes e TensorFlow, le organizzazioni evitano il vincolo del fornitore. Puoi creare una strategia di bursting che funzioni oggi e mantenga la flessibilità necessaria per adattare la tua infrastruttura in futuro.

Risorse aggiuntive

Fai il prossimo passo

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

Google Cloud