Scelta e gestione delle risorse di computing

Last reviewed 2023-10-03 UTC

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

Il calcolo è il fulcro di molti carichi di lavoro, sia per l'esecuzione di una logica di business personalizzata sia per l'applicazione di algoritmi di calcolo complessi su set di dati. La maggior parte delle soluzioni utilizza in qualche modo risorse di calcolo ed è fondamentale selezionare le risorse di computing adatte alle tue esigenze dell'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 modalità di pianificazione 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.

Scegliere il computing

Questa sezione fornisce le best practice per scegliere e migrare 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, dei processi di automazione del ciclo di vita, della regionalizzazione e della sicurezza.

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

La seguente tabella offre 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 di business nei container con questa opzione serverless completamente gestita. Cloud Run è progettato per carichi di lavoro ad alta intensità di calcolo, ma non sempre attivi. Scala in modo economico da 0 (senza traffico) e definisci CPU e RAM delle tue attività e dei tuoi servizi. Esegui il deployment con un singolo comando e Google esegue automaticamente il provisioning della quantità corretta di risorse.
  • Cloud Functions: separa il codice in pezzi flessibili della logica di business senza che tu debba preoccuparti di infrastruttura per bilanciamento del carico, aggiornamenti, autenticazione o scalabilità.
Kubernetes Crea architetture di microservizi complesse che necessitano di 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) Crea ed esegui VM da famiglie di VM predefinite e personalizzabili che supportano i requisiti delle tue applicazioni e dei tuoi carichi di lavoro, nonché software e servizi di terze parti.
  • Compute Engine: aggiungi GPU (Graphics Processing Unit) alle istanze VM. Puoi utilizzare queste GPU per accelerare carichi di lavoro specifici sulle tue istanze, come il machine learning e l'elaborazione di dati.

Per selezionare i tipi di macchine appropriati in base ai tuoi requisiti, consulta i Suggerimenti per le famiglie di macchine.

Per saperne di più, consulta Scegliere le opzioni di calcolo.

Scegli un approccio alla migrazione del computing

Se stai eseguendo 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 di migrazione Caso d'uso Prodotto consigliato
Lift and shift Esegui la migrazione o estendi i tuoi carichi di lavoro VMware su Google Cloud in pochi minuti. Google Cloud VMware Engine
Lift and shift Sposta le tue applicazioni basate su VM in Compute Engine. Migrazione alle macchine virtuali
Upgrade ai container Modernizza le applicazioni tradizionali trasformandole in container integrati su Google Kubernetes Engine. 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 dei carichi di lavoro

Questa sezione fornisce le best practice per la progettazione di carichi di lavoro che supportino 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 macchina specializzati, come le macchine ottimizzate per la CPU. Prima di investire nelle implementazioni di Google Kubernetes Engine (GKE) o Compute Engine per astrarre l'overhead operativo e ottimizzare costi e prestazioni, valuta le opzioni serverless per una logica leggera.

Disaccoppia le applicazioni in modo che siano stateless

Ove possibile, disaccoppia le tue applicazioni in modo che siano stateless per massimizzare l'uso 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 dell'applicazione per progettare la scalabilità e la disponibilità elevata, consulta Progettare per la scalabilità e la disponibilità elevata.

Usa la logica di memorizzazione nella cache quando disaccoppi le architetture

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

Utilizza le migrazioni live per semplificare gli upgrade

Per facilitare gli upgrade per la manutenzione di Google, utilizza la migrazione live impostando i criteri di disponibilità delle istanze. Per maggiori informazioni, consulta Impostare i criteri di manutenzione dell'host VM.

Scalabilità dei carichi di lavoro

Questa sezione fornisce best practice per la scalabilità dei carichi di lavoro a supporto del tuo sistema.

Usa gli script di avvio e arresto

Per le applicazioni stateful, ove possibile, utilizza gli script di avvio e arresto per avviare e arrestare lo stato dell'applicazione in modo controllato. Si parla di avvio protetto quando un computer viene attivato da una funzione software e il sistema operativo può eseguire le proprie attività di avvio sicuro dei processi e dell'apertura delle connessioni.

Le startup e le chiusure efficienti sono importanti perché le applicazioni stateful dipendono dalla disponibilità immediata dei dati in prossimità del computing, 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 da dove era interrotto in precedenza al momento dello arresto. Per salvare lo stato della memoria dell'applicazione ed evitare di perdere i progressi durante l'arresto, utilizza uno script di chiusura. Ad esempio, utilizza uno script di arresto quando è pianificato l'arresto di una VM a causa di scale down 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à come riparazione automatica, bilanciamento del carico, scalabilità automatica, aggiornamento automatico e carichi di lavoro stateful. Puoi creare gruppi di istanze gestite a livello di zona o di regione in base ai tuoi obiettivi di disponibilità. Puoi utilizzare i gruppi di istanze gestite per carichi di lavoro stateless o in batch e per applicazioni stateful che devono preservare lo stato unico di ogni VM.

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

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

Distribuisci il traffico dell'applicazione

Per scalare le tue applicazioni a livello globale, utilizza Cloud Load Balancing per distribuire le istanze dell'applicazione in più regioni o zone. 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 gestione e riducendo al minimo i costi di gestione. Per ottimizzare la latenza dell'utente finale, utilizza Cloud CDN per memorizzare nella cache i contenuti statici, ove possibile.

Automatizza la creazione e la gestione del calcolo

Riduci al minimo gli errori umani nel tuo ambiente di produzione automatizzando la creazione e la gestione dei calcoli.

Gestione delle operazioni

Questa sezione fornisce le best practice per gestire le 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 delle 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 consente 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 delle istanze

Gli snapshot ti consentono di creare backup per le tue istanze. Gli snapshot sono particolarmente utili per le applicazioni stateful, che non sono sufficientemente flessibili per mantenere lo stato o salvare l'avanzamento in caso di arresti improvvisi. Se utilizzi spesso gli snapshot per creare nuove istanze, puoi ottimizzare il processo di backup creando un'immagine di base a partire da questi 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 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. Le immagini macchina consentono di copiare le impostazioni note su nuove macchine, riducendo l'overhead. Per saperne di più, consulta Quando utilizzare un'immagine macchina.

Capacità, prenotazioni e isolamento

Questa sezione fornisce le best practice per gestire la 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 di ottimizzazione dei costi.

Scegli i tipi di macchine per supportare costi e prestazioni

Google Cloud offre tipi di macchine che consentono di scegliere il calcolo in base a parametri di costo e prestazioni. Puoi scegliere un'offerta a basse prestazioni per ottimizzare i costi o un'opzione di computing ad alte prestazioni a un costo superiore. Per ulteriori informazioni, consulta la categoria di 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 tue VM fisicamente separate dalle VM in altri progetti.
  • Raggruppa le VM sullo stesso hardware host.
  • Isola i carichi di lavoro di elaborazione dei pagamenti.

Per maggiori informazioni, consulta Nodi single-tenant.

Utilizza le prenotazioni per garantire la disponibilità delle risorse

Google Cloud ti consente di definire prenotazioni per i tuoi carichi di lavoro in modo che queste risorse siano sempre disponibili. La creazione delle prenotazioni non prevede costi aggiuntivi, ma paghi per le risorse prenotate anche se non le utilizzi. Per maggiori informazioni, vedi Utilizzo e gestione delle prenotazioni.

Migrazione delle VM

Questa sezione fornisce le best practice per la migrazione delle VM per 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, consulta 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 di 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 maggiori informazioni, consulta Bring Your Own License (BYOL)

Suggerimenti

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

  • Consulta le offerte di Google Cloud Marketplace per valutare se la tua applicazione è elencata di 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 applicazione containerizzata in esecuzione su GKE.

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

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

  • Valuta le tue opzioni per il passaggio dai casi d'uso on-premise tradizionali, come l'utilizzo del proxy ad alta disponibilità. Per ulteriori informazioni, consulta la best practice per l'indirizzo IP mobile.

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

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

  • Utilizza Policy Controller e Config Sync per la gestione di criteri e configurazioni nei 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 macchina specifici in una regione o zona specifica, collabora con i team dedicati al tuo account per assicurarti la disponibilità. Per ulteriori informazioni, consulta 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à.