Questo principio del pilastro dell'ottimizzazione dei costi del Google Cloud Well-Architected Framework fornisce consigli per aiutarti a pianificare ed eseguire il provisioning delle risorse in modo che corrispondano ai requisiti e ai pattern di consumo dei tuoi workload 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 costo ben definito che ti consente di prevedere il costo totale di proprietà (TCO) e identificare i fattori di costo durante il tuo percorso di adozione del cloud. Analizzando e prevedendo in modo proattivo la spesa per il cloud, puoi fare scelte consapevoli 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 l'overprovisioning e garantire che le risorse cloud siano allineate alle esigenze dinamiche dei tuoi workload e ambienti.
Consigli
Per ottimizzare in modo efficace l'utilizzo delle risorse cloud, tieni presente i seguenti suggerimenti.
Scegli le risorse specifiche dell'ambiente
Ogni ambiente di deployment ha requisiti diversi in termini di disponibilità, affidabilità e scalabilità. Ad esempio, gli sviluppatori potrebbero preferire un ambiente che consenta loro di eseguire rapidamente il deployment e l'esecuzione di applicazioni per brevi periodi, ma potrebbero non aver bisogno dell'alta affidabilità. D'altra parte, un ambiente di produzione richiede in genere un'alta affidabilità. Per massimizzare l'utilizzo delle risorse, definisci i requisiti specifici dell'ambiente in base alle tue esigenze aziendali. Di seguito sono riportati alcuni esempi di requisiti specifici per l'ambiente:
- Produzione: alta affidabilità, prestazioni prevedibili, stabilità operativa e sicurezza con risorse solide.
- Sviluppo e test: efficienza dei costi, infrastruttura flessibile con capacità di burst e infrastruttura temporanea quando la persistenza dei dati non è necessaria.
- Altri ambienti (come gestione temporanea e QA): allocazione delle risorse personalizzata in base ai requisiti specifici dell'ambiente.
Scegli risorse specifiche per il workload
Ogni workload cloud potrebbe avere requisiti diversi in termini di 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. Le sezioni seguenti forniscono ulteriori esempi di requisiti specifici per i workload.
Workload mission critical
- Requisiti del workload: disponibilità continua, sicurezza solida e prestazioni elevate.
- Opzioni delle risorse: risorse premium e servizi gestiti come Spanner per l'alta affidabilità e la coerenza globale dei dati.
Workload non critici
- Requisiti del workload: infrastruttura conveniente e con scalabilità automatica.
- Opzioni per le risorse: risorse con funzionalità di base e risorse temporanee come le VM spot.
Workload basati su eventi
- Requisiti del workload: scalabilità dinamica in base alla domanda attuale di capacità e prestazioni.
- Opzioni delle risorse: servizi serverless come Cloud Run e Cloud Run Functions.
Workload sperimentali
- Requisiti del workload: ambiente flessibile e a basso costo per sviluppo, iterazione, test e innovazione rapidi.
- Opzioni per le risorse: risorse con funzionalità di base, risorse temporanee come le VM spot e ambienti sandbox con limiti di spesa definiti.
Un vantaggio del cloud è l'opportunità di sfruttare la potenza di calcolo più appropriata per un determinato workload. 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 profiling dei workload di conseguenza. Categorizza i tuoi workload ed effettua scelte di risorse specifiche per i workload (ad esempio, scegli le 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 prestazioni richiesto dai tuoi workload.
Di seguito sono riportati alcuni esempi di come puoi implementare questo consiglio:
- Per i workload 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 fluttuanti, utilizza la scalabilità automatica per assicurarti di non sostenere costi quando il carico è basso e, al contempo, mantenere una capacità sufficiente per soddisfare il carico attuale. Puoi configurare la scalabilità automatica per molti serviziGoogle Cloud , tra cui VM di Compute Engine, cluster Google Kubernetes Engine (GKE) e Cloud Run. Quando configuri la scalabilità automatica, puoi configurare i 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 non soddisfare i tuoi requisiti di sostenibilità. Prendere decisioni informate su dove eseguire il deployment dei workload per ottenere l'equilibrio desiderato. Puoi utilizzare lo strumento per la selezione della regioneGoogle Cloud per comprendere i compromessi tra costi, sostenibilità, latenza e altri fattori.
Utilizza le opzioni di ottimizzazione dei costi integrate
I prodottiGoogle Cloud offrono funzionalità integrate per aiutarti a ottimizzare l'utilizzo delle risorse e a controllare i costi. Di seguito sono riportati alcuni esempi di funzionalità di ottimizzazione dei costi che puoi utilizzare in alcuni prodotti Google Cloud :
- Compute Engine
- Aggiungi o rimuovi automaticamente le VM in base al carico attuale utilizzando la scalabilità automatica.
- Evita l'overprovisioning creando e utilizzando tipi di macchine personalizzate che corrispondono ai requisiti del tuo workload.
- Per i workload non critici o a tolleranza di errore, riduci i costi utilizzando le VM spot.
- Negli ambienti di sviluppo, riduci i costi limitando il tempo di esecuzione delle VM o sospendendo o arrestando le VM quando non ti servono.
- GKE
- Regola automaticamente le dimensioni dei cluster GKE in base al carico attuale utilizzando il gestore della scalabilità automatica dei cluster.
- Crea e gestisci automaticamente i node pool in base ai requisiti del workload e assicurati un utilizzo ottimale delle risorse utilizzando il provisioning automatico dei nodi.
- Cloud Storage
- Esegui automaticamente la transizione dei dati a classi di archiviazione a costo inferiore in base all'età dei dati o ai pattern di accesso utilizzando la gestione del ciclo di vita degli oggetti.
- Sposta dinamicamente 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 workload in stato stabile 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 di VMware utilizzando strategie di ottimizzazione dei costi come i CUD, l'ottimizzazione del consumo dello spazio di archiviazione e il dimensionamento ottimale dei cluster ESXi.
Ottimizza 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 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 insieme separato di risorse per limitare l'impatto in caso di incidenti.
Di seguito sono riportati alcuni esempi di come puoi 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 degli accessi 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 workload di AI e ML, risparmia sui costi delle GPU utilizzando strategie di condivisione delle GPU come GPU multi-istanza, GPU con condivisione del 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 workload. Per semplificare il processo di progettazione e implementazione dei singoli progetti, i progetti possono essere gestiti centralmente da un team come un Cloud Center of Excellence (CCoE). I team di progetto possono scegliere i progetti adatti in base a criteri chiaramente definiti, per garantire la coerenza dell'architettura e l'adozione delle best practice. Per i requisiti 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 la 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 se utilizzare le policy dell'organizzazione per limitare le località e i prodotti Google Cloud disponibili che i membri del team possono utilizzare. Queste policy aiutano a garantire che i team adottino soluzioni convenienti ed eseguano il provisioning delle risorse in località in linea con i tuoi obiettivi di ottimizzazione dei costi.
Stima budget realistici e imposta limiti finanziari
Sviluppa budget dettagliati per ogni progetto, workload e ambiente di deployment. 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 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 quota proattivi per identificare tempestivamente potenziali superamenti dei costi e intraprendere azioni correttive in modo tempestivo.
Oltre a impostare i budget, puoi utilizzare quote e limiti per applicare la disciplina dei costi e prevenire picchi di spesa imprevisti. Puoi esercitare un controllo granulare sul consumo delle risorse impostando quote a vari livelli, tra cui progetti, servizi e persino tipi di risorse specifici.
Di seguito sono riportati alcuni esempi di come puoi implementare questo consiglio:
- Quote a livello di progetto: imposta limiti di spesa o quote di risorse a livello di progetto per stabilire limiti finanziari generali e controllare il consumo di risorse in tutti i servizi all'interno del progetto.
- Quote specifiche per i servizi: configura le quote per servizi Google Cloud specifici come Compute Engine o BigQuery per limitare il numero di istanze, CPU o capacità di archiviazione di cui è possibile eseguire il provisioning.
- Quote specifiche per tipo di risorsa: applica quote a singoli tipi di risorse, come VM di Compute Engine, bucket Cloud Storage, istanze Cloud Run o nodi GKE, per limitarne l'utilizzo ed evitare superamenti imprevisti dei costi.
- Avvisi 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 contribuisce a garantire che la spesa per il cloud rimanga entro i limiti definiti e sia in linea con i tuoi scopi commerciali. Ricorda che questi controlli dei costi non sono permanenti o rigidi. Per garantire che i controlli dei costi rimangano allineati agli standard di settore attuali e riflettano le tue esigenze aziendali in continua evoluzione, devi esaminarli regolarmente e modificarli per includere nuove tecnologie e best practice.