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.
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.
Esistono diversi modi per impostare questi burst a seconda del livello di controllo o automazione di cui ha bisogno un team.
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.
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.
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.
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).
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.
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 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.
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.
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.
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.
Inizia a creare su Google Cloud con 300 $ di crediti senza costi e oltre 20 prodotti Always Free.