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

In qualità di cloud architect o amministratore IT, quando pianifichi l'esecuzione di un'applicazione in Compute Engine, devi progettare una topologia delle istanze di computing di cui puoi eseguire il provisioning e che puoi gestire in modo efficiente.

Compute Engine offre una gamma di opzioni di deployment: ad esempio, puoi eseguire il deployment di un gruppo di istanze di computing che gestisci come singola entità oppure puoi gestire le istanze come risorse singole. Ogni approccio presenta vantaggi e limitazioni distinti. Come si sceglie 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 sfrutti 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 (elencate nella sezione successiva) ai requisiti del tuo workload. Per un'alternativa interattiva basata sull'AI a questo flusso decisionale, puoi chiedere a Gemini nella console Google Cloud di fornirti i tuoi obiettivi di progetto per ricevere suggerimenti di deployment personalizzati. Per saperne di più, consulta Progetta l'infrastruttura di computing con Compute Advisor.

  • Stato dell'applicazione

    • L'applicazione è stateful?

      • Un'applicazione stateful archivia determinati dati, come l'ID client o di sessione, finché non sono più necessari. Ad esempio, in un'app di acquisti online, il servizio del carrello 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 deve 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 scoprire di più sulle applicazioni stateful e stateless, consulta In che modo i workload stateful sono diversi da quelli stateless.

    • I metadati specifici dell'istanza devono essere conservati quando le istanze di computing vengono riavviate o quando Compute Engine le ricrea (ripristino automatico)?

  • Provisioning

    • Le istanze di computing devono utilizzare una combinazione di tipi di macchine o immagini? Ad esempio, alcune istanze richiedono 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 costi e tempi di risposta?
    • Tutte le istanze di computing 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 istanze di computing come un unico gruppo? Ad esempio, vuoi automatizzare l'implementazione degli aggiornamenti delle applicazioni in tutte le istanze?
    • Devi utilizzare uno strumento personalizzato o di terze parti per gestire le istanze di computing?
    • Hai bisogno di controllare la gestione delle istanze di computing 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 istanze di computing? Ad esempio, per risparmiare sui costi, prevedi di arrestare le istanze 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 istanze di computing in altre zone della regione?
    • Se un'istanza di computing si arresta o si arresta in modo anomalo per qualsiasi motivo o se l'applicazione non risponde alle richieste, Compute Engine deve ricreare l'istanza automaticamente?
    • L'applicazione richiede indirizzi IP interni o esterni fissi per le istanze di computing 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.

Istanze di computing autonome
Con questa opzione, scegli il tipo di macchina, l'immagine, i dischi e altri attributi singolarmente per ogni istanza di computing di cui esegui il provisioning. Le istanze vengono gestite come risorse separate.
Cluster di istanze di computing
Con questa opzione, crei un gruppo di istanze di computing che si trovano fisicamente vicine tra loro per fornire una connettività di rete a bassa latenza e larghezza di banda elevata per i workload di computing ad alte prestazioni (HPC) e intelligenza artificiale (AI).
Gruppo di istanze non gestite
Puoi eseguire il provisioning di istanze di computing 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 di cui esegui il provisioning utilizzando un template di istanza.

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

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

  • Durante la creazione di un MIG, puoi scegliere di eseguire il deployment delle istanze di computing all'interno di una singola zona o di distribuirle in più zone di una regione per garantire l'alta affidabilità.

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

Capacità Istanze di computing autonome Gruppo di istanze non gestite MIG stateful MIG stateless
Provisioning basato su template di un gruppo di istanze di computing
Combinazione di tipi di macchine e immagini
Indirizzi IP interni o esterni fissi
Riparazione automatica delle istanze di computing con errori
Controllo sulle operazioni di avvio/arresto e sospensione/ripresa delle istanze di computing
Impostazione di un gruppo di istanze di computing come backend del bilanciatore del carico
Conservazione di dischi e metadati per i workload stateful
Aggiornamento controllato di istanze di computing specifiche
Aggiornamento in sequenza automatico di tutte le istanze di computing
Scalabilità orizzontale automatica (e predittiva)

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

Istanze di computing autonome MIG stateful MIG stateless
Questo esempio mostra tre istanze di computing create singolarmente. Questo esempio mostra un MIG contenente tre istanze di computing configurate in modo simile, di cui è stato eseguito il provisioning utilizzando un template di istanza.

Questo esempio mostra un MIG contenente tre istanze di computing identiche, di cui è stato eseguito il provisioning utilizzando un template di istanza.

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

Ora hai valutato il tuo workload, esaminato le opzioni di deployment offerte da Compute Engine e sei in grado di scegliere un approccio di deployment.

Seleziona una strategia di deployment

I suggerimenti discussi qui si basano su una mappatura di 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 l'albero decisionale più avanti in questo documento.

  1. Scegli tra istanze di computing autonome, cluster di istanze di computing e gruppi di istanze.

    Requisiti Strategia di deployment consigliata
    L'applicazione è un workload di computing ad alte prestazioni (HPC) o di intelligenza artificiale (AI) che richiede una connettività di rete a bassa latenza e larghezza di banda elevata tra le istanze di computing.

    Scegli cluster di istanze di computing.

    Salta il resto di questo flusso decisionale.

    Almeno uno dei seguenti requisiti è essenziale per il tuo workload.
    • L'applicazione deve essere eseguita su istanze di computing che utilizzano una combinazione di tipi di macchine o immagini.
    • L'applicazione richiede indirizzi IP interni o esterni fissi per le istanze di computing host.
    • Devi avere il controllo sulla gestione delle istanze di computing con errori.
    • Devi controllare le operazioni di avvio/arresto o sospensione/ripresa delle istanze di computing.
    • Devi utilizzare uno script personalizzato o uno strumento di terze parti per eseguire il provisioning e la rimozione delle istanze di computing.

    Scegli istanze di computing autonome.

    Se tutte le istanze di computing autonome possono essere eseguite in una singola 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 di questi requisiti è essenziale per il tuo caso d'uso.

    Utilizza un MIG per configurare una topologia di Compute Engine altamente disponibile e scalabile.

    Procedi al passaggio successivo.

  2. Scegli tra un MIG stateful e uno 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 istanze di computing.

    Procedi 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 template di istanza.

    Procedi 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 o la protezione da 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 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