Scelta e gestione delle risorse di computing

Last reviewed 2023-10-03 UTC

Questo documento nel framework dell'architettura Google Cloud fornisce le best practice per eseguire il deployment del sistema in base ai requisiti di calcolo. Imparerai a scegliere una piattaforma di computing e un approccio alla migrazione, progettare e scalare i carichi di lavoro e gestire le operazioni e le migrazioni delle VM.

Il calcolo è al centro di molti carichi di lavoro, sia che si tratti dell'esecuzione di una logica di business personalizzata o dell'applicazione di algoritmi di calcolo complessi su set di dati. La maggior parte delle soluzioni utilizza le risorse di calcolo in qualche modo ed è fondamentale selezionare le risorse di calcolo giuste per le esigenze della tua applicazione.

Google Cloud offre diverse opzioni per l'utilizzo del tempo su una CPU. Le opzioni si basano sui tipi di CPU, sulle prestazioni e sulla pianificazione dell'esecuzione del codice, inclusa la fatturazione per l'utilizzo.

Le opzioni di calcolo di Google Cloud includono quanto segue:

  • Macchine virtuali (VM) con vantaggi specifici per il cloud come la migrazione live.
  • "Bin packing" dei container su macchine cluster che possono condividere CPU.
  • Funzioni e approcci serverless, in cui l'utilizzo del tempo di CPU può essere misurato in base al lavoro eseguito durante una singola richiesta HTTP.

Scelta del computing

Questa sezione fornisce le best practice per scegliere ed eseguire la migrazione a una piattaforma di computing.

Scegli una piattaforma di computing

Quando scegli una piattaforma di computing per il tuo carico di lavoro, considera i requisiti tecnici del carico di lavoro, i processi di automazione del ciclo di vita, la regionalizzazione e la sicurezza.

Valuta la natura dell'utilizzo della CPU da parte della tua app e dell'intero sistema di supporto, inclusa la modalità di pacchettizzazione e deployment del codice, distribuito e richiamato. Sebbene alcuni scenari possano essere compatibili con più opzioni di piattaforma, un carico di lavoro portatile dovrebbe essere in grado di funzionare su una gamma di opzioni di calcolo.

La tabella seguente fornisce una panoramica dei servizi di computing di Google Cloud consigliati per vari casi d'uso:

Piattaforma di computing Casi d'uso Prodotti consigliati
Serverless
  • Esegui il deployment della tua prima app.
  • Concentrati sui dati e sulla logica di elaborazione e sullo sviluppo delle app, anziché gestire le operazioni dell'infrastruttura.
  • Cloud Run: inserisci la logica aziendale nei container utilizzando questa opzione serverless completamente gestita. Cloud Run è progettato per carichi di lavoro ad alta intensità di calcolo, ma non sempre attivi. Scala in modo economicamente conveniente da 0 (nessun traffico) e definisci la CPU e la RAM di attività e servizi. Esegui il deployment con un solo comando e Google esegue automaticamente il provisioning della quantità giusta di risorse.
  • Cloud Functions: separa il tuo codice in parti flessibili della logica di business senza i problemi dell'infrastruttura legati a bilanciamento del carico, aggiornamenti, autenticazione o scalabilità.
Kubernetes Crea architetture di microservizi complesse che richiedono servizi aggiuntivi come Istio per gestire il controllo del mesh di servizi.
  • Google Kubernetes Engine: un motore di orchestrazione dei container open source che automatizza il deployment, la scalabilità e la gestione delle app containerizzate.
Macchine virtuali (VM) Esegui carichi di lavoro per uso generico e specializzati su VM.

Per ulteriori informazioni, consulta Hosting di applicazioni su Google Cloud.

Scegli un approccio alla migrazione del computing

Se esegui la migrazione delle tue applicazioni esistenti da un altro cloud o da on-premise, utilizza uno dei seguenti prodotti Google Cloud per ottimizzare prestazioni, scalabilità, costi e sicurezza.

Obiettivo della migrazione Caso d'uso Prodotto consigliato
lift and shift Esegui la migrazione o estendi i tuoi carichi di lavoro VMware in Google Cloud in pochi minuti. VMware Engine di Google Cloud
lift and shift Sposta le tue applicazioni basate su VM in Compute Engine. Eseguire la migrazione alle macchine virtuali
Upgrade ai container Modernizzare le applicazioni in container integrati in Google Kubernetes Engine. Eseguire la migrazione ai container

Per scoprire come eseguire la migrazione dei carichi di lavoro allineando i team interni, consulta Ciclo di vita della migrazione delle VM e Creazione di un programma di migrazione su larga scala con Google Cloud.

Progettazione di carichi di lavoro

Questa sezione fornisce le best practice per la progettazione di carichi di lavoro in modo da supportare il tuo sistema.

Valuta le opzioni serverless per una logica semplice

La logica semplice è un tipo di calcolo che non richiede hardware o tipi di macchine specializzati come le macchine ottimizzate per la CPU. Prima di investire nelle implementazioni Google Kubernetes Engine (GKE) o Compute Engine per astrarre l'overhead operativo e ottimizzare costi e prestazioni, valuta le opzioni serverless per la logica leggera.

Disaccoppia le applicazioni per renderle stateless

Se possibile, disaccoppia le applicazioni in modo che siano stateless per massimizzare l'utilizzo delle opzioni di serverless computing. Questo approccio consente di utilizzare offerte di computing gestito, scalare le applicazioni in base alla domanda e ottimizzare costi e prestazioni. Per ulteriori informazioni sul disaccoppiamento della tua applicazione per la progettazione per la scalabilità e l'alta disponibilità, consulta Progettazione per la scalabilità e la disponibilità elevata.

Utilizza la logica di memorizzazione nella cache quando disaccoppia le architetture

Se l'applicazione è progettata per essere stateful, utilizza la logica di memorizzazione nella cache per disaccoppiare il carico di lavoro e renderlo scalabile. Per ulteriori informazioni, consulta Best practice per i database.

Utilizzare le migrazioni live per facilitare gli upgrade

Per facilitare gli upgrade di manutenzione di Google, utilizza la migrazione live impostando criteri di disponibilità delle istanze. Per maggiori informazioni, consulta Configurare il criterio di manutenzione dell'host della VM.

Scalabilità dei carichi di lavoro

Questa sezione fornisce le best practice per scalare i carichi di lavoro in modo da supportare il tuo sistema.

Usa gli script di avvio e arresto

Per le applicazioni stateful, se possibile, utilizza gli script di avvio e arresto per avviare e arrestare lo stato dell'applicazione in modo controllato. Un avvio controllato si verifica quando un computer viene acceso da una funzione software e il sistema operativo è autorizzato a eseguire le proprie attività, avviando i processi e aprendo le connessioni in modo sicuro.

Gli avvii e gli arresti anomali eleganti sono importanti perché le applicazioni stateful dipendono dalla disponibilità immediata dei dati vicini al calcolo, di solito su dischi locali o permanenti, o nella RAM. Per evitare di eseguire i dati dell'applicazione dall'inizio per ogni avvio, utilizza uno script di avvio per ricaricare gli ultimi dati salvati ed eseguire il processo dal punto in cui era stato interrotto al momento dell'arresto. Per salvare lo stato della memoria dell'applicazione ed evitare di perdere lo stato di avanzamento all'arresto, utilizza uno script di chiusura. Ad esempio, utilizza uno script di arresto quando è pianificata l'arresto di una VM a causa di downscaling o eventi di manutenzione di Google.

Usa i gruppi di istanze gestite per supportare la gestione delle macchine virtuali

Quando utilizzi le VM di Compute Engine, i gruppi di istanze gestite (MIG) supportano funzionalità quali riparazione automatica, bilanciamento del carico, scalabilità automatica, aggiornamento automatico e carichi di lavoro stateful. Puoi creare MIG a livello di zona o di regione in base ai tuoi obiettivi di disponibilità. Puoi utilizzare i gruppi di istanze gestite per servizi stateless di distribuzione o carichi di lavoro in batch e per applicazioni stateful che devono preservare lo stato univoco di ogni VM.

Usa i gestori della scalabilità automatica dei pod per scalare i carichi di lavoro GKE

Utilizza i gestori della scalabilità automatica dei pod con orizzontale e verticale per scalare i carichi di lavoro e utilizza il provisioning automatico dei nodi per scalare le risorse di calcolo sottostanti.

Distribuisci il traffico dell'applicazione

Per scalare le tue applicazioni a livello globale, utilizza Cloud Load Balancing per distribuire le istanze delle applicazioni in più di una regione o zona. I bilanciatori del carico ottimizzano il routing dei pacchetti dalle reti perimetrali di Google Cloud alla zona più vicina, aumentando l'efficienza del traffico di servizio e minimizza i costi di servizio. Per ottimizzare la latenza dell'utente finale, utilizza Cloud CDN per memorizzare nella cache contenuti statici ove possibile.

Automatizza la creazione e la gestione del calcolo

Riduci al minimo gli errori causati dall'uomo nel tuo ambiente di produzione automatizzando la creazione e la gestione del computing.

Gestione delle operazioni

Questa sezione fornisce le best practice per la gestione delle operazioni a supporto del tuo sistema.

Usa le immagini pubbliche fornite da Google

Usa immagini pubbliche fornite da Google Cloud. Le immagini pubbliche di Google Cloud vengono aggiornate regolarmente. Per maggiori informazioni, consulta Elenco di immagini pubbliche disponibili su Compute Engine.

Puoi anche creare immagini personalizzate con configurazioni e impostazioni specifiche. Se possibile, automatizza e centralizza la creazione di immagini in un progetto separato che puoi condividere con gli utenti autorizzati all'interno della tua organizzazione. La creazione e la selezione di un'immagine personalizzata in un progetto separato ti consentono di aggiornare, applicare patch e creare una VM utilizzando le tue configurazioni. Puoi quindi condividere l'immagine VM selezionata con i progetti pertinenti.

Usa gli snapshot per i backup del disco

Gli snapshot ti consentono di creare backup dei dischi. Gli snapshot sono particolarmente utili per le applicazioni stateful, che non sono abbastanza flessibili da mantenere lo stato o salvare l'avanzamento in caso di arresti anomali. Se utilizzi spesso gli snapshot per creare nuove istanze, puoi ottimizzare il processo di backup creando un'immagine di base a partire da questo snapshot.

Usa un'immagine della macchina per abilitare la creazione di istanze VM

Sebbene uno snapshot acquisisca solo un'immagine dei dati all'interno di una macchina, un'immagine della macchina acquisisce le configurazioni e le impostazioni della macchina, oltre ai dati. Utilizza un'immagine macchina per archiviare tutte le configurazioni, i metadati, le autorizzazioni e i dati di uno o più dischi necessari per creare un'istanza VM.

Quando crei una macchina da uno snapshot, devi configurare le impostazioni dell'istanza sulle nuove istanze VM, il che richiede molto lavoro. L'uso delle immagini macchina ti consente di copiare le impostazioni note in nuove macchine, riducendo l'overhead. Per ulteriori informazioni, consulta Quando utilizzare un'immagine macchina.

Capacità, prenotazioni e isolamento

Questa sezione fornisce le best practice per la gestione della capacità, le prenotazioni e l'isolamento per supportare il tuo sistema.

Usa gli sconti per impegno di utilizzo per ridurre i costi

Puoi ridurre i costi delle spese operative (OPEX) per i carichi di lavoro sempre attivi utilizzando gli sconti per impegno di utilizzo. Per ulteriori informazioni, consulta la categoria Ottimizzazione dei costi.

Scegli i tipi di macchine per supportare costi e prestazioni

Google Cloud offre tipi di macchine che ti consentono di scegliere il computing in base a parametri di costo e prestazioni. Puoi scegliere un'offerta a basse prestazioni per ottimizzare i costi o scegliere un'opzione di calcolo ad alte prestazioni a un costo superiore. Per ulteriori informazioni, consulta la categoria Ottimizzazione dei costi.

Utilizza i nodi single-tenant per supportare le esigenze di conformità

I nodi single-tenant sono server Compute Engine fisici dedicati a ospitare solo le VM del tuo progetto. I nodi single-tenant possono aiutarti a soddisfare i requisiti di conformità per l'isolamento fisico, tra cui:

  • Mantieni le VM fisicamente separate dalle VM in altri progetti.
  • Raggruppa le tue VM sullo stesso hardware host.
  • Isolare i carichi di lavoro di elaborazione dei pagamenti.

Per ulteriori informazioni, consulta Nodi single-tenant.

Utilizza le prenotazioni per garantire la disponibilità delle risorse

Google Cloud consente di definire prenotazioni per i carichi di lavoro in modo che le risorse siano sempre disponibili. Non sono previsti costi aggiuntivi per la creazione delle prenotazioni, ma paghi per le risorse prenotate anche se non le usi. Per maggiori informazioni, consulta Utilizzo e gestione delle prenotazioni.

Migrazione delle VM

Questa sezione fornisce le best practice per la migrazione delle VM in modo da supportare il tuo sistema.

Valuta gli strumenti di migrazione integrati

Valuta gli strumenti di migrazione integrati per spostare i carichi di lavoro da un altro cloud o da on-premise. Per maggiori informazioni, vedi Migrazione a Google Cloud. Google Cloud offre strumenti e servizi per aiutarti a eseguire la migrazione dei carichi di lavoro e ottimizzare costi e prestazioni. Per ricevere una valutazione gratuita dei costi di migrazione in base al tuo attuale panorama IT, consulta Google Cloud Rapid Assessment & Migration Program.

Usa l'importazione del disco virtuale per sistemi operativi personalizzati

Per importare sistemi operativi supportati personalizzati, consulta Importazione dei dischi virtuali. I nodi single-tenant possono aiutarti a soddisfare i requisiti Bring Your Own License per l'hardware per le licenze per core o per processore. Per ulteriori informazioni, consulta Bring Your Own License.

Suggerimenti

Per applicare le indicazioni del framework dell'architettura al tuo ambiente, ti consigliamo di seguire questi passaggi:

  • Esamina le offerte di Google Cloud Marketplace per valutare se la tua applicazione è elencata presso un fornitore supportato. Google Cloud supporta l'esecuzione di vari sistemi open source e vari software di terze parti.

  • Valuta la possibilità di eseguire la migrazione ai container e a GKE per estrarre e pacchettizzare la tua applicazione basata su VM come un'applicazione containerizzata in esecuzione su GKE.

  • Utilizza Compute Engine per eseguire le tue applicazioni su Google Cloud. Se esistono dipendenze legacy in esecuzione in un'applicazione basata su VM, verifica se soddisfano i requisiti del tuo fornitore.

  • Valuta utilizzando un bilanciatore del carico di rete passthrough interno di Google Cloud per scalare la tua architettura disaccoppiata. Per maggiori informazioni, consulta Panoramica del bilanciatore del carico di rete passthrough interno.

  • Valuta le opzioni per il passaggio da casi d'uso convenzionali on-premise come l'utilizzo di proxy ad alta disponibilità. Per ulteriori informazioni, consulta la best practice per gli indirizzi IP mobili.

  • Utilizza VM Manager per gestire i sistemi operativi per i tuoi grandi gruppi di VM che eseguono Windows o Linux su Compute Engine e applica criteri di configurazione coerenti.

  • Valuta la possibilità di utilizzare GKE Autopilot e consenti a Google SRE di gestire completamente i tuoi cluster.

  • Utilizza Policy Controller e Config Sync per la gestione di criteri e configurazioni in tutti i tuoi cluster GKE.

  • Garantisci la disponibilità e la scalabilità delle macchine in regioni e zone specifiche. Google Cloud può scalare per supportare le tue esigenze di calcolo. Tuttavia, se hai bisogno di molti tipi di macchine specifici in una determinata regione o zona, collabora con i team dedicati agli account per garantire la disponibilità. Per maggiori informazioni, consulta la pagina Prenotazioni per Compute Engine.

Passaggi successivi

Scopri i principi di progettazione del networking, tra cui:

Esplora altre categorie nel framework dell'architettura come affidabilità, eccellenza operativa e sicurezza, privacy e conformità.