Progettazione di SLO
Questa pagina fornisce informazioni di cui potresti aver bisogno prima creare un obiettivo del livello di servizio (SLO).
Per un'introduzione agli SLO, consulta Panoramica degli obiettivi del livello di servizio.
Tipo di SLI e target di conformità
Cloud Service Mesh supporta i seguenti tipi di indicatori del livello di servizio:
- Latenza: il tempo impiegato da un servizio per restituire una risposta a una richiesta. misurato in millisecondi.
- Disponibilità: la frazione di tempo in cui un servizio risponde correttamente.
- Altro: tipo di SLO personalizzabile in base alle metriche configurabili.
Inoltre, definisci il target di conformità che vuoi dal tuo servizio. Nella in generale, gli SLO non dovrebbero essere più alti del necessario o significativi per il tuo utenti. Valuta a quale punto gli utenti potrebbero notare un peggioramento del servizio. Per Ad esempio, se gli utenti non riescono a distinguere una latenza di 300 ms o 500 ms per il tuo servizio, utilizza il valore più alto come latenza soglia nello SLO. Il valore più basso è più costoso da soddisfare e i tuoi utenti non noteresti la differenza.
Quando imposti un target di conformità, tieni conto dei requisiti dell'utente finale per il tuo servizio. Ad esempio, uno strumento interno utilizzato dai dipendenti per prenotare le vacanze potrebbe andare bene un obiettivo di disponibilità del 99% (circa 3 giorni di inattività all'anno). Tuttavia, un servizio fondamentale per un negozio online potrebbe richiedere una disponibilità del 99,999% (~5 minuti di tempo di riposo all'anno).
Periodi di conformità
Oltre a definire un target per un SLI, uno SLO specifica un periodo di tempo in cui viene misurato lo SLI. Ad esempio, la disponibilità del 99% in un singolo giorno è diversa dalla disponibilità del 99% in un mese. Il primo SLO non consente più di 14 minuti di tempo di riposo consecutivo (24 ore * 1%), mentre il secondo SLO consente un tempo di riposo consecutivo fino a circa 7 ore (30 giorni * 1%).
Il periodo di conformità è particolarmente importante quando uno SLO è incluso in l'accordo sul livello del servizio (SLA, Service Level Agreement) con i tuoi utenti. Uno SLA è un contratto con gli utenti del tuo servizio che in genere specifica le conseguenze del mancato rispetto degli SLO. A prescindere dal fatto che uno SLA (accordo sul livello del servizio) con gli utenti sia un prodotto o decisione aziendale, ma a fini di monitoraggio è comunque necessario specificare un periodo di conformità per gli SLO al momento della loro creazione.
Quando configuri gli SLO, scegli il tipo di periodo di conformità:
Calendario: quando selezioni Calendario come Tipo di periodo, devi anche specificare la Durata del periodo, che può essere un giorno, una settimana o un mese. I cicli non si sovrappongono e sono fissati alle date di inizio e di fine del calendario. La conformità può essere valutata solo al termine del periodo.
A rotazione: quando selezioni In sequenza come Tipo di periodo, specificare anche il numero di giorni per la Durata del periodo, ad esempio 30 giorni. A differenza dei periodi di Calendar, i periodi in sequenza non hanno un inizio e una durata fissa date di fine. Cloud Service Mesh valuta continuamente gli SLO con un periodo di conformità progressivo. I dati meno recenti nel calcolo precedente vengono eliminati il calcolo attuale, poiché viene sostituito da nuovi dati. Un periodo di tempo in sequenza fornisce più misurazioni di conformità perché ogni giorno ottieni una misura di conformità per gli ultimi 30 giorni, anziché uno al mese. Tuttavia, i servizi possono oscillare tra conformità e mancata conformità poiché lo stato dello SLO variare quotidianamente.
Budget di errore
Un altro importante concetto di monitoraggio è il budget di errore. Uno SLO specifica un
SLI e un valore target che misura il successo del servizio nel
periodo di conformità. Il budget di errore per uno SLO rappresenta il tempo totale in cui
può non essere conforme prima di violare il suo SLO. Pertanto, un budget di errore è 100% - SLO%
. Ad esempio, se disponi di una disponibilità continua di 30 giorni
SLO con un target di conformità del 99,99%, il budget di errore è pari allo 0,01% di 30 giorni:
poco più di 4 minuti di inattività consentiti ogni 30 giorni. Un servizio necessario per soddisfare
uno SLO al 100% non ha budget di errore.
I budget di errore ti consentono di monitorare quante misurazioni SLI errate possono verificarsi nel resto del periodo di conformità prima che il servizio violi le SLO. Puoi utilizzare il budget di errore per gestire le attività di manutenzione, ad esempio il deployment delle nuove versioni. Quando il budget di errore sta per esaurirsi, un buon momento per intraprendere azioni rischiose come il deployment di nuovi aggiornamenti. Al contrario, se hai un budget di errore completo verso la fine di un periodo di conformità, potresti voler lanciare nuove funzionalità poiché il rischio di violare lo SLO è inferiore.
Se stai misurando uno SLO con un periodo di conformità di calendario, Service Mesh avvia il budget di errore al valore massimo e lo riduce nel tempo, attivando una violazione dello SLO quando il budget di errore scende al di sotto di 0. Cloud Service Mesh reimposta il budget di errore dello SLO alla fine del periodo di conformità.
Se stai misurando uno SLO in un periodo di conformità in sequenza,
in modo efficace sempre al termine di un periodo di conformità. Anziché partire da
zero, i vecchi punti dati vengono continuamente eliminati e i nuovi punti dati
vengono aggiunti continuamente. Se un periodo di scarsa conformità non soddisfa i requisiti
e, se lo SLO è conforme, il budget di errore aumenta. In qualsiasi momento, un error budget ≥ 0
indica una finestra SLO variabile conforme e un error budget < 0
indica una finestra SLO variabile non conforme.
Passaggi successivi
Scopri di più sugli SLO dal team Site Reliability Engineering di Google: