Questo principio del pilastro dell'ottimizzazione dei costi del Google Cloud Well-Architected Framework fornisce consigli per aiutarti a pianificare e eseguire il provisioning delle risorse in modo che corrispondano ai requisiti e ai pattern di consumo dei tuoi carichi di lavoro cloud.
Panoramica del principio
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 per un modello di costi 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 informate in merito al provisioning, all'utilizzo e all'ottimizzazione dei costi delle risorse. Questo approccio ti consente di controllare la spesa per il cloud, evitare il provisioning eccessivo e garantire che le risorse cloud siano allineate alle esigenze dinamiche dei tuoi carichi di lavoro e ambienti.
Consigli
Per ottimizzare in modo efficace l'utilizzo delle risorse cloud, tieni presente i seguenti suggerimenti.
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 loro di eseguire il deployment e l'esecuzione rapida di applicazioni per brevi periodi di tempo, ma potrebbero non aver bisogno di alta disponibilità. D'altra parte, un ambiente di produzione in genere richiede un'elevata disponibilità. Per massimizzare l'utilizzo delle risorse, definisci requisiti specifici per l'ambiente in base alle esigenze aziendali. La tabella seguente elenca alcuni esempi di requisiti specifici per l'ambiente.
Ambiente | Requisiti |
Produzione |
|
Sviluppo e test |
|
Altri ambienti (come gestione temporanea e controllo qualità) |
|
Scegliere risorse specifiche per il workload
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 workload. Ad esempio, un'applicazione stateless potrebbe non richiedere lo stesso livello di disponibilità o affidabilità di un backend stateful. La tabella seguente elenca altri esempi di requisiti specifici per il workload.
Tipo di workload | Requisiti del workload | Opzioni delle risorse |
Mission critical | Disponibilità continua, sicurezza robusta e prestazioni elevate | Risorse premium e servizi gestiti come Spanner per l'alta disponibilità e la coerenza globale dei dati. |
Non critica | Infrastruttura conveniente 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 Cloud Run Functions. |
Workload sperimentali | Ambiente flessibile ed economico 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ù appropriata per un determinato carico di lavoro. Alcuni workload sono sviluppati per sfruttare i set di istruzioni del processore, mentre altri potrebbero non essere progettati in questo modo. Esegui il benchmark e il profilo dei tuoi carichi di lavoro di conseguenza. Categorizza i tuoi workload e fai scelte di risorse specifiche per il workload (ad esempio, scegli famiglie di macchine appropriate per le VM di Compute Engine). Questa pratica aiuta a ottimizzare i costi, favorire l'innovazione e mantenere il livello di disponibilità e rendimento necessario per i carichi di lavoro.
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 di database complesse garantendo l'affidabilità e la coerenza dei dati in tutte le regioni.
- Per i workload con livelli di carico variabili, utilizza la scalabilità automatica per assicurarti di non sostenere costi quando il carico è basso e di mantenere una capacità sufficiente a soddisfare il carico attuale. Puoi configurare la scalabilità automatica per molti serviziGoogle Cloud , tra cui VM Compute Engine, cluster Google Kubernetes Engine (GKE) e Cloud Run. Quando configuri la scalabilità automatica, puoi impostare limiti massimi di scalabilità per assicurarti che i costi rimangano entro i budget specificati.
Seleziona le regioni in base ai requisiti di costo
Per i tuoi workload cloud, valuta attentamente le regioni Google Cloud disponibili 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 potrebbe non soddisfare i tuoi requisiti di sostenibilità. Prendi decisioni informate su dove eseguire il deployment dei tuoi carichi di lavoro per raggiungere l'equilibrio desiderato. Puoi utilizzare lo Google Cloud strumento per la selezione della regione per comprendere i compromessi tra costi, sostenibilità, latenza e altri fattori.
Utilizzare le opzioni di ottimizzazione dei costi integrate
I prodottiGoogle Cloud offrono funzionalità integrate per aiutarti a ottimizzare l'utilizzo delle risorse e controllare i costi. La seguente tabella elenca esempi di funzionalità di ottimizzazione dei costi che puoi utilizzare in alcuni prodotti Google Cloud :
Prodotto | Funzionalità di ottimizzazione dei costi |
Compute Engine |
|
GKE |
|
Cloud Storage |
|
BigQuery |
|
Google Cloud VMware Engine |
|
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 comunque i requisiti di sicurezza e di altro tipo delle applicazioni. Ad esempio, negli ambienti di sviluppo e 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 ogni componente su un set 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 non 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 con controlli dell'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 della GPU utilizzando strategie di condivisione della GPU, come GPU multi-istanza, GPU time-sharing 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 progettazione e l'implementazione di singoli progetti, i blueprint possono essere gestiti centralmente da un team come un Cloud Center of Excellence (CCoE). I team di progetto possono scegliere i blueprint adatti in base a criteri chiaramente definiti, per garantire la coerenza dell'architettura e l'adozione delle best practice. Per i requisiti univoci per 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 in tutta l'organizzazione per promuovere la condivisione delle conoscenze ed espandere il repository di 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, il dimensionamento, la configurazione e il deployment delle risorse. Utilizzando queste architetture di riferimento, puoi accelerare il processo di sviluppo e ottenere risparmi sui costi fin dall'inizio.
Applica la disciplina dei costi utilizzando le policy dell'organizzazione
Valuta la possibilità di utilizzare le policy 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 aderiscano a soluzioni economiche e che il provisioning delle risorse venga eseguito in località in linea con i tuoi obiettivi di ottimizzazione dei costi.
Stimare budget realistici e stabilire limiti finanziari
Sviluppa budget dettagliati per ogni progetto, carico di lavoro e ambiente di deployment. Assicurati che i budget coprano tutti gli aspetti delle operazioni cloud, inclusi costi dell'infrastruttura, licenze software, personale e crescita prevista. Per evitare spese eccessive e garantire l'allineamento con i tuoi obiettivi finanziari, stabilisci limiti o soglie di spesa chiari per progetti, servizi o risorse specifiche. Monitora regolarmente la spesa per il cloud rispetto a questi limiti. Puoi utilizzare gli avvisi proattivi relativi alle quote per identificare in anticipo i potenziali superamenti dei costi e intraprendere azioni correttive tempestive.
Oltre a impostare i budget, puoi utilizzare quote e limiti per contribuire a rispettare la disciplina dei costi e prevenire picchi imprevisti di spesa. Puoi esercitare un controllo granulare sul consumo di risorse impostando quote a vari livelli, tra cui 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 delle 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 Cloudspecifici come Compute Engine o BigQuery per limitare il numero di istanze, CPU o capacità di archiviazione che possono essere sottoposte a provisioning.
- Quote specifiche per tipo di risorsa: applica quote a singoli tipi di risorse come VM Compute Engine, bucket Cloud Storage, istanze Cloud Run o nodi GKE per limitare il loro utilizzo ed evitare superamenti imprevisti dei costi.
- Avvisi relativi alla quota: 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 consente di garantire che la spesa per il cloud rimanga entro i limiti definiti e sia in linea con gli obiettivi commerciali. Ricorda che questi controlli dei costi non sono permanenti o rigidi. Per garantire che i controlli dei costi rimangano in linea con gli standard di settore attuali e riflettano le esigenze aziendali in evoluzione, devi esaminare i controlli regolarmente e modificarli per includere nuove tecnologie e best practice.