Scegliere una strategia di deployment di Compute Engine per il carico di lavoro


In qualità di architetto cloud 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 serie 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 singole risorse. Ogni approccio presenta vantaggi e limiti distinti. Come si sceglie una strategia di implementazione ottimale?

  1. Inizia valutando i requisiti chiave della tua applicazione.
  2. Esamina le opzioni di implementazione disponibili e i relativi vantaggi.
  3. Seleziona una strategia che soddisfi i tuoi requisiti e che utilizzi in modo ottimale le funzionalità di Compute Engine.

Valutare il carico di lavoro

Utilizza le seguenti domande per analizzare i requisiti chiave del workload che vuoi implementare. Le tue risposte ti aiuteranno a mappare le funzionalità di ogni opzione di deployment (elencata nella sezione successiva) ai requisiti del tuo carico di lavoro.

  • Stato della richiesta

    • L'applicazione è stateful?

      • Un'applicazione con stato 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 invariato lo stato finale del carrello quando l'utente avvia la procedura di pagamento.
      • Un'applicazione senza stato non deve archiviare alcun dato del cliente, della transazione o della sessione. Ad esempio, un server web potrebbe chiudere una sessione dopo aver pubblicato i contenuti richiesti dal client.

      Per scoprire di più sulle applicazioni stateful e stateless, consulta Differenze tra i carichi di lavoro stateful e quelli stateless.

    • È necessario conservare i metadati specifici dell'istanza quando le VM si riavviano o quando Compute Engine le ricrea (riparazione automatica)?

  • Provisioning

    • Le VM devono utilizzare una combinazione di tipi di macchine o immagini? Ad esempio, alcune VM richiedono tipi di macchine ottimizzate per la memoria, mentre altre utilizzano tipi di macchine per uso generico?
    • L'infrastruttura deve essere scalata automaticamente in base alle variazioni di caricamento, in modo da mantenere un equilibrio ottimale tra costo e tempo di risposta?
    • Tutte le VM possono essere eseguite in un'unica 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, ti andrebbe di 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 dell'errore?
    • Hai bisogno di controllare la sequenza o la pianificazione di avvio, arresto, sospensione e ripresa delle tue VM? Ad esempio, per risparmiare, prevedi di arrestare le VM durante i fine settimana o per determinate ore del giorno?
  • Resilienza

    • L'applicazione ha bisogno di protezione contro i guasti zonali? In altre parole, se una zona non è disponibile, 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 eseguire il deployment dei tuoi 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 gestite
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 gruppo di istanze gestite è un gruppo di istanze identiche o configurate in modo simile che puoi eseguire il provisioning utilizzando un modello di istanza.

  • Puoi creare un gruppo di istanze gestite stateful in modo che i metadati o i dischi specifici vengano conservati.

  • Per un gruppo di istanze gestite stateless, puoi attivare la scalabilità automatica e configurare un criterio di scalabilità.

  • Durante la creazione di un gruppo di istanze gestite, puoi scegliere di eseguire il deployment delle VM all'interno di una singola zona o di distribuirle in più zone di una regione per una disponibilità elevata.

La tabella seguente riassume le funzionalità principali di ogni opzione di deployment.

Capacità VM autonome Gruppo di istanze non gestite Gruppo di istanze gestite stateful Gruppo di istanze gestite stateless
Eseguire il provisioning di un gruppo di VM in base a un modello
Combinazione di tipi di macchine e immagini
Indirizzi IP interni o esterni fissi
Ripristino automatico delle VM non riuscite
Controllo delle operazioni di avvio-arresto e sospensione-ripristino delle VM
Impostazione di un gruppo di VM come backend del bilanciatore del carico
Conservazione di dischi e metadati per i carichi di lavoro con stato
Aggiornamento controllato di VM specifiche
Aggiornamento in sequenza automatico di tutte le VM
Scalabilità orizzontale automatica (e predittiva)

I seguenti diagrammi mostrano i deployment di esempio affiancati per aiutarti a comprendere le differenze principali.

VM autonome Gruppo di istanze gestite stateful Gruppo di istanze gestite stateless
Questo esempio mostra tre VM create singolarmente. Questo esempio mostra un gruppo di istanze gestite contenente tre VM configurate in modo simile, di cui è stato eseguito il provisioning utilizzando un modello di istanza.

Questo esempio mostra un gruppo di istanze gestite contenente tre VM identiche, di cui è stato eseguito il provisioning utilizzando un modello di istanza.

Tre VM autonome
Un gruppo di istanze gestite stateful con tre VM create utilizzando un modello di istanza
Un gruppo di istanze gestite senza stato con tre VM create utilizzando un
                          modello di istanza
  • Ogni VM in questo esempio utilizza un tipo di macchina, un'immagine, dei dischi e altri attributi distinti.
  • Le VM sono state aggiunte singolarmente a un gruppo di istanze non gestito.
  • Le VM in questo esempio utilizzano un tipo di macchina e un'immagine definiti in un modello di istanza.
  • Un criterio stateful garantisce che i dischi di avvio collegati a tutte le VM siano stateful.
  • Le configurazioni per istanza aggiungono i dischi dati stateful richiesti.
  • In questo esempio, le VM ereditano il tipo di macchina e l'immagine da un modello di istanza.
  • I dischi vengono ricreati quando la VM viene aggiornata o ricreata.
  • Il gruppo di istanze gestite crea ed elimina automaticamente le VM in base a una configurazione di scalabilità automatica.

Ora che hai valutato il tuo carico di lavoro, esaminato le opzioni di deployment offerte da Compute Engine e sei pronto a scegliere un approccio di deployment.

Seleziona una strategia di implementazione

I suggerimenti descritti qui si basano su una mappatura delle caratteristiche specifiche dei workload alle funzionalità di ogni 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.

  1. Scegli tra VM autonome e gruppi di istanze.

    Requisiti Strategia di deployment consigliata
    Almeno uno dei seguenti requisiti è essenziale per il tuo carico di lavoro.
    • L'applicazione deve essere eseguita su VM che utilizzano una combinazione di tipi di macchine o immagini.
    • L'applicazione ha bisogno di indirizzi IP interni o esterni fissi per le VM host.
    • Devi avere il controllo sulla gestione delle VM non riuscite.
    • Devi avere il controllo sulle operazioni di avvio-arresto o sospensione-ripresa delle VM.
    • Per eseguire il provisioning e rimuovere le VM, devi utilizzare uno script personalizzato o uno strumento di terze parti.

    Scegli VM autonome.

    Se tutte le VM autonome possono essere eseguite in un'unica zona, rete VPC e subnet, valuta la possibilità di aggiungerle 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 sopra indicati è essenziale per il tuo caso d'uso.

    Utilizza un gruppo di istanze gestite per configurare una topologia Compute Engine facile da gestire, altamente disponibile e scalabile.

    Vai al passaggio successivo.

  2. Scegli tra un gruppo di istanze gestite con stato e senza stato.

    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 la ricreazione, la riparazione automatica e gli aggiornamenti di VM.

    Vai al passaggio successivo.

    L'applicazione non è stateful.

    Scegli un gruppo di istanze gestite stateless e sfrutta la funzionalità di scalabilità automatica. Durante le operazioni che richiedono l'interruzione del servizio, Compute Engine riesegue i dischi in base al modello di istanza.

    Vai al passaggio successivo.

  3. Scegli tra un gruppo di istanze gestite zonale e regionale.

    Requisiti Tipo di MIG consigliato
    L'applicazione deve essere eseguita in un'unica zona, altrimenti la protezione contro gli errori a livello di zona non è essenziale. Scegli un MIG a livello di zona.
    L'applicazione deve continuare a funzionare anche in caso di errore a livello di zona. Scegli un MIG a livello di regione.

Albero decisionale

Il seguente diagramma illustra i fattori da considerare per decidere la strategia di implementazione di Compute Engine:

Albero decisionale per scegliere una strategia di deployment di Compute Engine

Passaggi successivi