Questo documento nel Framework dell'architettura Google Cloud in che modo l'esperienza utente definisce l'affidabilità e come scegliere gli obiettivi del livello di servizio più appropriati per raggiungere questo livello di affidabilità. Questo il documento si basa sui concetti definiti Componenti degli SLO.
La cultura di Site Reliability Engineering (SRE) valorizza i servizi affidabili e la soddisfazione del cliente (o soddisfazione del cliente). Senza un livello di servizio definito e un metodo per raccogliere metriche, è difficile (se non impossibile) determinare dove e quanto investire per il miglioramento.
La metrica che esegue l'override che utilizzi per misurare il livello di servizio è il servizio l'obiettivo del livello (SLO). Uno SLO è costituito dai seguenti valori:
- Un indicatore del livello del servizio (SLI): una metrica di un aspetto specifico del servizio, come descritto in Scegliere gli SLI.
- Durata: la finestra in cui viene misurato l'SLI. Può essere basata su un periodo di tempo o su una finestra mobile.
- Un target: il valore (o l'intervallo di valori) che lo SLI deve raggiungere nel periodo di tempo specificato in un servizio in buono stato. Ad esempio, la percentuale di gli eventi positivi al totale degli eventi che prevedi vengano soddisfatti dal servizio, ad esempio 99,9%.
La scelta degli SLO giusti per il tuo servizio è un processo. Per prima cosa definisci i percorsi dell'utente che definiscono l'affidabilità e, in ultima analisi, i tuoi SLO. Gli SLO che scegli devono misurare l'intero sistema, bilanciando al contempo le esigenze di sviluppo delle funzionalità con la stabilità operativa. Dopo aver scelto gli SLO, devi migliorarli in modo iterativo e gestirli utilizzando i budget di errore.
Definisci i percorsi degli utenti
Gli SLI e gli SLO dovrebbero idealmente essere basati sui percorsi dell'utente critici (CUJ). CUJ prende in considerazione gli obiettivi degli utenti e il modo in cui il tuo servizio aiuta gli utenti a raggiungerli. Definisci un CUJ senza considerare i confini dei servizi. Quando viene soddisfatto un CUJ, il cliente è soddisfatto e questo è un indicatore di un servizio efficace.
La soddisfazione o insoddisfazione del cliente in questa materia determina l'affidabilità e è la caratteristica più importante di qualsiasi servizio.
Pertanto, imposta lo SLO sufficientemente alto da soddisfare la maggior parte degli utenti, ma non di più. Proprio come la disponibilità al 100% non è l'obiettivo giusto, aggiungere più "9" agli SLO diventa rapidamente costoso e potrebbe non essere nemmeno importante per il cliente.
Per l'uptime e altre metriche vitali, scegli un target inferiore al 100%, ma vicino. Valuta il livello minimo di prestazioni e disponibilità del servizio richiesto. Non impostare i target in base a livelli contrattuali esterni.
Utilizzare i CUJ per sviluppare gli SLO
Scegli i CUJ più importanti della tua azienda e segui questi passaggi per sviluppare gli SLO:
- Scegli una specifica SLI (come disponibilità o aggiornamento).
- Decidi come implementare la specifica SLI.
- Assicurati che il tuo piano copra tutti i CUJ.
- Imposta gli SLO in base alle prestazioni o alle esigenze aziendali precedenti.
I CUJ non devono essere limitati a un singolo servizio né a un singolo team di sviluppo o organizzazione. Il servizio potrebbe dipendere da decine o più e altri servizi. Inoltre, potresti aspettarti che questi servizi funzionino al 99,5%. Tuttavia, se il rendimento end-to-end (dell'intero sistema) non viene monitorato, è difficile gestire un servizio affidabile.
Definisci target e durata
La definizione di target e duration (vedi la definizione precedente di uno SLO) può essere difficile. Un modo per iniziare la procedura è identificare gli SLI e tracciarli nel tempo. Ricorda: uno SLO non deve essere perfetto fin dall'inizio. Esegui l'iterazione sulla SLO per assicurarti che sia in linea con la soddisfazione dei clienti e soddisfi le tue esigenze aziendali.
Monitorando la conformità dello SLO durante eventi come deployment, interruzioni modelli di traffico giornalieri, otterrai informazioni sul target. Questi approfondimenti ti aiuteranno a capire meglio cosa è buono, cattivo o accettabile per i tuoi target e le tue durate.
Sviluppo di funzionalità, miglioramenti del codice, upgrade dell'hardware e altre operazioni di manutenzione possono contribuire a rendere il servizio più affidabile. La possibilità di apportare queste piccole modifiche frequenti ti consente di fornire funzionalità più rapidamente e con una qualità superiore. Tuttavia, anche la frequenza con cui viene modificato il servizio influisce l'affidabilità. Gli obiettivi di affidabilità realizzabili definiscono il ritmo e l'ambito del cambiamento (chiamata velocità delle caratteristiche) che i clienti possono tollerare e da cui possono trarre vantaggio.
Se non riesci a misurare l'esperienza del cliente e a definire gli obiettivi in base a questa, puoi rivolgerti a fonti esterne e all'analisi di benchmark. Se non esistono corrispondenze benchmark, misura la customer experience, anche se non puoi ancora definire gli obiettivi. Nel tempo, puoi raggiungere una soglia ragionevole di soddisfazione del cliente. Questa soglia è il tuo SLO.
Comprendere l'intero sistema
Il tuo servizio potrebbe esistere in una lunga serie di servizi con elaborazione sia a monte che a valle. La misurazione delle prestazioni di un sistema distribuito modo frammentario (servizio per servizio) non riflette accuratamente la esperienza e potrebbero causare un'interpretazione troppo sensibile.
Devi invece misurare le prestazioni rispetto allo SLO nella parte frontend del processo per capire cosa vivono gli utenti. L'utente non è preoccupato componente che provoca l'errore di una query se viene eseguita automaticamente nuovo tentativo riuscito.
Se sono presenti servizi interni condivisi, ogni servizio può misurare il rendimento separatamente rispetto allo SLO associato, con i servizi rivolti agli utenti che agiscono come clienti. Gestisci questi SLO separatamente.
È possibile creare un servizio ad alta disponibilità (ad es. 99,99%) su un servizio meno disponibile (ad es. 99,9%) utilizzando fattori di resilienza come i tentativi intelligenti, la memorizzazione nella cache e le code. Chiunque con una conoscenza pratica le statistiche devono poter leggere e comprendere lo SLO senza comprendere il servizio sottostante o il layout organizzativo, come descritto in Legge di Conway.
Scegli gli SLO corretti
Esiste una tensione naturale tra la velocità di sviluppo dei prodotti e la gestione la stabilità. Più cambi l'impianto, più è probabile che si rompa. Gli strumenti di monitoraggio e osservabilità sono fondamentali per la stabilità operativa man mano che aumenti la velocità di implementazione delle funzionalità. Questi strumenti sono noti come strumenti di gestione delle prestazioni delle applicazioni (APM) e possono essere utilizzati anche per impostare gli SLO.
Se definito correttamente, uno SLO aiuta i team a rendere operatività basata sui dati che aumentano la velocità di sviluppo senza sacrificare la stabilità. La Lo SLO può anche allineare i team operativi e di sviluppo a un'unica soluzione concordata obiettivo. Condividere un unico obiettivo allevia la tensione naturale menzionata In precedenza: l'obiettivo del team di sviluppo di creare ed eseguire iterazioni sui prodotti. l'obiettivo del team Operations di mantenere l'integrità del sistema.
Usa questo documento e altri documenti sull'affidabilità nel framework dell'architettura per comprendere e sviluppare gli SLO. Dopo aver letto e compreso questi articoli, passa a informazioni più dettagliate sugli SLO (e su altre pratiche SRE) nel libro SRE e nel foglio di lavoro SRE.
Usa SLO interni rigidi
È buona norma avere SLO interni più rigidi rispetto agli SLA esterni. Come SLA violazioni tendono a richiedere l'emissione di un credito finanziario o di rimborsi ai clienti, vogliono risolvere i problemi prima di avere un impatto economico.
Consigliamo di utilizzare questi SLO interni più rigidi con un processo di revisione postuma senza responsabilità e una revisione degli incidenti. Per scoprire di più, consulta la sezione Creare un processo collaborativo di gestione degli incidenti.
Migliora gli SLO in modo iterativo
Gli SLO non devono essere invariati. Rivedi periodicamente gli SLO, trimestralmente o almeno una volta all'anno, e verifica che riflettano con precisione la soddisfazione degli utenti e siano correlati alle interruzioni del servizio. Assicurati che coprano le esigenze attuali dell'attività e eventuali nuovi percorsi degli utenti critici. Dopo queste revisioni, rivedi e aumenta gli SLO in base alle necessità.
Utilizza i budget di errore per gestire la velocità di sviluppo
I budget di errore indicano se il servizio è più o meno affidabile rispetto a quanto necessario per una finestra temporale specifica. I budget di errore vengono calcolati come 100% - SLO per un determinato periodo di tempo, ad esempio 30 giorni.
Se il budget di errore rimane della capacità, puoi continuare con l'avvio miglioramenti o nuove funzionalità. Quando il budget di errore è vicino allo zero, rallentare o bloccare le modifiche ai servizi e investire risorse tecniche per migliorare le funzionalità di affidabilità.
Osservabilità di Google Cloud include il monitoraggio degli SLO per ridurre al minimo lo sforzo di configurazione di SLO ed errori budget. La suite operativa include un'interfaccia utente grafica per aiutarti a configurare manualmente gli SLO, un'API per la configurazione programmatica degli SLO e dashboard integrate per monitorare la burn rate del budget di errore. Per ulteriori informazioni, consulta la sezione Creare un SLO.
Riepilogo dei consigli per gli SLO
- Definisci e misura gli SLI incentrati sul cliente, come la disponibilità o la latenza del servizio.
- Definisci un budget di errore incentrato sul cliente più rigoroso rispetto allo SLA esterno. Includi le conseguenze delle violazioni, come la sospensione della produzione.
- Configura gli SLI di latenza per acquisire i valori outlier, come 90° o 99° percentile, per rilevare le risposte più lente.
- Rivedere gli SLO almeno una volta all'anno e verificare che siano ben correlati con la soddisfazione degli utenti e le interruzioni del servizio.
Passaggi successivi
- Leggi l'articolo Scegliere gli SLI.
- Consulta Coursera - SRE: Measurement and Managing Reliability.
- Scopri di più sugli SLO nel capitolo del libro SRE sugli SLO e nel foglio di lavoro SRE per implementare gli SLO.
- Esplora i consigli relativi ad altri pilastri del Framework dell'architettura.
- Per altre architetture di riferimento, diagrammi e best practice, visita il Centro architetture di Google Cloud.