Principi e procedure SRE: il lato umano di SRE
Il successo di un processo operativo si determina dalla possibilità che offre di realizzare costantemente i livelli desiderati di affidabilità. Tale processo dipende in egual misura dal modo in cui tratta le persone responsabili dell'ambiente e dal modo in cui tratta i computer. La tecnica Site Reliability Engineering riconosce questa verità in diversi modi fondamentali per la sua applicazione.
Fatica
Il primo modo è costituito da un'attenzione al concetto di “fatica”. Nel contesto SRE, la fatica si riferisce a un lavoro su operations svolto da un umano con determinate caratteristiche. La fatica non ha un valore di riscatto a lungo termine. Non fa avanzare il servizio in modo significativo. È spesso ripetitiva e in gran parte manuale (sebbene possa essere automatizzata). Man mano che il servizio o il sistema cresce di dimensione, è probabile che anche il numero di richieste del sistema aumenti in modo proporzionale e necessiti di maggior lavoro manuale.
Ad esempio, un servizio può richiedere al team SRE di eseguire carichi operativi come i seguenti considerati faticosi:
- Reimpostazione di qualcosa ogni settimana.
- Provisioning manuale di nuovi account e spazio su disco.
- Riavvio ripetuto di un processo manualmente.
L'esecuzione di queste azioni non migliora il servizio in modo persistente a lungo termine. È anche probabile che queste azioni debbano essere ripetute più volte.
Nota
Anche se le richieste di questo tipo vengono mantenute in un sistema di ticket come spesso avviene, l'esecuzione dell'azione e la risoluzione del ticket è ancora fatica. Si tratta semplicemente di fatica registrata dettagliatamente.
Gli SRE odiano la fatica. Lavorano per eliminarla ogni volta che è possibile e appropriato. Questo obiettivo è uno dei motivi per cui entra in gioco l'automazione in SRE. Se le richieste possono essere gestite automaticamente, il team può dedicarsi ad attività più appaganti ed efficaci dell'evasione della coda di richieste.
Il termine "appropriato" viene usato in modo simile sia in relazione alla fatica che all'affidabilità. Ci sono situazioni in cui il lavoro di eliminazione del lavoro superfluo è di priorità inferiore rispetto ad altri lavori. Ma nel complesso, eliminare il lavoro superfluo da un servizio è un obiettivo fondamentale per un SRE.
Lavoro su progetto e lavoro su operations reattivo
Per svolgere le attività necessarie a rimuovere la fatica o migliorare l'affidabilità di un sistema, è necessario allocare nel modo appropriato il tempo di un team SRE. È necessario assicurarsi che il team non dedichi tutto il tempo ad affrontare emergenze, rispondere alle richieste o semplicemente elaborare una coda di ticket. Gli SRE devono avere tempo a disposizione per scrivere codice per l'eliminazione del lavoro superfluo, costruire un'automazione self-service che elimini la necessità dei ticket, creare progetti che incrementino l'efficienza del servizio e delle persone. Solitamente viene indicata una percentuale, proveniente dal modello originale Google, che non supera il 50% di carico operativo per team.
Nota
Sebbene il 50% possa essere un numero arbitrario, nella pratica questa percentuale sembra essere un obiettivo ragionevole per molte persone.
In alcuni momenti il tempo degli SRE viene totalmente dedicato alle emergenze, ma questo stato non può essere costante. Se il lavoro su "operations" reattivo (in gran parte fatica) occupa più del 50% del tempo del team per un periodo prolungato, questa condizione porta a esaurimento e a una bassa affidabilità. In questa situazione, i cicli virtuosi descritti in precedenza non possono essere applicati o creati. SRE pone la stessa attenzione ai carichi su chiamata non equilibrati che possono potenzialmente avere un impatto negativo sul team.
Dopo aver esaminato alcune delle procedure e dei principi SRE, di seguito viene descritto come iniziare ad applicarli.