In qualità di cloud architect o amministratore IT, quando prevedi di eseguire un'applicazione in Compute Engine, devi progettare una topologia VM che puoi eseguire il provisioning e gestire in modo efficiente.
Compute Engine offre una gamma di opzioni di deployment: ad esempio, puoi eseguire il deployment di un gruppo di VM che gestisci come un'unica entità oppure puoi eseguire il provisioning e gestire le VM come risorse individuali. Ciascun approccio presenta vantaggi e limitazioni distinti. Come si sceglie una strategia di deployment ottimale?
- Inizia valutando i requisiti chiave della tua richiesta.
- Esamina le opzioni di deployment disponibili e i relativi vantaggi.
- Seleziona una strategia che soddisfi i tuoi requisiti e utilizzi in modo ottimale le funzionalità di Compute Engine.
Valuta il tuo workload
Utilizza le seguenti domande per analizzare i requisiti chiave del carico di lavoro che vuoi eseguire il deployment. Le tue risposte ti aiuteranno a mappare le funzionalità di ogni opzione di deployment (elencate nella sezione successiva) in base ai requisiti del tuo carico di lavoro.
Stato dell'applicazione
L'applicazione è stateful?
- Un'applicazione stateful archivia determinati dati, come l'ID client o sessione, finché non sono più necessari. Ad esempio, in un'app di shopping online, il servizio del carrello degli acquisti potrebbe memorizzare i dettagli degli articoli aggiunti o rimossi man mano che l'utente continua a fare acquisti e mantenere lo stato finale del carrello quando l'utente inizia la procedura di pagamento.
- Un'applicazione senza stato non deve archiviare dati di clienti, transazioni o sessioni. Ad esempio, un server web potrebbe chiudere una sessione dopo aver pubblicato i contenuti richiesti dal client.
Per saperne di più sulle applicazioni stateful e stateless, consulta Differenze tra carichi di lavoro stateful e stateless.
I metadati specifici dell'istanza devono essere conservati quando le VM vengono riavviate o quando Compute Engine le ricrea (autoriparazione)?
Provisioning
- Le VM devono utilizzare un mix di tipi di macchine o immagini? Ad esempio, alcune VM hanno bisogno di tipi di macchine ottimizzati per la memoria, mentre altre utilizzano tipi di macchine per uso generico?
- L'infrastruttura deve scalare automaticamente in base alle variazioni di carico, in modo da mantenere un equilibrio ottimale tra costi e tempi di risposta?
- Tutte le VM possono essere eseguite all'interno di una singola zona, rete VPC e subnet?
- L'applicazione deve essere eseguita nella stessa zona di altre risorse? Ad esempio, l'applicazione richiede una connessione a bassa latenza con un database?
Operazioni
- Vuoi gestire le VM come un unico gruppo? Ad esempio, vuoi automatizzare l'implementazione degli aggiornamenti delle applicazioni su tutte le VM?
- Devi utilizzare uno strumento personalizzato o di terze parti per gestire le VM?
- Hai bisogno di controllare la gestione delle VM non riuscite? Ad esempio, se una VM non funziona, vuoi che rimanga arrestata mentre determini la causa principale del problema?
- Hai bisogno di controllare la sequenza di avvio, arresto, sospensione e ripresa o la pianificazione delle tue VM? Ad esempio, per risparmiare sui costi, prevedi di arrestare le VM durante i fine settimana o per determinate ore del giorno?
Resilienza
- L'applicazione deve essere protetta da errori a livello di zona? In altre parole, se una zona non è attiva, vuoi che l'applicazione continui a gestire le richieste provenienti dalle VM in altre zone della regione?
- Se una VM si arresta o si arresta in modo anomalo per qualsiasi motivo o se l'applicazione non risponde alle richieste, Compute Engine deve ricreare automaticamente la VM?
- L'applicazione ha bisogno di indirizzi IP interni o esterni fissi per le VM host?
Ora che hai valutato i tuoi requisiti, scopri le opzioni di deployment offerte da Compute Engine.
Esamina le opzioni di deployment disponibili
Esamina e comprendi le funzionalità e i vantaggi relativi delle opzioni che puoi prendere in considerazione per il deployment dei carichi di lavoro in Compute Engine.
- VM autonome
- Con questa opzione, scegli il tipo di macchina, l'immagine, i dischi e altri attributi singolarmente per ogni VM di cui esegui il provisioning. e gestisci le VM come risorse separate.
- Gruppo di istanze non gestito
- Puoi eseguire il provisioning di VM autonome e aggiungerle a un gruppo di istanze. Puoi quindi utilizzare il gruppo di istanze non gestite come backend di un bilanciatore del carico.
- Gruppo di istanze gestite (MIG)
Un MIG è un gruppo di istanze identiche o configurate in modo simile che esegui il provisioning utilizzando un template di istanza.
Puoi rendere un MIG stateful, in modo che dischi o metadati specifici vengano preservati.
Per un gruppo di istanze gestite stateless, puoi abilitare la scalabilità automatica e configurare una policy di scalabilità.
Durante la creazione di un MIG, puoi scegliere di eseguire il deployment delle VM all'interno di una singola zona o di distribuirle in più zone di una regione per garantire un'elevata disponibilità.
La seguente tabella riassume le funzionalità chiave di ogni opzione di deployment.
Capacità | VM standalone | Gruppo di istanze non gestite | MIG stateful | MIG stateless |
---|---|---|---|---|
Provisioning basato su modello di un gruppo di VM | ||||
Combinazione di tipi di macchina e immagini | ||||
Indirizzi IP interni o esterni fissi | ||||
Riparazione automatica delle VM con errori | ||||
Controllo delle operazioni di avvio/arresto e sospensione/ripristino della VM | ||||
Impostazione di un gruppo di VM come backend del bilanciatore del carico | ||||
Conservazione di dischi e metadati per i carichi di lavoro stateful | ||||
Aggiornamento controllato di VM specifiche | ||||
Aggiornamento in sequenza automatico di tutte le VM | ||||
Scalabilità orizzontale automatica (e predittiva) |
I seguenti diagrammi mostrano implementazioni di esempio affiancate per aiutarti a comprendere le differenze principali.
VM standalone | MIG stateful | MIG stateless |
---|---|---|
Questo esempio mostra tre VM create singolarmente. | Questo esempio mostra un MIG contenente tre VM configurate in modo simile, di cui è stato eseguito il provisioning utilizzando un template di istanza. |
Questo esempio mostra un MIG contenente tre VM identiche, di cui è stato eseguito il provisioning utilizzando un modello di istanza. |
|
|
|
|
|
|
Ora hai valutato il tuo workload, esaminato le opzioni di deployment offerte da Compute Engine e sei pronto a scegliere un approccio di deployment.
Seleziona una strategia di deployment
I suggerimenti descritti qui si basano su una mappatura delle caratteristiche specifiche del workload alle funzionalità di ciascuna opzione di deployment di Compute Engine.
Utilizza il seguente flusso decisionale. Se preferisci una guida visiva, consulta la struttura decisionale più avanti in questo documento.
Scegli tra VM autonome e gruppi di istanze.
Requisiti Strategia di implementazione consigliata Almeno uno dei seguenti requisiti è essenziale per il tuo carico di lavoro. - L'applicazione deve essere eseguita su VM che utilizzano un mix di tipi di macchine o immagini.
- L'applicazione richiede indirizzi IP interni o esterni fissi per le VM host.
- Devi avere il controllo della gestione delle VM non riuscite.
- Devi controllare le operazioni di avvio-arresto o sospensione-ripristino delle tue VM.
- Devi utilizzare uno script personalizzato o uno strumento di terze parti per eseguire il provisioning e rimuovere le VM.
Scegli VM autonome.
Se tutte le VM autonome possono essere eseguite in una singola zona, rete VPC e subnet, valuta la possibilità di aggiungere le VM a un gruppo di istanze non gestite. Puoi quindi utilizzare il gruppo di istanze non gestite come backend di un bilanciatore del carico.
Salta il resto di questo flusso decisionale.
Nessuno dei requisiti precedenti è essenziale per il tuo caso d'uso. Utilizza un MIG per configurare una topologia di Compute Engine facile da gestire, a disponibilità elevata e scalabile.
Procedi al passaggio successivo.
Scegli tra un MIG con stato e un MIG stateless.
Requisiti Tipo di MIG consigliato L'applicazione richiede la conservazione di dischi e metadati, ovvero è stateful. Scegli un gruppo di istanze gestite stateful e configura i dischi che Compute Engine deve conservare durante eventi invasivi come ricreazione, riparazione automatica e aggiornamenti di VM.
Procedi al passaggio successivo.
L'applicazione non è stateful. Scegli un MIG stateless e sfrutta la funzionalità di scalabilità automatica. Durante le operazioni distruttive, Compute Engine ricrea i dischi in base al modello di istanza.
Procedi al passaggio successivo.
Scegli tra un MIG zonale e uno regionale.
Requisiti Tipo di MIG consigliato L'applicazione deve essere eseguita in una singola zona oppure la protezione da errori a livello di zona non è essenziale. Scegli un MIG a livello di zona. L'applicazione deve continuare a essere eseguita anche in caso di errore a livello di zona. Scegli un gruppo di istanze gestite regionale.
Albero decisionale
Il seguente diagramma illustra i fattori da considerare quando decidi la strategia di deployment di Compute Engine:
Passaggi successivi
- Scopri di più sui modelli di istanza.
- Scopri come funzionano i MIG stateful.
- Scopri di più sui MIG regionali.
- Crea un MIG.
- Scalabilità automatica dei gruppi di istanze.
- Esegui la migrazione di un workload esistente a un MIG stateful.