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

In qualità di cloud architect o amministratore IT, quando pianifichi di eseguire un'applicazione in Compute Engine, devi progettare una topologia di 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 una singola entità oppure puoi eseguire il provisioning e gestire le VM come risorse individuali. Ogni approccio presenta vantaggi e limitazioni distinti. Come scegliere una strategia di deployment ottimale?

  1. Inizia valutando i requisiti chiave della tua applicazione.
  2. Esamina le opzioni di deployment disponibili e i relativi vantaggi.
  3. 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 workload 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 workload. Per un'alternativa interattiva basata sull'AI a questo flusso decisionale, puoi chiedere a Gemini nella Google Cloud console con gli obiettivi del tuo progetto per ricevere consigli di deployment personalizzati. Per saperne di più, consulta Progettare l'infrastruttura di calcolo con Compute Advisor.

  • Stato dell'applicazione

    • L'applicazione è stateful?

      • Un'applicazione stateful archivia determinati dati, come l'ID client o sessione, finché questi dati 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 mentre l'utente continua a fare acquisti e mantenere lo stato finale del carrello quando l'utente avvia la procedura 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 In che modo i workload stateful sono diversi dai workload stateless.

    • I metadati specifici dell'istanza devono essere conservati quando le VM vengono riavviate 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 con memoria ottimizzata, mentre le 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 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 alcune 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 il deployment 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 con errori? 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 VM? Ad esempio, per ridurre i costi, prevedi di arrestare le VM durante i fine settimana o in determinate ore del giorno?
  • Resilienza

    • L'applicazione ha bisogno di protezione contro gli errori a livello di zona? 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 relativi vantaggi delle opzioni che puoi prendere in considerazione per il deployment dei tuoi workload 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 MIG è un gruppo di istanze identiche o con configurazione simile di cui esegui il provisioning utilizzando un modello di istanza.

  • Puoi rendere un MIG stateful, in modo che vengano conservati dischi o metadati specifici.

  • Per un MIG stateless, puoi abilitare la scalabilità automatica e configurare una policy di scalabilità.

  • Quando crei 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 una maggiore disponibilità.

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

Capacità VM autonome Gruppo di istanze non gestite MIG stateful MIG stateless
Provisioning basato su modelli di un gruppo di VM
Combinazione di tipi di macchine e immagini
Indirizzi IP interni o esterni fissi
Riparazione automatica delle VM con errori
Controllo delle operazioni di avvio, arresto , sospensione e ripresa delle VM
Impostazione di un gruppo di VM come backend di un bilanciatore del carico
Conservazione di dischi e metadati per i workload 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 affiancati per aiutarti a comprendere le differenze principali.

VM autonome MIG stateful MIG stateless
Questo esempio mostra tre VM create singolarmente. Questo esempio mostra un MIG contenente tre VM con configurazione simile, di cui è stato eseguito il provisioning utilizzando un modello di istanza.

Questo esempio mostra un MIG 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 MIG stateless con tre VM create utilizzando un
                          template di istanza
  • Ogni VM in questo esempio utilizza un tipo di macchina, un'immagine, dischi, 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 template di istanza.
  • Una policy 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 template di istanza.
  • I dischi vengono ricreati quando la VM viene aggiornata o ricreata.
  • Il MIG crea ed elimina automaticamente le VM in base a un configurazione di scalabilità automatica.

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 consigli discussi qui si basano su una mappatura delle caratteristiche specifiche del workload alle funzionalità di ogni opzione di deployment di Compute Engine.

Utilizza 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
    Per il tuo workload è essenziale almeno uno dei seguenti requisiti.
    • 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 controllare la gestione delle VM con errori.
    • Devi controllare le operazioni di avvio, arresto, sospensione e ripresa delle VM operazioni.
    • 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 sopra indicati è 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.

    Vai al passaggio successivo.

  2. Scegli tra un MIG stateful e un MIG stateless.

    Requisiti Tipo di MIG consigliato
    L'applicazione richiede la conservazione di dischi e metadati, ovvero è l'applicazione è stateful.

    Scegli un MIG stateful e configura i dischi che Compute Engine deve conservare durante eventi invasivi come la ricreazione, il ripristino automatico e gli aggiornamenti delle VM.

    Vai al passaggio successivo.

    L'applicazione non è stateful.

    Scegli un MIG stateless e sfrutta la funzionalità di scalabilità automatica Durante le operazioni invasive, Compute Engine ricrea i dischi in base al modello di istanza.

    Vai al passaggio successivo.

  3. Scegli tra un MIG a livello di zona e un MIG a livello di regione.

    Requisiti Tipo di MIG consigliato
    L'applicazione deve essere eseguita in una singola zona oppure la protezione contro gli 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 MIG a livello di regione.

Albero decisionale

Il seguente diagramma ti guida attraverso i fattori da considerare quando decidi la strategia di deployment di Compute Engine:

Albero decisionale per scegliere una strategia di deployment di Compute Engine

Passaggi successivi