Ottimizza l'utilizzo delle risorse

Last reviewed 2024-09-25 UTC

Questo principio del pilastro di ottimizzazione dei costi del Google Cloud framework dell'architettura fornisce suggerimenti per aiutarti a pianificare e eseguire il provisioning delle risorse in modo che corrispondano ai requisiti e ai modelli di consumo dei tuoi carichi di lavoro cloud.

Panoramica dei principi

Per ottimizzare il costo delle risorse cloud, devi comprendere a fondo i requisiti delle risorse e i pattern di carico dei tuoi workload. Questa comprensione è la base di un modello di costo ben definito che ti consente di prevedere il costo totale di proprietà (TCO) e identificare i fattori di costo durante il percorso di adozione del cloud. Analizzando e prevedendo in modo proattivo la spesa per il cloud, puoi fare scelte consapevoli in merito a provisioning, utilizzo e ottimizzazione dei costi delle risorse. Questo approccio ti consente di controllare la spesa per il cloud, evitare il provisioning eccessivo e assicurarti che le risorse cloud siano in linea con le esigenze dinamiche dei tuoi carichi di lavoro e dei tuoi ambienti.

Consigli

Per ottimizzare in modo efficace l'utilizzo delle risorse cloud, prendi in considerazione i seguenti consigli.

Scegliere risorse specifiche per l'ambiente

Ogni ambiente di deployment ha requisiti diversi per disponibilità, affidabilità e scalabilità. Ad esempio, gli sviluppatori potrebbero preferire un ambiente che consenta di eseguire il deployment e l'esecuzione rapida di applicazioni per brevi durate, ma che potrebbe non richiedere l'alta disponibilità. D'altra parte, un ambiente di produzione in genere richiede un'alta disponibilità. Per massimizzare l'utilizzo delle risorse, definisci i requisiti specifici dell'ambiente in base alle esigenze della tua attività. La tabella seguente elenca esempi di requisiti specifici per l'ambiente.

Ambiente Requisiti
Produzione
  • Alta disponibilità
  • Prestazioni prevedibili
  • Stabilità operativa
  • Sicurezza con risorse solide
Sviluppo e test
  • Efficienza in termini di costi
  • Infrastruttura flessibile con capacità espandibile
  • Infrastruttura effimera quando la persistenza dei dati non è necessaria
Altri ambienti (ad esempio di gestione temporanea e controllo qualità)
  • Allocazione delle risorse personalizzata in base ai requisiti specifici dell'ambiente

Scegli risorse specifiche per il carico di lavoro

Ciascuno dei tuoi carichi di lavoro cloud potrebbe avere requisiti diversi per disponibilità, scalabilità, sicurezza e prestazioni. Per ottimizzare i costi, devi allineare le scelte delle risorse ai requisiti specifici di ogni carico di lavoro. Ad esempio, un'applicazione senza stato potrebbe non richiedere lo stesso livello di disponibilità o affidabilità di un backend con stato. La tabella seguente elenca altri esempi di requisiti specifici per il carico di lavoro.

Tipo di carico di lavoro Requisiti del carico di lavoro Opzioni di risorse
Mission critical Disponibilità continua, sicurezza solida e prestazioni elevate Risorse premium e servizi gestiti come Spanner per un'alta disponibilità e la coerenza globale dei dati.
Ordinari Infrastruttura economica e con scalabilità automatica Risorse con funzionalità di base e risorse effimere come le VM spot.
Basata su eventi Scalabilità dinamica in base alla domanda attuale di capacità e prestazioni Servizi serverless come Cloud Run e funzioni Cloud Run.
Carichi di lavoro sperimentali Ambiente flessibile e a basso costo per sviluppo, iterazione, test e innovazione rapidi Risorse con funzionalità di base, risorse effimere come le VM spot e ambienti sandbox con limiti di spesa definiti.

Un vantaggio del cloud è la possibilità di sfruttare la potenza di calcolo più adeguata per un determinato carico di lavoro. Alcuni carichi di lavoro vengono sviluppati per sfruttare gli insiemi di istruzioni del processore, mentre altri potrebbero non essere progettati in questo modo. Esegui il benchmarking e profila i tuoi carichi di lavoro di conseguenza. Classifica i carichi di lavoro e scegli le risorse specifiche per ciascun carico di lavoro (ad esempio, scegli le famiglie di macchine appropriate per le VM Compute Engine). Questa pratica consente di ottimizzare i costi, promuovere l'innovazione e mantenere il livello di disponibilità e prestazioni di cui i carichi di lavoro hanno bisogno.

Di seguito sono riportati alcuni esempi di come implementare questo consiglio:

  • Per i carichi di lavoro mission-critical che servono utenti distribuiti a livello globale, valuta la possibilità di utilizzare Spanner. Spanner elimina la necessità di implementazioni complesse dei database garantendo l'affidabilità e la coerenza dei dati in tutte le regioni.
  • Per i carichi di lavoro con livelli di carico variabili, utilizza la scalabilità automatica per assicurarti di non sostenere costi quando il carico è basso e, al contempo, di mantenere una capacità sufficiente per soddisfare il carico corrente. Puoi configurare la scalabilità automatica per moltiGoogle Cloud servizi, tra cui VM Compute Engine, cluster Google Kubernetes Engine (GKE) e Cloud Run. Quando configuri l'autoscaling, puoi configurare limiti massimi di scalabilità per assicurarti che i costi rimangano nei budget specificati.

Seleziona le regioni in base ai requisiti di costo

Per i tuoi carichi di lavoro cloud, valuta attentamente le regioni Google Cloud disponibile e scegli quelle in linea con i tuoi obiettivi di costo. La regione con il costo più basso potrebbe non offrire una latenza ottimale o non soddisfare i tuoi requisiti di sostenibilità. Prendi decisioni consapevoli su dove implementare i carichi di lavoro per raggiungere il bilanciamento desiderato. Puoi utilizzare il Google Cloud selettore di regioni per comprendere i compromessi tra costo, sostenibilità, latenza e altri fattori.

Utilizzare le opzioni di ottimizzazione dei costi integrate

I prodottiGoogle Cloud forniscono funzionalità integrate per aiutarti a ottimizzare l'utilizzo delle risorse e a controllare i costi. La tabella seguente elenca esempi di funzionalità di ottimizzazione dei costi che puoi utilizzare in alcuni Google Cloud prodotti:

Product Funzionalità di ottimizzazione dei costi
Compute Engine
GKE
Cloud Storage
  • Esegui la transizione automatica dei dati a classi di archiviazione con costi inferiori in base alla loro età o ai pattern di accesso utilizzando la Gestione del ciclo di vita degli oggetti.
  • Sposta in modo dinamico i dati nella classe di archiviazione più conveniente in base ai pattern di utilizzo utilizzando Autoclass.
BigQuery
  • Riduci i costi di elaborazione delle query per i carichi di lavoro in stato stazionario utilizzando i prezzi basati sulla capacità.
  • Ottimizza le prestazioni e i costi delle query utilizzando tecniche di partizionamento e clustering.
Google Cloud VMware Engine
  • Riduci i costi VMware utilizzando strategie di ottimizzazione dei costi come gli sconti per impegno di utilizzo (CUD), l'ottimizzazione del consumo di spazio di archiviazione e il ridimensionamento dei cluster ESXi.

Ottimizzare la condivisione delle risorse

Per massimizzare l'utilizzo delle risorse cloud, puoi eseguire il deployment di più applicazioni o servizi sulla stessa infrastruttura, soddisfacendo al contempo i requisiti di sicurezza e di altro tipo delle applicazioni. Ad esempio, negli ambienti di sviluppo e di test, puoi utilizzare la stessa infrastruttura cloud per testare tutti i componenti di un'applicazione. Per l'ambiente di produzione, puoi eseguire il deployment di ciascun componente in un insieme separato di risorse per limitare l'entità dell'impatto in caso di incidenti.

Di seguito sono riportati alcuni esempi di come implementare questo consiglio:

  • Utilizza una singola istanza Cloud SQL per più ambienti di produzione.
  • Consenti a più team di sviluppo di condividere un cluster GKE utilizzando la funzionalità di gestione dei team del parco risorse in GKE Enterprise con controlli di accesso appropriati.
  • Utilizza GKE Autopilot per sfruttare le tecniche di ottimizzazione dei costi come il bin packing e la scalabilità automatica che GKE implementa per impostazione predefinita.
  • Per i carichi di lavoro di AI e ML, risparmia sui costi delle GPU utilizzando strategie di condivisione della GPU come le GPU multi-istanza, le GPU con condivisione in base al tempo e NVIDIA MPS.

Sviluppare e gestire architetture di riferimento

Crea e gestisci un repository di architetture di riferimento personalizzate per soddisfare i requisiti di diversi ambienti di deployment e tipi di carichi di lavoro. Per semplificare la procedura di progettazione e implementazione dei singoli progetti, i blueprint possono essere gestiti centralmente da un team come un Cloud Center of Excellence (CCoE). I team di progetto possono scegliere modelli adatti in base a criteri chiaramente definiti, per garantire la coerenza dell'architettura e l'adozione delle best practice. Per i requisiti che sono specifici di un progetto, il team di progetto e il team di architettura centrale devono collaborare per progettare nuove architetture di riferimento. Puoi condividere le architetture di riferimento all'interno dell'organizzazione per promuovere la condivisione delle conoscenze ed espandere il repository delle soluzioni disponibili. Questo approccio garantisce coerenza, accelera lo sviluppo, semplifica il processo decisionale e promuove un utilizzo efficiente delle risorse.

Esamina le architetture di riferimento fornite da Google per vari casi d'uso e tecnologie. Queste architetture di riferimento incorporano le best practice per la selezione, la definizione delle dimensioni, la configurazione e l'implementazione delle risorse. Utilizzando queste architetture di riferimento, puoi accelerare il processo di sviluppo e ottenere risparmi sui costi fin dall'inizio.

Applicare la disciplina dei costi utilizzando i criteri dell'organizzazione

Valuta la possibilità di utilizzare le norme dell'organizzazione per limitare le località e i prodotti Google Cloud disponibili che i membri del team possono utilizzare. Questi criteri contribuiscono a garantire che i team rispettino soluzioni economicamente vantaggiose e che le risorse vengano provisionate in località in linea con i tuoi obiettivi di ottimizzazione dei costi.

Fai una stima di budget realistici e imposta limiti finanziari

Sviluppare budget dettagliati per ogni progetto, carico di lavoro e ambiente di implementazione. Assicurati che i budget coprano tutti gli aspetti delle operazioni cloud, inclusi i costi dell'infrastruttura, le licenze software, il personale e la crescita prevista. Per evitare la spesa eccessiva e garantire l'allineamento ai tuoi obiettivi finanziari, stabilisci chiare soglie o limiti di spesa per progetti, servizi o risorse specifiche. Monitora regolarmente la spesa per il cloud in base a questi limiti. Puoi utilizzare gli avvisi proattivi sulle quote per identificare tempestivamente i potenziali superamenti di budget e intraprendere azioni correttive tempestive.

Oltre a impostare i budget, puoi utilizzare le quote e i limiti per applicare la disciplina dei costi e prevenire picchi imprevisti di spesa. Puoi esercitare un controllo granulare sul consumo delle risorse impostando quote a vari livelli, inclusi progetti, servizi e persino tipi di risorse specifici.

Di seguito sono riportati alcuni esempi di come implementare questo consiglio:

  • Quote a livello di progetto: imposta limiti di spesa o quote di risorse a livello di progetto per stabilire limiti finanziari complessivi e controllare il consumo di risorse in tutti i servizi all'interno del progetto.
  • Quote specifiche per servizio: configura le quote per servizi Google Cloud specifici come Compute Engine o BigQuery per limitare il numero di istanze, CPU o capacità di archiviazione che è possibile eseguire il provisioning.
  • Quote specifiche per tipo di risorsa: applica le quote ai singoli tipi di risorse, come VM Compute Engine, bucket Cloud Storage, istanze Cloud Run o nodi GKE, per limitarne l'utilizzo ed evitare superamenti di costi imprevisti.
  • Avvisi relativi alle quote: ricevi notifiche quando l'utilizzo della quota (a livello di progetto) raggiunge una percentuale del valore massimo.

Utilizzando quote e limiti insieme a budget e monitoraggio, puoi creare un approccio proattivo e multilivello al controllo dei costi. Questo approccio contribuisce ad assicurare che la spesa per il cloud rimanga entro limiti definiti e sia in linea con gli obiettivi della tua attività. Tieni presente che questi controlli dei costi non sono permanenti o rigidi. Per assicurarti che i controlli dei costi rimangano in linea con gli standard di settore attuali e riflettano le esigenze in evoluzione della tua attività, devi esaminarli regolarmente e modificarli in modo da includere nuove tecnologie e best practice.