Il pilastro di ottimizzazione dei costi nel Google Cloud Framework Well-Architected descrive principi e consigli per ottimizzare il costo dei carichi di lavoro in Google Cloud.
Il pubblico di destinazione include:
- CTO, CIO, CFO e altri dirigenti responsabili della gestione strategica dei costi.
- Architetti, sviluppatori, amministratori e operatori che prendono decisioni che influiscono sui costi in tutte le fasi del percorso cloud di un'organizzazione.
I modelli di costo per i carichi di lavoro on-premise e cloud sono molto diversi. I costi IT on-premise includono le spese in conto capitale (CapEx) e le spese operative (OpEx). Le risorse hardware e software on-premise vengono acquisite e i costi di acquisizione vengono ammortizzati durante la vita operativa delle risorse. Nel cloud, i costi per la maggior parte delle risorse cloud vengono considerati come OpEx, ovvero vengono sostenuti quando le risorse cloud vengono utilizzate. Questa differenza fondamentale sottolinea l'importanza dei seguenti principi fondamentali dell'ottimizzazione dei costi.
Per i principi e i suggerimenti per l'ottimizzazione dei costi specifici per i carichi di lavoro di IA e ML, consulta Punto di vista IA e ML: ottimizzazione dei costi nel framework Well-Architected.
Principi fondamentali
I consigli nel pilastro di ottimizzazione dei costi del framework Well-Architected sono mappati ai seguenti principi fondamentali:
- Allinea la spesa cloud al valore aziendale: assicurati che le risorse cloud generino un valore aziendale misurabile allineando la spesa IT agli scopi commerciali.
- Promuovi una cultura di consapevolezza dei costi: assicurati che le persone della tua organizzazione tengano conto dell'impatto dei costi delle loro decisioni e attività e che abbiano accesso alle informazioni sui costi necessarie per prendere decisioni consapevoli.
- Ottimizza l'utilizzo delle risorse: esegui il provisioning solo delle risorse di cui hai bisogno e paga solo per quelle che consumi.
- Ottimizza continuamente: monitora continuamente l'utilizzo e i costi delle risorse cloud e apporta aggiustamenti proattivi in base alle esigenze per ottimizzare la spesa. Questo approccio prevede l'identificazione e la risoluzione di potenziali inefficienze dei costi prima che diventino problemi significativi.
Questi principi sono strettamente in linea con i principi fondamentali di Cloud FinOps. FinOps è pertinente per qualsiasi organizzazione, indipendentemente dalle dimensioni o dal livello di maturità nel cloud. Adottando questi principi e seguendo i consigli correlati, puoi controllare e ottimizzare i costi durante il tuo percorso nel cloud.
Collaboratori
Autore: Nicolas Pintaux | Customer Engineer, specialista di modernizzazione delle applicazioni
Altri collaboratori:
- Anuradha Bajpai | Solution Architect
- Daniel Lees | Cloud Security Architect
- Eric Lam | Responsabile di FinOps per Google Cloud
- Fernando Rubbo | Cloud Solutions Architect
- Filipe Gracio, PhD | Customer Engineer
- Gary Harmson | Customer Engineer
- Jose Andrade | Customer Engineer per l'Infrastruttura aziendale
- Kent Hua | Solutions Manager
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-product
- Marwan Al Shawi | Partner Customer Engineer
- Radhika Kanakam | Senior Program Manager, Cloud GTM
- Steve McGhee | Propagandista dell'affidabilità
- Sergei Lilichenko | Solutions Architect
- Wade Holmes | Global Solutions Director
- Zach Seils | Specialista di networking
Allinea la spesa cloud al valore aziendale
Questo principio del pilastro di ottimizzazione dei costi del Google Cloud Framework Well-Architected fornisce consigli per allineare l'utilizzo delle risorse Google Cloud agli scopi commerciali della tua organizzazione.
Panoramica del principio
Per gestire efficacemente i costi del cloud, devi massimizzare il valore aziendale fornito dalle risorse cloud e ridurre al minimo il costo totale di proprietà (TCO). Quando valuti le opzioni di risorse per i tuoi carichi di lavoro cloud, tieni conto non solo del costo del provisioning e dell'utilizzo delle risorse, ma anche del costo della loro gestione. Ad esempio, le macchine virtuali (VM) su Compute Engine potrebbero essere un'opzione economica per l'hosting di applicazioni. Tuttavia, se prendi in considerazione il sovraccarico per la manutenzione, l'applicazione di patch e la scalabilità delle VM, il TCO può aumentare. D'altra parte, i servizi serverless come Cloud Run possono offrire un valore commerciale maggiore. Il ridotto overhead operativo consente al team di concentrarsi sulle attività di base e contribuisce ad aumentare l'agilità.
Per assicurarti che le risorse cloud offrano un valore ottimale, valuta i seguenti fattori:
- Costi di provisioning e utilizzo: le spese sostenute per l'acquisto, il provisioning o il consumo di risorse.
- Costi di gestione: le spese ricorrenti per il funzionamento e la manutenzione delle risorse, tra cui attività come l'applicazione di patch, il monitoraggio e il ridimensionamento.
- Costi indiretti: i costi che potresti sostenere per gestire problemi come tempo di riposo, perdita di dati o violazioni della sicurezza.
- Impatto sull'attività: i potenziali vantaggi delle risorse, come aumento delle entrate, miglioramento della soddisfazione dei clienti e time to market più rapido.
Allineando la spesa cloud al valore aziendale, puoi ottenere i seguenti vantaggi:
- Decisioni basate sul valore: i team sono invitati a dare la priorità alle soluzioni che offrono il maggiore valore aziendale e a prendere in considerazione le implicazioni dei costi sia a breve che a lungo termine.
- Scelta informata delle risorse: i tuoi team dispongono delle informazioni e delle conoscenze necessarie per valutare il valore aziendale e il TCO di varie opzioni di implementazione, in modo da scegliere risorse convenienti.
- Allineamento tra team: la collaborazione interfunzionale tra team aziendali, finanziari e tecnici garantisce che le decisioni relative al cloud siano in linea con gli obiettivi complessivi dell'organizzazione.
Consigli
Per allineare la spesa per il cloud agli scopi commerciali, tieni presenti i seguenti consigli.
Dare la priorità ai servizi gestiti e ai prodotti serverless
Quando è possibile, scegli servizi gestiti e prodotti serverless per ridurre l'overhead operativo e i costi di manutenzione. Questa scelta consente ai team di concentrarsi sulle attività principali dell'attività. Possono accelerare l'implementazione di nuove funzionalità e contribuire a promuovere l'innovazione e il valore.
Di seguito sono riportati alcuni esempi di come implementare questo consiglio:
- Per eseguire database di server PostgreSQL, MySQL o Microsoft SQL Server, utilizza Cloud SQL invece di eseguire il deployment di questi database su VM.
- Per eseguire e gestire i cluster Kubernetes, utilizza Google Kubernetes Engine (GKE) Autopilot invece di eseguire il deployment dei container nelle VM.
- Per le tue esigenze di elaborazione Apache Hadoop o Apache Spark, utilizza Dataproc e Dataproc Serverless. La fatturazione al secondo può contribuire a ottenere un TCO inferiore in modo significativo rispetto ai data lake on-premise.
Bilancia l'efficienza dei costi con l'agilità aziendale
Il controllo dei costi e l'ottimizzazione dell'utilizzo delle risorse sono obiettivi importanti. Tuttavia, devi bilanciare questi obiettivi con la necessità di un'infrastruttura flessibile che ti consenta di innovare rapidamente, rispondere rapidamente ai cambiamenti e offrire valore più velocemente. Di seguito sono riportati alcuni esempi di come raggiungere questo equilibrio:
- Adotta le metriche DORA per le prestazioni di distribuzione del software. Metriche come il tasso di errore delle modifiche (CFR), il tempo di rilevamento (TTD) e il tempo di ripristino (TTR) possono aiutarti a identificare e risolvere i colli di bottiglia nei processi di sviluppo e deployment. Riducendo i tempi di riposo e accelerando la distribuzione, puoi ottenere sia l'efficienza operativa che l'agilità aziendale.
- Segui le pratiche di Site Reliability Engineering (SRE) per migliorare l'affidabilità operativa. L'attenzione degli SRE all'automazione, all'osservabilità e alla risposta agli incidenti può portare a una riduzione del tempo di riposo, a un tempo di recupero inferiore e a una maggiore soddisfazione dei clienti. Riducendo al minimo i tempi di inattività e migliorando l'affidabilità operativa, puoi evitare la perdita di entrate e la necessità di eseguire il provisioning eccessivo delle risorse come misura di sicurezza per gestire le interruzioni.
Attivare l'ottimizzazione self-service
Incoraggia una cultura di sperimentazione ed esplorazione fornendo ai tuoi team strumenti di ottimizzazione dei costi self-service, strumenti di osservabilità e piattaforme di gestione delle risorse. Consentire loro di eseguire il provisioning, gestire e ottimizzare autonomamente le risorse cloud. Questo approccio contribuisce a creare un senso di appartenenza, accelera l'innovazione e garantisce che i team possano rispondere rapidamente alle esigenze in evoluzione, tenendo conto dell'efficienza dei costi.
Adozione e implementazione di FinOps
Adotta FinOps per creare un ambiente collaborativo in cui tutti possano prendere decisioni consapevoli che bilancino costi e valore. FinOps favorisce la responsabilità finanziaria e promuove un'ottimizzazione efficace dei costi nel cloud.
Promuovi una mentalità incentrata sul valore e consapevole del TCO
Incoraggia i membri del team ad adottare un approccio olistico alla spesa per il cloud, con un'enfasi sul TCO e non solo sui costi iniziali. Utilizza tecniche come la mappatura del flusso di valore per visualizzare e analizzare il flusso di valore durante il processo di invio del software e identificare le aree di miglioramento. Implementa il costo unitario per le tue applicazioni e i tuoi servizi per ottenere una comprensione granulare dei fattori di costo e scoprire opportunità di ottimizzazione dei costi. Per ulteriori informazioni, consulta Massimizza il valore aziendale con Cloud FinOps.
Promuovi una cultura di consapevolezza dei costi
Questo principio del pilastro di ottimizzazione dei costi del Google Cloud Framework Well-Architected fornisce consigli per promuovere la consapevolezza dei costi in tutta l'organizzazione e assicurarsi che i membri del team dispongano delle informazioni sui costi necessarie per prendere decisioni consapevoli.
Tradizionalmente, la responsabilità della gestione dei costi potrebbe essere centralizzata in alcuni stakeholder selezionati e incentrata principalmente sulle decisioni relative all'architettura iniziale del progetto. Tuttavia, i membri del team di tutti i ruoli utente cloud (analista, architetto, sviluppatore o amministratore) possono contribuire a ridurre il costo delle risorse inGoogle Cloud. Condividendo i dati sui costi in modo appropriato, puoi consentire ai membri del team di prendere decisioni convenienti durante le fasi di sviluppo e di implementazione.
Panoramica del principio
Gli stakeholder con vari ruoli, tra cui proprietari di prodotti, sviluppatori, ingegneri di deployment, amministratori e analisti finanziari, devono avere visibilità sui dati di costo pertinenti e sulla relativa relazione con il valore aziendale. Per eseguire il provisioning e la gestione delle risorse cloud, sono necessari i seguenti dati:
- Costi delle risorse previsti: stime dei costi al momento della progettazione e del deployment.
- Costi di utilizzo delle risorse in tempo reale: dati sui costi aggiornati che possono essere utilizzati per il monitoraggio continuo e la convalida del budget.
- Costi mappati alle metriche aziendali: approfondimenti su come la spesa per il cloud influisce sugli indicatori di prestazione chiave (KPI) per consentire ai team di identificare strategie convenienti.
Non tutti gli utenti potrebbero aver bisogno di accedere ai dati di costo non elaborati. Tuttavia, è fondamentale promuovere la consapevolezza dei costi tra tutti i ruoli perché le singole decisioni possono influire sui costi.
Promuovendo la visibilità dei costi e garantendo una chiara proprietà delle pratiche di gestione dei costi, ti assicuri che tutti siano a conoscenza delle implicazioni finanziarie delle loro scelte e che contribuiscano attivamente agli obiettivi di ottimizzazione dei costi dell'organizzazione. Che si tratti di un team FinOps centralizzato o di un modello distribuito, stabilire la responsabilità è fondamentale per un impegno efficace di ottimizzazione dei costi.
Consigli
Per promuovere la consapevolezza dei costi e assicurarti che i membri del tuo team dispongano delle informazioni sui costi di cui hanno bisogno per prendere decisioni consapevoli, prendi in considerazione i seguenti consigli.
Fornire visibilità dei costi a livello di organizzazione
Per ottenere la visibilità dei costi a livello di organizzazione, i team responsabili della gestione dei costi possono intraprendere le seguenti azioni:
- Standardizza il calcolo dei costi e il budget: utilizza un metodo coerente per determinare i costi totali delle risorse cloud, tenendo conto di sconti e costi condivisi. Definisci procedure di budgeting chiare e standardizzate in linea con gli obiettivi della tua organizzazione e che consentano una gestione proattiva dei costi.
- Utilizza strumenti standardizzati di gestione e visibilità dei costi: utilizza gli strumenti appropriati che forniscono approfondimenti in tempo reale sulla spesa per il cloud e generano istantanee regolari (ad esempio settimanali) dell'evoluzione dei costi. Questi strumenti consentono di effettuare budgeting, previsioni e identificazione proattive delle opportunità di ottimizzazione. Gli strumenti possono essere strumenti del provider cloud (come la dashboard di Fatturazione Google Cloud), soluzioni di terze parti o soluzioni open source come la soluzione di attribuzione dei costi.
- Implementa un sistema di allocazione dei costi: assegna una parte del budget cloud complessivo a ogni team o progetto. Questa allocazione offre ai team un senso di proprietà sulla spesa per il cloud e li incoraggia a prendere decisioni redditizie nel rispetto del budget assegnato.
- Promuovi la trasparenza: incoraggia i team a discutere delle implicazioni in termini di costi durante i processi di progettazione e decisionale. Crea un ambiente sicuro e di supporto per condividere idee e dubbi relativi all'ottimizzazione dei costi. Alcune organizzazioni utilizzano meccanismi di rinforzo positivo come classifiche o programmi di riconoscimento. Se la tua organizzazione ha limitazioni alla condivisione di dati di costo non elaborati per motivi aziendali, esplora approcci alternativi per condividere informazioni e approfondimenti sui costi. Ad esempio, ti consigliamo di condividere metriche aggregate (come il costo totale per un ambiente o una funzionalità) o metriche relative (come il costo medio per transazione o utente).
Informazioni su come vengono fatturate le risorse cloud
I prezzi delle Google Cloud risorse potrebbero variare in base alle regioni. Per alcune risorse viene addebitato un prezzo fisso mensile, mentre per altre l'addebito potrebbe avvenire in base all'utilizzo. Per comprendere come vengono fatturate le Google Cloud risorse, utilizza il Google Cloud calcolatore dei prezzi e le informazioni sui prezzi specifici del prodotto (ad esempio, prezzi di Google Kubernetes Engine (GKE)).
Informazioni sulle opzioni di ottimizzazione dei costi basate sulle risorse
Per ogni tipo di risorsa cloud che intendi utilizzare, esplora le strategie per ottimizzare l'utilizzo e l'efficienza. Le strategie includono la scelta della dimensione corretta, la scalabilità automatica e l'adozione di tecnologie serverless, se opportuno. Di seguito sono riportati alcuni esempi di opzioni di ottimizzazione dei costi per alcuni Google Cloud prodotti:
- Cloud Run ti consente di configurare CPU sempre allocate per gestire carichi di traffico prevedibili a una frazione del prezzo del metodo di allocazione predefinito (ovvero CPU allocate solo durante l'elaborazione delle richieste).
- Puoi acquistare impegni per gli slot BigQuery per risparmiare sui costi di analisi dei dati.
- GKE fornisce metriche dettagliate per aiutarti a comprendere le opzioni di ottimizzazione dei costi.
- Scopri in che modo i prezzi della rete possono influire sul costo dei trasferimenti di dati e come puoi ottimizzare i costi per servizi di networking specifici. Ad esempio, puoi ridurre i costi di trasferimento dei dati per i bilanciatori del carico delle applicazioni esterni utilizzando Cloud CDN o Google Cloud Armor. Per ulteriori informazioni, consulta Modi per ridurre i costi del bilanciatore del carico delle applicazioni esterno.
Informazioni sulle opzioni di ottimizzazione dei costi basate sugli sconti
Acquisisci familiarità con i programmi di sconto offerti da Google Cloud , come gli esempi riportati di seguito:
- Sconti per impegno di utilizzo (CUD): gli sconti CUD sono adatti per le risorse con un utilizzo prevedibile e costante. Gli sconti per impegno di utilizzo (CUD) ti consentono di ottenere riduzioni di prezzo significative in cambio dell'impegno a utilizzare risorse specifiche per un periodo di tempo (in genere da uno a tre anni). Puoi anche utilizzare il rinnovo automatico dei CUD per evitare di dover riacquistare manualmente gli impegni alla loro scadenza.
- Sconti per utilizzo sostenuto: per determinati Google Cloud prodotti come Compute Engine e GKE, puoi ricevere crediti di sconto automatico dopo l'utilizzo continuo delle risorse oltre soglie di durata specifiche.
- VM spot: per i carichi di lavoro flessibili e a tolleranza di errore, le VM spot possono contribuire a ridurre i costi di Compute Engine. Il costo delle VM spot è notevolmente inferiore a quello delle VM normali. Tuttavia, Compute Engine potrebbe interrompere o eliminare prevedibilmente le VM spot per recuperare la capacità. Le VM spot sono adatte per job batch che possono tollerare la preemption e non hanno requisiti di alta disponibilità.
- Sconti per opzioni di prodotto specifiche: alcuni servizi gestiti come BigQuery offrono sconti quando acquisti capacità di elaborazione delle query dedicata o con il ridimensionamento automatico.
Valuta e scegli le opzioni di sconto in linea con le caratteristiche e i pattern di utilizzo del tuo carico di lavoro.
Incorporare le stime dei costi nei progetti di architettura
Incoraggia i team a sviluppare blueprint dell'architettura che includano stime dei costi per diverse opzioni e configurazioni di implementazione. Questa pratica consente ai team di confrontare i costi in modo proattivo e di prendere decisioni consapevoli in linea con gli obiettivi tecnici e finanziari.
Utilizza un insieme coerente e standard di etichette per tutte le risorse
Puoi utilizzare le etichette per monitorare i costi e identificare e classificare le risorse. Nello specifico, puoi utilizzare le etichette per allocare i costi a progetti, reparti o centri di costo diversi. Definire un criterio di etichettatura formale in linea con le esigenze dei principali stakeholder della tua organizzazione aiuta a rendere i costi più visibili. Puoi anche utilizzare le etichette per filtrare i dati sul costo e sull'utilizzo delle risorse in base al pubblico di destinazione.
Utilizza strumenti di automazione come Terraform per applicare l'etichettatura a ogni risorsa creata. Per migliorare ulteriormente la visibilità e l'attribuzione dei costi, puoi utilizzare gli strumenti forniti dalla soluzione di attribuzione dei costi open source.
Condividere i report sui costi con i membri del team
Condividendo i report sui costi con i membri del team, consenti loro di assumere la responsabilità della spesa per il cloud. Questa pratica consente di prendere decisioni economicamente vantaggiose, di ottimizzare continuamente i costi e di apportare miglioramenti sistematici al modello di allocazione dei costi.
I report sui costi possono essere di diversi tipi, tra cui:
- Report periodici sui costi: i report regolari informano i team sulle loro spese cloud attuali. In genere, questi report potrebbero essere esportazioni di fogli di lavoro. I metodi più efficaci includono email automatiche e dashboard specializzate. Per garantire che i report sui costi forniscano informazioni pertinenti e strategiche senza sopraffare i destinatari con dettagli non necessari, i report devono essere personalizzati in base ai segmenti di pubblico di destinazione. La configurazione di report personalizzati è un passo fondamentale per una visibilità e una gestione dei costi più interattiva e in tempo reale.
- Notifiche automatiche: puoi configurare i report sui costi in modo da informare in modo proattivo gli stakeholder pertinenti (ad esempio via email o chat) di anomalie dei costi, soglie di budget o opportunità di ottimizzazione dei costi. Fornendo informazioni tempestive direttamente a chi può intervenire, gli allarmi automatici incoraggiano un'azione rapida e favoriscono un approccio proattivo all'ottimizzazione dei costi.
- Dashboard diGoogle Cloud : puoi utilizzare le dashboard di fatturazione integrate in Google Cloud per ottenere informazioni sulla suddivisione dei costi e identificare opportunità di ottimizzazione dei costi. Google Cloud fornisce inoltre un hub FinOps per aiutarti a monitorare i risparmi e ricevere consigli per l'ottimizzazione dei costi. Un motore IA consente all'hub FinOps di consigliare opportunità di ottimizzazione dei costi per tutte le risorse attualmente implementate. Per controllare l'accesso a questi consigli, puoi implementare il controllo degli accessi basato sui ruoli (RBAC).
- Dashboard personalizzate: puoi creare dashboard personalizzate esportando i dati di costo in un database di analisi, come BigQuery. Utilizza uno strumento di visualizzazione come Looker Studio per connetterti al database di analisi al fine di creare report interattivi e abilitare il controllo dell'accesso granulare tramite autorizzazioni basate sui ruoli.
- Report sui costi multicloud: per i deployment multicloud, è necessaria una visione unificata dei costi di tutti i fornitori di cloud per garantire analisi, budgeting e ottimizzazione completi. Utilizza strumenti come BigQuery per centralizzare e analizzare i dati sui costi di più fornitori di servizi cloud e utilizza Looker Studio per creare report interattivi specifici per il team.
Ottimizza l'utilizzo delle risorse
Questo principio del pilastro di ottimizzazione dei costi del Google Cloud Framework Well-Architected fornisce suggerimenti 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 carichi di lavoro. Questa comprensione costituisce 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 percorso di adozione del cloud. Analizzando e prevedendo in modo proattivo la spesa per il cloud, puoi fare scelte consapevoli su provisioning, utilizzo e ottimizzazione dei costi delle risorse. Questo approccio consente di controllare la spesa per il cloud, evitare il provisioning eccessivo e garantire 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.
Scegli 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 consente di eseguire il deployment e l'esecuzione rapida di applicazioni per brevi durate, ma che potrebbe non richiedere un'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 |
|
Sviluppo e test |
|
Altri ambienti (ad esempio di gestione temporanea e controllo qualità) |
|
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 i carichi di lavoro.
Tipo di carico di lavoro | Requisiti del carico di lavoro | Opzioni di risorsa |
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. |
Non critica | Infrastruttura economica e con scalabilità automatica | Risorse con funzionalità di base e risorse effimere come 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ù appropriata per un determinato carico di lavoro. Alcuni workload sono 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, ti consigliamo 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 molti Google 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 eseguire il deployment dei carichi di lavoro per raggiungere il bilanciamento desiderato. Puoi utilizzare lo Google Cloud strumento per la selezione della regione per comprendere i compromessi tra costo, 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 a controllare i costi. La seguente tabella elenca esempi di funzionalità di ottimizzazione dei costi che puoi utilizzare in alcuni Google Cloud prodotti:
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 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 i 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 implementazione 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 il deployment 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 costi di infrastruttura, licenze software, personale e crescita prevista. Per evitare la spesa eccessiva e garantire l'allineamento con i tuoi obiettivi finanziari, imposta 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 potenziali superamenti dei costi 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 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 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 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 contribuisce a garantire che la spesa per il cloud rimanga entro limiti definiti e sia in linea con i tuoi obiettivi commerciali. 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.
Ottimizza continuamente
Questo principio del pilastro di ottimizzazione dei costi del Google Cloud Well-Architected Framework fornisce consigli per aiutarti a ottimizzare il costo dei tuoi deployment cloud in base a obiettivi commerciali in continua evoluzione.
Man mano che la tua attività cresce ed evolve, i tuoi carichi di lavoro cloud devono adattarsi alle variazioni nei requisiti delle risorse e nei pattern di utilizzo. Per ottenere il massimo valore dalla spesa per il cloud, devi mantenere l'efficienza in termini di costi, continuando al contempo a supportare gli obiettivi commerciali. Ciò richiede un approccio proattivo e adattabile incentrato sul miglioramento e sull'ottimizzazione continui.
Panoramica del principio
Per ottimizzare continuamente i costi, devi monitorare e analizzare in modo proattivo il tuo ambiente cloud e apportare le modifiche necessarie per soddisfare i requisiti attuali. Concentra le tue attività di monitoraggio sugli indicatori chiave di prestazione (KPI) che influiscono direttamente sull'esperienza degli utenti finali, sono in linea con i tuoi obiettivi commerciali e forniscono informazioni per il miglioramento continuo. Questo approccio ti consente di identificare e risolvere le inefficienze, adattarti alle esigenze in evoluzione e allineare continuamente la spesa per il cloud agli obiettivi commerciali strategici. Per bilanciare l'osservabilità completa con l'efficacia in termini di costi, comprendi i costi e i vantaggi del monitoraggio dell'utilizzo delle risorse e utilizza strategie di ottimizzazione e miglioramento dei processi appropriate.
Consigli
Per monitorare efficacemente il tuo Google Cloud ambiente e ottimizzare continuamente i costi, considera i seguenti consigli.
Concentrati sulle metriche pertinenti per l'attività
Un monitoraggio efficace inizia con l'identificazione delle metriche più importanti per la tua attività e i tuoi clienti. Queste metriche includono:
- Metriche sull'esperienza utente: le metriche relative a latenza, percentuali di errore, throughput e soddisfazione del cliente sono utili per comprendere l'esperienza degli utenti finali quando utilizzano le tue applicazioni.
- Metriche relative ai risultati aziendali: le entrate, la crescita dei clienti e il coinvolgimento possono essere correlate all'utilizzo delle risorse per identificare opportunità di ottimizzazione dei costi.
- Metriche di DevOps Research & Assessment (DORA): metriche come frequenza di deployment, tempo di risposta per le modifiche, tasso di errore delle modifiche e tempo per il ripristino forniscono informazioni sull'efficienza e sull'affidabilità del processo di distribuzione del software. Migliorando queste metriche, puoi aumentare la produttività, ridurre i tempi di inattività e ottimizzare i costi.
- Metriche Site Reliability Engineering (SRE): i budget di errore aiutano i team a quantificare e gestire il livello accettabile di interruzione del servizio. Stabilendo aspettative chiare in termini di affidabilità, i budget di errore consentono ai team di innovare e implementare le modifiche con maggiore sicurezza, conoscendo il loro margine di sicurezza. Questo approccio proattivo promuove un equilibrio tra innovazione e stabilità, contribuendo a evitare costi operativi eccessivi associati a interruzioni gravi o tempi di riposo prolungati.
Utilizzare l'osservabilità per l'ottimizzazione delle risorse
Di seguito sono riportati alcuni consigli per utilizzare l'osservabilità per identificare i colli di bottiglia delle risorse e le risorse sottoutilizzate nei deployment cloud:
- Monitora l'utilizzo delle risorse: utilizza le metriche di utilizzo delle risorse per identificare le risorseGoogle Cloud sottoutilizzate. Ad esempio, utilizza metriche come l'utilizzo della CPU e della memoria per identificare le risorse VM inattive. Per Google Kubernetes Engine (GKE), puoi visualizzare una disaggregazione dettagliata dei costi e le metriche di ottimizzazione relative ai costi. Per Google Cloud VMware Engine, esamina l'utilizzo delle risorse per ottimizzare le CUD, il consumo di spazio di archiviazione e il dimensionamento corretto di ESXi.
- Utilizza i consigli per il cloud: Active Assist è un portafoglio di strumenti intelligenti che ti aiutano a ottimizzare le operazioni cloud. Questi strumenti forniscono suggerimenti utili per ridurre i costi, aumentare le prestazioni, migliorare la sicurezza e persino prendere decisioni incentrate sulla sostenibilità. Ad esempio, le informazioni sul dimensionamento ottimale delle VM possono aiutarti a ottimizzare l'allocazione delle risorse ed evitare spese non necessarie.
- Correla l'utilizzo delle risorse con le prestazioni: analizza la relazione tra l'utilizzo delle risorse e le prestazioni dell'applicazione per determinare se puoi eseguire il downgrade a risorse meno costose senza influire sull'esperienza utente.
Trova il giusto equilibrio tra le esigenze di risoluzione dei problemi e i costi
I dati di osservabilità dettagliati possono essere utili per diagnosticare e risolvere i problemi. Tuttavia, l'archiviazione di quantità eccessive di dati di osservabilità o l'esportazione di dati non necessari in strumenti di monitoraggio esterni può comportare costi non necessari. Per una risoluzione dei problemi efficiente, tieni presenti i seguenti consigli:
- Raccogli dati sufficienti per la risoluzione dei problemi: assicurati che la tua soluzione di monitoraggio acquisisca dati sufficienti per diagnosticare e risolvere in modo efficiente i problemi quando si verificano. Questi dati potrebbero includere log, tracce e metriche a vari livelli di granularità.
- Utilizza il campionamento e l'aggregazione: bilancia la necessità di dati dettagliati con le considerazioni sui costi utilizzando tecniche di campionamento e aggregazione. Questo approccio consente di raccogliere dati rappresentativi senza costi di archiviazione eccessivi.
- Comprendi i modelli di prezzo degli strumenti e dei servizi di monitoraggio: valuta diverse soluzioni di monitoraggio e scegli le opzioni in linea con le esigenze specifiche, il budget e i pattern di utilizzo del tuo progetto. Quando effettui la selezione, tieni conto di fattori come il volume di dati, i requisiti di conservazione e le funzionalità richieste.
- Rivedi regolarmente la configurazione del monitoraggio: evita di raccogliere dati eccessivi rimuovendo metriche o log non necessari.
Personalizza la raccolta dei dati in base ai ruoli e imposta criteri di conservazione specifici per ruolo
Tieni conto delle esigenze specifiche dei dati dei diversi ruoli. Ad esempio, gli sviluppatori potrebbero avere bisogno principalmente di accedere alle tracce e ai log a livello di applicazione, mentre gli amministratori IT potrebbero concentrarsi sui log di sistema e sulle metriche dell'infrastruttura. Personalizzando la raccolta dei dati, puoi ridurre i costi di archiviazione non necessari ed evitare di sopraffare gli utenti con informazioni irrilevanti.
Inoltre, puoi definire criteri di conservazione in base alle esigenze di ciascun ruolo e a eventuali requisiti normativi. Ad esempio, gli sviluppatori potrebbero aver bisogno di accedere a log dettagliati per un periodo più breve, mentre gli analisti finanziari potrebbero richiedere dati a lungo termine.
Considera i requisiti normativi e di conformità
In alcuni settori, i requisiti normativi richiedono la conservazione dei dati. Per evitare rischi legali e finanziari, devi assicurarti che le tue pratiche di monitoraggio e conservazione dei dati ti aiutino a rispettare le normative vigenti. Allo stesso tempo, devi mantenere l'efficienza in termini di costi. Prendi in considerazione i seguenti consigli:
- Determina i requisiti specifici di conservazione dei dati per il tuo settore o la tua regione e assicurati che la tua strategia di monitoraggio soddisfi i requisiti di questi requisiti.
- Implementa meccanismi di archiviazione e recupero dei dati appropriati per soddisfare le esigenze di audit e conformità riducendo al minimo i costi di archiviazione.
Implementare avvisi intelligenti
Gli avvisi consentono di rilevare e risolvere i problemi in modo tempestivo. Tuttavia, è necessario trovare un equilibrio tra un approccio che ti tiene al corrente e uno che ti sommerge di notifiche. Progettando sistemi di avviso intelligenti, puoi dare la priorità ai problemi critici che hanno un impatto maggiore sull'attività. Prendi in considerazione i seguenti consigli:
- Dai la priorità ai problemi che interessano i clienti: progetta avvisi che si attivano rapidamente per problemi che influiscono direttamente sull'esperienza dei clienti, come interruzioni del sito web, tempi di risposta lenti o errori di transazione.
- Ottimizzazione per problemi temporanei: utilizza soglie e meccanismi di ritardo appropriati per evitare avvisi non necessari per problemi temporanei o di autoguarigione del sistema che non interessano i clienti.
- Personalizza la gravità dell'avviso: assicurati che i problemi più urgenti ricevano immediata attenzione distinguendo tra avvisi critici e non critici.
- Utilizza i canali di notifica con saggezza: scegli i canali appropriati per le notifiche di avviso (email, SMS o paging) in base alla gravità e all'urgenza degli avvisi.