Scegli una strategia di deployment di Compute Engine per il tuo carico di lavoro

In qualità di Cloud Architect o amministratore IT, quando prevedi di eseguire un'applicazione in Compute Engine, devi progettare una topologia di VM di cui eseguire il provisioning e la gestione 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 singola entità oppure eseguire il provisioning e gestire le VM come risorse singole. Ogni approccio ha pregi e limiti distinti. Come si sceglie una strategia di deployment ottimale?

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

Valuta il tuo carico di lavoro

Utilizza le seguenti domande per analizzare i requisiti chiave del carico di lavoro di cui vuoi eseguire il deployment. 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 applicazione

    • L'applicazione è stateful?

      • Un'applicazione stateful archivia determinati dati, ad esempio il client o l'ID sessione, fino a quando non sono più necessari. Ad esempio, in un'app di shopping online, il servizio di carrello degli acquisti potrebbe memorizzare i dettagli degli articoli aggiunti o rimossi mentre l'utente continua a fare acquisti e mantenere lo stato finale del carrello quando l'utente avvia il processo di pagamento.
      • Un'applicazione stateless non ha bisogno di archiviare dati di client, 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 i carichi di lavoro stateful e quelli stateless.

    • I metadati specifici dell'istanza devono essere conservati al riavvio delle VM o quando Compute Engine ricrea (ripara automaticamente) le VM?

  • Provisioning

    • Le VM devono utilizzare una combinazione di tipi di macchine o immagini? Ad esempio, alcune VM hanno bisogno di tipi di macchine ottimizzate per la memoria, mentre altre utilizzano tipi di macchine per uso generico?
    • L'infrastruttura deve scalare automaticamente in base alle variazioni del carico, in modo da mantenere un equilibrio ottimale tra costo e tempo di risposta?
    • Le VM possono essere eseguite in una singola zona, rete VPC e subnet?
    • L'applicazione deve essere eseguita nella stessa zona di determinate altre risorse? Ad esempio, l'applicazione richiede una connessione a bassa latenza con un database?
  • Operazioni

    • Vuoi gestire le VM come un singolo gruppo? Ad esempio, vuoi automatizzare l'implementazione degli aggiornamenti delle applicazioni in tutte le VM?
    • Hai bisogno di utilizzare uno strumento personalizzato o di terze parti per gestire le VM?
    • Hai bisogno di controllo sulla gestione delle VM con errori? Ad esempio, se una VM ha un errore, vuoi che rimanga arrestata mentre determini la causa principale dell'errore?
    • Hai bisogno di controllo sulla sequenza avvio-arresto-sospendere-ripresa delle tue VM? Ad esempio, per risparmiare sui costi, prevedi di arrestare le VM durante i fine settimana o in determinate ore del giorno?
  • Resilienza

    • L'applicazione ha bisogno di protezione contro guasti a livello di zona? In altre parole, se una zona non è attiva, vuoi che l'applicazione continui a gestire le richieste delle VM in altre zone della regione?
    • Se una VM si arresta o si arresta in modo anomalo per qualsiasi motivo, oppure se l'applicazione non risponde alle richieste, Compute Engine deve ricrearla automaticamente?
    • L'applicazione richiede 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.

Rivedi le opzioni di deployment disponibili

Esamina e comprendi le funzionalità e i relativi vantaggi delle opzioni che puoi prendere in considerazione per 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 per un bilanciatore del carico.
Gruppo di istanze gestite

Un gruppo di istanze gestite è un gruppo di istanze identiche o configurate in modo simile di cui esegui il provisioning utilizzando un modello di istanza.

  • Puoi impostare un gruppo di istanze gestite in modo che sia stateful, in modo che dischi o metadati specifici vengano conservati.

  • Per un gruppo di istanze gestite stateless, puoi abilitare 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 distribuirle in più di una zona in una regione per garantire l'alta disponibilità.

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

Capacità VM autonome Gruppo di istanze non gestite MIG stateful MIG stateless
Provisioning basato su modello di un gruppo di VM
Combinazione di tipi di macchine e immagini
Indirizzi IP interni o esterni fissi
Riparazione automatica delle VM non riuscite
Controllo sulle operazioni start-stop e suspend-resume della VM
Impostazione di un gruppo di VM come backend del bilanciatore del carico
Conservazione di dischi e metadati, per 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 i deployment di esempio uno accanto all'altro per aiutarti a comprendere le principali differenze.

VM autonome MIG stateful MIG 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 mediante 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 stateless con tre VM create utilizzando un modello di istanza
  • Ogni VM in questo esempio utilizza un tipo di macchina, un'immagine, un disco e altri attributi distinti.
  • Le VM sono state aggiunte singolarmente a un gruppo di istanze non gestite.
  • 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 di 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.

A questo punto hai valutato il carico di lavoro, esaminato le opzioni di deployment offerte da Compute Engine e sei pronto a scegliere un approccio al deployment.

Seleziona una strategia di deployment

I suggerimenti discussi qui si basano su una mappatura di caratteristiche specifiche dei carichi di lavoro alle funzionalità di ogni opzione di deployment di Compute Engine.

Usa il seguente flusso decisionale. Se preferisci una guida visiva, consulta l'albero 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 immagini o tipi di macchine.
    • L'applicazione richiede indirizzi IP interni o esterni fissi per le VM host.
    • Devi avere il controllo sulla gestione delle VM con errori.
    • Devi controllare le operazioni di avvio-arresto o sospensione-ripresa delle VM.
    • Per eseguire il provisioning e la rimozione delle VM, devi utilizzare uno script personalizzato o uno strumento di terze parti.

    Scegli VM autonome.

    Se tutte le VM autonome possono essere eseguite in una singola zona, una rete VPC e una 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 per un bilanciatore del carico.

    Salta il resto di questo flusso decisionale.

    Nessuno dei requisiti di cui sopra è essenziale per il tuo caso d'uso.

    Utilizza un gruppo di istanze gestite per configurare una topologia di Compute Engine facile da gestire, ad alta disponibilità e scalabile.

    Procedi con il passaggio successivo.

  2. Scegli tra un MIG stateful e uno stateless.

    Requisiti Tipo di gruppo di istanze gestite consigliato
    L'applicazione richiede la conservazione del disco e dei metadati, ovvero è di tipo 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 delle VM.

    Procedi con il passaggio successivo.

    L'applicazione non è stateful.

    Scegli un gruppo di istanze gestite stateless e sfrutta la capacità di scalabilità automatica. Durante le operazioni che causano interruzioni, Compute Engine ricrea i dischi in base al modello di istanza.

    Procedi con il passaggio successivo.

  3. Scegli tra un gruppo di istanze gestite a livello di zona e di regione.

    Requisiti Tipo di gruppo di istanze gestite consigliato
    L'applicazione deve essere eseguita in una singola zona, altrimenti la protezione da errori a livello di zona non è essenziale. Scegli un gruppo di istanze gestite 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 a livello di regione.

Albero decisionale

Il seguente diagramma illustra i fattori da considerare al momento di scegliere la strategia di deployment per Compute Engine:

Albero decisionale per scegliere una strategia di deployment di Compute Engine

Passaggi successivi