Questo principio del pilastro dell'eccellenza operativa del Google Cloud Architecture Framework ti aiuta a garantire l'idoneità operativa e le prestazioni dei tuoi carichi di lavoro cloud. Mette l'accento sull'importanza di stabilire aspettative e impegni chiari per le prestazioni del servizio, sull'implementazione di un monitoraggio e di avvisi efficaci, sull'esecuzione di test delle prestazioni e sulla pianificazione proattiva delle esigenze di capacità.
Panoramica dei principi
Organizzazioni diverse potrebbero interpretare la disponibilità operativa in modo diverso. La preparazione operativa è il modo in cui la tua organizzazione si prepara a gestire i carichi di lavoro su Google Cloud. La preparazione all'utilizzo di un carico di lavoro cloud complesso e a più livelli richiede un'attenta pianificazione sia per il lancio sia per le operazioni di day-2. Queste operazioni sono spesso chiamate CloudOps.
Aree di attenzione per l'idoneità operativa
La prontezza operativa è composta da quattro aree di interesse. Ogni area di interesse è costituita da un insieme di attività e componenti necessari per prepararsi a gestire un ambiente o un'applicazione complessa in Google Cloud. La seguente tabella elenca i componenti e le attività di ogni area di interesse:
Area di attenzione per l'idoneità operativa | Attività e componenti |
---|---|
Forza lavoro |
|
Processi |
|
Utensili | Strumenti necessari per supportare le procedure CloudOps. |
Governance |
|
Consigli
Per garantire l'idoneità operativa e le prestazioni utilizzando CloudOps, prendi in considerazione i consigli riportati nelle sezioni seguenti. Ogni consiglio in questo documento è pertinente a una o più delle aree di attenzione della prontezza operativa.
Definire SLO e SLA
Una responsabilità fondamentale del team di operazioni cloud è definire gli obiettivi sul livello del servizio (SLO) e gli accordi sul livello del servizio (SLA) per tutti i carichi di lavoro critici. Questo consiglio è pertinente alla area di attenzione della governance relativa all'idoneità operativa.
Gli SLO devono essere specifici, misurabili, realizzabili, pertinenti e vincolati al tempo (SMART) e devono riflettere il livello di servizio e le prestazioni che vuoi.
- Specifico: indica chiaramente il livello di servizio e di rendimento richiesto.
- Misurabili: quantificabili e monitorabili.
- Raggiungibile: raggiungibile nei limiti delle funzionalità e delle risorse della tua organizzazione.
- Pertinenti: in linea con gli scopi e le priorità dell'attività.
- Con scadenza: ha un periodo di tempo definito per la misurazione e la valutazione.
Ad esempio, uno SLO per un'applicazione web potrebbe essere "disponibilità del 99,9%" o "tempo di risposta medio inferiore a 200 ms". Questi SLO definiscono chiaramente il livello di servizio e le prestazioni richiesti per l'applicazione web e possono essere misurati e monitorati nel tempo.
Gli SLA descrivono gli impegni assunti nei confronti dei clienti in merito alla disponibilità, alle prestazioni e all'assistenza del servizio, incluse eventuali penali o ingiunzioni per mancata conformità. Gli SLA devono includere dettagli specifici sui servizi forniti, sul livello di servizio che ci si può aspettare, sulle responsabilità del fornitore di servizi e del cliente, nonché eventuali penali o rimedi per la mancata conformità. Gli SLA fungono da contratto tra le due parti e garantiscono che entrambe abbiano una comprensione chiara delle aspettative e delle obbligazioni associate al servizio cloud.
Google Cloud fornisce strumenti come il monitoraggio di Cloud e gli indicatori del livello del servizio (SLI) per aiutarti a definire e monitorare gli SLO. Cloud Monitoring offre funzionalità di monitoraggio e osservabilità complete che consentono alla tua organizzazione di raccogliere e analizzare le metriche relative alla disponibilità, alle prestazioni e alla latenza di applicazioni e servizi basati su cloud. Gli SLI sono metriche specifiche che puoi utilizzare per misurare e monitorare gli SLO nel tempo. Utilizzando questi strumenti, puoi monitorare e gestire in modo efficace i servizi cloud e assicurarti che soddisfino gli SLO e gli SLA.
Definire e comunicare chiaramente gli SLO e gli SLA per tutti i servizi cloud critici contribuisce a garantire l'affidabilità e le prestazioni delle applicazioni e dei servizi di cui è stato eseguito il deployment.
Implementare un'osservabilità completa
Per avere visibilità in tempo reale sull'integrità e sulle prestazioni del tuo ambiente cloud, ti consigliamo di utilizzare una combinazione di strumenti di osservabilità di Google Cloud e soluzioni di terze parti. Questo consiglio è pertinente per le seguenti aree di attenzione della prontezza operativa: procedure e strumenti.
L'implementazione di una combinazione di soluzioni di osservabilità ti offre una strategia di osservabilità completa che copre vari aspetti della tua infrastruttura e delle tue applicazioni cloud. Google Cloud Observability è una piattaforma unificata per raccogliere, analizzare e visualizzare metriche, log e tracce da vari servizi, applicazioni e origini esterne di Google Cloud. Con Cloud Monitoring puoi ottenere informazioni sull'utilizzo delle risorse, sulle caratteristiche delle prestazioni e sullo stato complessivo delle risorse.
Per garantire un monitoraggio completo, monitora le metriche importanti in linea con gli indicatori di integrità del sistema, come l'utilizzo della CPU, l'utilizzo della memoria, il traffico di rete, l'I/O del disco e i tempi di risposta delle applicazioni. Devi inoltre prendere in considerazione le metriche specifiche per l'attività. Monitorando queste metriche, puoi identificare potenziali colli di bottiglia, problemi di prestazioni e limitazioni delle risorse. Inoltre, puoi configurare avvisi per notificare in modo proattivo ai team competenti potenziali problemi o anomalie.
Per migliorare ulteriormente le funzionalità di monitoraggio, puoi integrare soluzioni di terze parti con Google Cloud Observability. Queste soluzioni possono fornire funzionalità aggiuntive, come analisi avanzate, rilevamento di anomalie basato sul machine learning e funzionalità di gestione degli incidenti. Questa combinazione di strumenti di osservabilità di Google Cloud e soluzioni di terze parti ti consente di creare un ecosistema di monitoraggio robusto e personalizzabile, personalizzato in base alle tue esigenze specifiche. Con questo approccio combinato, puoi identificare e risolvere in modo proattivo i problemi, ottimizzare l'utilizzo delle risorse e garantire l'affidabilità e la disponibilità complessive delle tue applicazioni e dei tuoi servizi cloud.
Implementare test di prestazioni e carico
L'esecuzione di test di prestazioni regolari ti aiuta ad assicurarti che le tue applicazioni e la tua infrastruttura basate su cloud possano gestire i picchi di carico e mantenere prestazioni ottimali. I test di carico simulano modelli di traffico realistici. I test di stress spingono il sistema al limite per identificare potenziali colli di bottiglia e limitazioni delle prestazioni. Questo consiglio è pertinente per le seguenti aree di attenzione della prontezza operativa: procedure e strumenti.
Strumenti come Cloud Load Balancing e servizi di test di carico possono aiutarti a simulare modelli di traffico reali e a sottoporre le tue applicazioni a test di stress. Questi strumenti forniscono informazioni preziose sul comportamento del sistema in varie condizioni di carico e possono aiutarti a identificare le aree che richiedono ottimizzazione.
In base ai risultati dei test sulle prestazioni, puoi prendere decisioni per ottimizzare la tua infrastruttura e le tue applicazioni cloud in termini di prestazioni e scalabilità ottimali. Questa ottimizzazione potrebbe comportare la regolazione dell'allocazione delle risorse, la messa a punto delle configurazioni o l'implementazione di meccanismi di memorizzazione nella cache.
Ad esempio, se noti che la tua applicazione presenta rallentamenti durante periodi di traffico elevato, potresti dover aumentare il numero di macchine virtuali o contenitori allocati all'applicazione. In alternativa, potrebbe essere necessario modificare la configurazione del server web o del database per migliorare il rendimento.
Conducendo regolarmente test delle prestazioni e implementando le ottimizzazioni necessarie, puoi assicurarti che le tue applicazioni e la tua infrastruttura basate su cloud funzionino sempre al massimo delle prestazioni e offrano un'esperienza fluida e adattabile agli utenti. In questo modo, puoi mantenere un vantaggio competitivo e conquistare la fiducia dei tuoi clienti.
Pianificare e gestire la capacità
Pianificare in modo proattivo le esigenze di capacità future, sia organiche che inorganiche, ti aiuta a garantire il funzionamento regolare e la scalabilità dei tuoi sistemi basati su cloud. Questo consiglio è pertinente per le procedure nell'area di attenzione della prontezza operativa.
La pianificazione della capacità futura include la comprensione e la gestione delle quote per varie risorse come istanze di calcolo, spazio di archiviazione e richieste API. Analizzando i modelli di utilizzo storici, le proiezioni di crescita e i requisiti aziendali, puoi prevedere con precisione le esigenze di capacità future. Puoi utilizzare strumenti come Cloud Monitoring e BigQuery per raccogliere e analizzare i dati sull'utilizzo, identificare le tendenze e prevedere la domanda futura.
I pattern di utilizzo storici forniscono informazioni preziose sull'utilizzo delle risorse nel tempo. Esaminando metriche come utilizzo della CPU, utilizzo della memoria e traffico di rete, puoi identificare periodi di alta domanda e potenziali colli di bottiglia. Inoltre, puoi contribuire a stimare le esigenze future in termini di capacità effettuando proiezioni di crescita in base a fattori quali la crescita della base utenti, i nuovi prodotti e le funzionalità e le campagne di marketing. Quando valuti le esigenze di capacità, devi anche prendere in considerazione i requisiti aziendali, come gli SLA e i target di rendimento.
Quando determini le dimensioni delle risorse per un carico di lavoro, tieni conto dei fattori che possono influire sull'utilizzo delle risorse. Le variazioni stagionali, come i periodi di shopping per le festività o i saldi di fine trimestre, possono causare picchi temporanei della domanda. Anche gli eventi pianificati, come i lanci di prodotti o le campagne di marketing, possono aumentare notevolmente il traffico. Per assicurarti che il sistema principale e di ripristino di emergenza (RE) possa gestire picchi di domanda imprevisti, pianifica una capacità in grado di supportare il failover graduale durante interruzioni come calamità naturali e attacchi informatici.
La scalabilità automatica è una strategia importante per regolare dinamicamente le risorse cloud in base alle fluttuazioni del carico di lavoro. Utilizzando i criteri di scalabilità automatica, puoi eseguire automaticamente lo scale up e lo scale down di istanze di calcolo, spazio di archiviazione e altre risorse in risposta alla domanda in evoluzione. Ciò garantisce prestazioni ottimali durante i periodi di picco e minimizza i costi quando l'utilizzo delle risorse è ridotto. Gli algoritmi di scalabilità automatica utilizzano metriche come l'utilizzo della CPU, l'utilizzo della memoria e la profondità della coda per determinare quando scalare le risorse.
Monitorare e ottimizzare continuamente
Per gestire e ottimizzare i carichi di lavoro cloud, devi stabilire un processo per monitorare e analizzare continuamente le metriche sul rendimento. Questo consiglio è pertinente per le seguenti aree di attenzione della prontezza operativa: procedure e strumenti.
Per stabilire una procedura di monitoraggio e analisi continua, monitori, raccoglie e valuti i dati relativi a vari aspetti del tuo ambiente cloud. Utilizzando questi dati, puoi identificare in modo proattivo le aree di miglioramento, ottimizzare l'utilizzo delle risorse e assicurarti che la tua infrastruttura cloud soddisfi o superi costantemente le tue aspettative in termini di prestazioni.
Un aspetto importante del monitoraggio del rendimento è la revisione regolare di log e tracce. I log forniscono informazioni preziose su eventi, errori e avvisi di sistema. Le tracce forniscono informazioni dettagliate sul flusso di richieste all'interno della tua applicazione. Analizzando i log e le tracce, puoi identificare potenziali problemi, le cause principali dei problemi e comprendere meglio il comportamento delle tue applicazioni in condizioni diverse. Metriche come il tempo di round trip tra i servizi possono aiutarti a identificare e comprendere i colli di bottiglia nei tuoi carichi di lavoro.
Inoltre, puoi utilizzare tecniche di ottimizzazione delle prestazioni per migliorare notevolmente i tempi di risposta dell'applicazione e l'efficienza complessiva. Di seguito sono riportati alcuni esempi di tecniche che puoi utilizzare:
- Memorizzazione nella cache: memorizza in memoria i dati a cui si accede di frequente per ridurre la necessità di query ripetute al database o chiamate all'API.
- Ottimizzazione del database: utilizza tecniche come l'indicizzazione e l'ottimizzazione delle query per migliorare le prestazioni delle operazioni del database.
- Profilazione del codice: identifica le aree del codice che consumano risorse eccessive o causano problemi di prestazioni.
Applicando queste tecniche, puoi ottimizzare le tue applicazioni e assicurarti che vengano eseguite in modo efficiente nel cloud.