Questo principio del pilastro dell'eccellenza operativa del Google Cloud Well-Architected Framework ti aiuta a garantire la preparazione operativa e le prestazioni dei tuoi workload cloud. Sottolinea l'importanza di stabilire aspettative e impegni chiari per le prestazioni del servizio, implementare un monitoraggio e avvisi robusti, eseguire test sulle prestazioni e pianificare in modo proattivo le esigenze di capacità.
Panoramica del principio
Organizzazioni diverse potrebbero interpretare la preparazione operativa in modo diverso. La preparazione operativa è il modo in cui la tua organizzazione si prepara a gestire correttamente i workload su Google Cloud. La preparazione per la gestione di un workload cloud complesso e multilivello richiede un'attenta pianificazione sia per le operazioni di go-live sia per quelle del day-2 operazioni. 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 gestire un' applicazione o un ambiente complesso in Google Cloud. La tabella seguente 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 la preparazione operativa e le prestazioni utilizzando CloudOps, prendi in considerazione i consigli nelle sezioni seguenti. Ogni consiglio 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 workload critici. Questo consiglio è pertinente all'area di interesse della governance della 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.
- Specifici: definiscono chiaramente il livello di servizio e le prestazioni richieste.
- Misurabili: quantificabili e monitorabili.
- Raggiungibili: raggiungibili entro i limiti delle capacità e delle risorse della tua organizzazione.
- Pertinenti: allineati agli obiettivi e alle priorità aziendali.
- Con limiti di tempo: hanno 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 richieste per l'applicazione web e possono essere misurati e monitorati nel tempo.
Gli SLA descrivono gli impegni nei confronti dei clienti in merito a disponibilità, prestazioni e assistenza del servizio, incluse eventuali sanzioni o rimedi in caso di mancata conformità. Gli SLA devono includere dettagli specifici sui servizi forniti, sul livello di servizio previsto, sulle responsabilità del fornitore di servizi e del cliente e su eventuali sanzioni o rimedi in caso di 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 fornisce funzionalità complete di monitoraggio e osservabilità che consentono alla tua organizzazione di raccogliere e analizzare le 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.
La definizione e la comunicazione chiare di SLO e SLA per tutti i servizi cloud critici contribuiscono a garantire l'affidabilità e le prestazioni delle applicazioni e dei servizi di cui hai eseguito il deployment.
Implementare un'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: processi e strumenti.
L'implementazione di una combinazione di soluzioni di osservabilità ti offre una strategia di osservabilità completa che copre vari aspetti dell'infrastruttura e delle applicazioni cloud. Google Cloud Observability è una piattaforma unificata per la raccolta, l'analisi e la visualizzazione di metriche, log e tracce da vari Google Cloud servizi, applicazioni e sorgenti esterne. Utilizzando Cloud Monitoring, puoi ottenere informazioni dettagliate sull'utilizzo delle risorse, sulle caratteristiche delle prestazioni e sullo stato generale delle risorse.
Per garantire un monitoraggio completo, monitora le metriche importanti in linea con gli indicatori di integrità del sistema, come utilizzo della CPU, memoria utilizzata, traffico di rete, I/O del disco e tempi di risposta delle applicazioni. Devi anche prendere in considerazione le metriche specifiche per la tua attività. Monitorando queste metriche, puoi identificare potenziali colli di bottiglia, problemi di prestazioni e vincoli delle risorse. Inoltre, puoi configurare avvisi per avvertire in modo proattivo i team competenti di 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 su machine learning e funzionalità di gestione degli incidenti. Questa combinazione di strumenti Google Cloud Observability e soluzioni di terze parti ti consente di creare un ecosistema di monitoraggio solido e personalizzabile, adattato alle 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 applicazioni e dei servizi cloud.
Implementare test sulle prestazioni e sul carico
L'esecuzione regolare di test sulle prestazioni ti aiuta a garantire che le applicazioni e l'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: processi e strumenti.
Strumenti come Cloud Load Balancing e i servizi di test di carico possono aiutarti a simulare pattern di traffico reali e a eseguire test di stress sulle applicazioni. Questi strumenti forniscono informazioni preziose sul comportamento del sistema in varie condizioni di carico e possono aiutarti a identificare le aree che richiedono l'ottimizzazione.
In base ai risultati dei test sulle prestazioni, puoi prendere decisioni per ottimizzare l'infrastruttura e le applicazioni cloud per prestazioni e scalabilità ottimali. Questa ottimizzazione potrebbe comportare la regolazione dell'allocazione delle risorse, la configurazione delle impostazioni o l'implementazione di meccanismi di memorizzazione nella cache.
Ad esempio, se noti che l'applicazione rallenta 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 sulle prestazioni e implementando le ottimizzazioni necessarie, puoi assicurarti che le applicazioni e l'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 funzionamento e la scalabilità senza problemi dei sistemi basati sul cloud. Questo consiglio è pertinente all'area di interesse dei processi della preparazione operativa.
La pianificazione della capacità futura include la comprensione e la gestione delle quote per varie risorse come istanze di Compute Engine, 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, la memoria utilizzata e il traffico di rete, puoi identificare i periodi di elevata domanda e i potenziali colli di bottiglia. Inoltre, puoi contribuire a stimare le esigenze di capacità future effettuando proiezioni di crescita basate su fattori quali la crescita della base utenti, i nuovi prodotti e funzionalità e le campagne di marketing. Quando valuti le esigenze di capacità, devi anche considerare i requisiti aziendali come SLA e target di prestazioni.
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 natalizio 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 significativamente il traffico. Per assicurarti che il sistema primario e di ripristino di emergenza (RE) possano gestire picchi imprevisti della domanda, pianifica una capacità in grado di supportare il failover graduale durante le interruzioni, come calamità naturali e attacchi informatici.
La scalabilità automatica è una strategia importante per regolare dinamicamente le risorse cloud in base alle fluttuazioni del workload. Utilizzando le norme di scalabilità automatica, puoi scalare automaticamente le istanze di Compute Engine, lo spazio di archiviazione e altre risorse in risposta alla variazione della domanda. In questo modo, le prestazioni sono ottimali 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, la memoria utilizzata e la profondità della coda per determinare quando scalare le risorse.
Monitorare e ottimizzare continuamente
Per gestire e ottimizzare i workload cloud, devi stabilire una procedura per monitorare e analizzare continuamente le metriche sulle prestazioni. Questo consiglio è pertinente alle seguenti aree di interesse della preparazione operativa: processi e strumenti.
Per stabilire una procedura di monitoraggio e analisi continua, 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 l'infrastruttura cloud soddisfi o superi costantemente le tue aspettative in termini di prestazioni.
Un aspetto importante del monitoraggio delle prestazioni è la revisione regolare di log e tracce. I log forniscono informazioni preziose su eventi di sistema, errori e avvisi. Le tracce forniscono informazioni dettagliate sul flusso delle richieste attraverso l'applicazione. Analizzando log e tracce, puoi identificare potenziali problemi, individuare le cause principali dei problemi e comprendere meglio il comportamento delle 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 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: archivia i dati a cui accedi 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 di database.
- Profilazione del codice: identifica le aree del codice che consumano risorse eccessive o causano problemi di prestazioni.
Applicando queste tecniche, puoi ottimizzare le applicazioni e assicurarti che vengano eseguite in modo efficiente nel cloud.