Questo principio del pilastro dell'eccellenza operativa del Google Cloud framework Well-Architected ti aiuta a garantire la preparazione operativa e il rendimento dei tuoi carichi di lavoro cloud. Sottolinea la necessità di stabilire aspettative e impegni chiari per le prestazioni del servizio, implementare un monitoraggio e avvisi efficaci, eseguire test delle prestazioni e pianificare in modo proattivo le esigenze di capacità.
Panoramica del principio
Organizzazioni diverse potrebbero interpretare la prontezza operativa in modo diverso. La preparazione operativa indica il modo in cui la tua organizzazione si prepara a gestire correttamente i carichi di lavoro su Google Cloud. La preparazione per l'operatività di un workload cloud complesso e multilivello richiede un'attenta pianificazione sia per il lancio che per le operazioni del day-2. Queste operazioni sono spesso chiamate CloudOps.
Aree di interesse della preparazione operativa
La preparazione operativa è costituita da quattro aree di interesse. Ogni area di interesse è costituita da un insieme di attività e componenti necessari per prepararsi a utilizzare un'applicazione o un ambiente complesso in Google Cloud. La seguente tabella elenca i componenti e le attività di ogni area di interesse:
Area di interesse della preparazione operativa | Attività e componenti |
---|---|
Forza lavoro |
|
Processi |
|
Strumenti | Strumenti necessari per supportare i processi CloudOps. |
Governance |
|
Consigli
Per garantire l'operatività e le prestazioni utilizzando CloudOps, prendi in considerazione i suggerimenti nelle sezioni seguenti. Ogni consiglio riportato in questo documento è pertinente a una o più delle aree di interesse della preparazione operativa.
Definire SLO e SLA
Una responsabilità fondamentale del team di operazioni cloud è definire gli obiettivi del livello di servizio (SLO) e gli accordi sul livello del servizio (SLA) per tutti i carichi di lavoro critici. Questo consiglio è pertinente all'area di interesse della governance relativa alla preparazione operativa.
Gli SLO devono essere specifici, misurabili, raggiungibili, pertinenti e con limiti di tempo (SMART) e devono riflettere il livello di servizio e le prestazioni che desideri.
- Specifico: indica chiaramente il livello di servizio e rendimento richiesti.
- Misurabile: quantificabile e monitorabile.
- Raggiungibile: ottenibile entro i limiti delle capacità e delle risorse della tua organizzazione.
- Pertinente: in linea con gli scopi e le priorità aziendali.
- Time-bound: 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.
I contratti di livello di servizio descrivono gli impegni nei confronti dei clienti in merito a disponibilità, prestazioni e assistenza del servizio, incluse eventuali sanzioni o rimedi per la 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 e su eventuali sanzioni o rimedi per la mancata conformità. Gli SLA fungono da accordo contrattuale tra le due parti, garantendo che entrambe abbiano una chiara comprensione delle aspettative e degli obblighi associati al servizio cloud.
Google Cloud fornisce strumenti come Cloud Monitoring e indicatori del livello del servizio (SLI) per aiutarti a definire e monitorare gli SLO. Cloud Monitoring offre funzionalità complete di monitoraggio e osservabilità che consentono alla tua organizzazione di raccogliere e analizzare metriche relative a disponibilità, prestazioni e latenza di applicazioni e servizi basati sul 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 tuoi servizi cloud critici contribuisce a garantire l'affidabilità e le prestazioni delle applicazioni e dei servizi di cui è stato eseguito il deployment.
Implementare l'osservabilità completa
Per ottenere visibilità in tempo reale sull'integrità e sulle prestazioni del tuo ambiente cloud, ti consigliamo di utilizzare una combinazione di strumenti Google Cloud Observability e soluzioni di terze parti. Questo consiglio è pertinente alle seguenti aree di interesse della preparazione 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 la raccolta, l'analisi e la visualizzazione di metriche, log e tracce di vari servizi, applicazioni e origini esterne.Google Cloud Utilizzando Cloud Monitoring, puoi ottenere informazioni dettagliate sull'utilizzo delle risorse, sulle caratteristiche delle prestazioni e sull'integrità complessiva delle tue risorse.
Per garantire un monitoraggio completo, monitora le metriche importanti in linea con gli indicatori di integrità del sistema, come utilizzo della CPU, utilizzo della memoria, traffico di rete, I/O del disco e tempi di risposta delle applicazioni. Devi anche prendere in considerazione le metriche specifiche per l'attività. Monitorando queste metriche, puoi identificare potenziali colli di bottiglia, problemi di prestazioni e limiti delle risorse. Inoltre, puoi configurare avvisi per notificare in modo proattivo ai team pertinenti potenziali problemi o anomalie.
Per migliorare ulteriormente le tue 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 solido e personalizzabile, su misura per le tue esigenze specifiche. Utilizzando 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 carico e delle prestazioni
L'esecuzione di test delle prestazioni regolari ti aiuta a garantire che le tue applicazioni e la tua infrastruttura basate sul cloud possano gestire i picchi di carico e mantenere prestazioni ottimali. Il test di carico simula pattern di traffico realistici. Il test di stress spinge il sistema ai suoi limiti per identificare potenziali colli di bottiglia e limitazioni delle prestazioni. Questo consiglio è pertinente alle seguenti aree di interesse della preparazione operativa: procedure e strumenti.
Strumenti come Cloud Load Balancing e servizi di test di carico possono aiutarti a simulare i pattern di traffico reali e a testare la resistenza delle tue applicazioni. 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 delle prestazioni, puoi prendere decisioni per ottimizzare l'infrastruttura cloud e le applicazioni per ottenere 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 riscontri rallentamenti dell'applicazione durante i periodi di traffico elevato, potresti dover aumentare il numero di macchine virtuali o container allocati all'applicazione. In alternativa, potresti dover modificare la configurazione del server web o del database per migliorare le prestazioni.
Eseguendo regolarmente test delle prestazioni e implementando le ottimizzazioni necessarie, puoi assicurarti che le tue applicazioni e la tua infrastruttura basate sul cloud funzionino sempre al massimo delle prestazioni e offrano un'esperienza fluida e reattiva ai tuoi utenti. In questo modo, puoi mantenere un vantaggio competitivo e conquistare la fiducia dei tuoi clienti.
Pianificare e gestire la capacità
La pianificazione proattiva delle esigenze di capacità future, sia organiche che inorganiche, ti aiuta a garantire il buon funzionamento e la scalabilità dei tuoi sistemi basati sul cloud. Questo consiglio è pertinente ai processi dell'area di interesse della preparazione 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 pattern di utilizzo storici, le proiezioni di crescita e i requisiti aziendali, puoi prevedere con precisione i requisiti di capacità futuri. 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 l'utilizzo della CPU, l'utilizzo della memoria e il traffico di rete, puoi identificare i periodi di forte domanda e i potenziali colli di bottiglia. Inoltre, puoi contribuire a stimare le esigenze future di capacità effettuando proiezioni di crescita in base a fattori quali la crescita della base utenti, i nuovi prodotti e le nuove 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 il dimensionamento delle risorse per un workload, considera i fattori che possono influire sull'utilizzo delle risorse. Le variazioni stagionali, come i periodi di shopping per le festività o le vendite di fine trimestre, possono portare a picchi temporanei della domanda. Anche gli eventi pianificati come i lanci di prodotti o le campagne di marketing possono aumentare in modo significativo il traffico. Per assicurarti che il sistema principale e quello di ripristino di emergenza (RE) possano gestire aumenti imprevisti della domanda, pianifica una capacità in grado di supportare il failover controllato 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 le norme di scalabilità automatica, puoi scalare automaticamente le istanze di calcolo, lo spazio di archiviazione e altre risorse in risposta alla variazione della domanda. In questo modo si garantisce un rendimento ottimale durante i periodi di picco, riducendo al minimo i costi quando l'utilizzo delle risorse è basso. 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 una procedura per monitorare e analizzare continuamente le metriche sul rendimento. Questo consiglio è pertinente a queste aree di interesse della preparazione operativa: processi e strumenti.
Per stabilire una procedura di monitoraggio e analisi continui, devi monitorare, raccogliere e valutare 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 di rendimento.
Un aspetto importante del monitoraggio del rendimento è la revisione regolare dei log e delle tracce. I log forniscono informazioni preziose su eventi, errori e avvisi del sistema. Le tracce forniscono informazioni dettagliate sul flusso di richieste attraverso la tua applicazione. Analizzando log e tracce, puoi identificare potenziali problemi, individuare le cause principali dei problemi e comprendere meglio il comportamento delle tue applicazioni in diverse condizioni. Metriche come il tempo di round trip tra i servizi possono aiutarti a identificare e comprendere i colli di bottiglia nei tuoi workload.
Inoltre, puoi utilizzare tecniche di ottimizzazione delle prestazioni per migliorare significativamente i tempi di risposta delle applicazioni e l'efficienza complessiva. Di seguito sono riportati alcuni esempi di tecniche che puoi utilizzare:
- Memorizzazione nella cache: memorizza i dati a cui si accede di frequente in memoria per ridurre la necessità di query di database o chiamate API ripetute.
- 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.
Se applichi queste tecniche, puoi ottimizzare le tue applicazioni e assicurarti che vengano eseguite in modo efficiente nel cloud.