Quando gli utenti stanno valutando la possibilità di coinvolgere SRE e i team stanno pensando di introdurre procedure SRE, una domanda comune che si presenta è "È necessario sapere come scrivere codice?"
La risposta breve: sì.
Ma la risposta completa è un po' più sfumata. Verranno ora esaminati tre punti in cui il codice entra in gioco nella progettazione dell'affidabilità del sito insieme al livello di competenze di codifica necessarie per ognuno di essi. Questo elenco non è completo, ma questi scenari sono alcuni dei casi d'uso più comuni.
Scenario 1: Rimozione del carico tramite l'automazione
I tecnici dell'affidabilità del sito e altri utenti che usano le procedure SRE tentano, ove possibile, di rimuovere il problema. "Fatica" significa una cosa specifica in SRE. Toil si riferisce al lavoro operativo svolto da un essere umano che ha 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, se un servizio richiede al team SRE di reimpostare un elemento ogni settimana o di effettuare il provisioning di nuovi account e spazio su disco manualmente oppure riavviarlo ripetutamente manualmente, questo è carico operativo che è in corso. L'esecuzione di queste azioni non ha migliorato il servizio in modo persistente a lungo termine. È probabile che queste azioni debbano essere ripetute più volte.
Gli SRE odiano la fatica. Lavorano per eliminarla ogni volta che è possibile e appropriato. Questo è il caso in cui entra in gioco l'automazione in SRE. Se queste richieste possono essere gestite automaticamente, ciò libera il team di lavorare su cose più gratificanti e di impatto.
Competenze di scrittura del codice: l'automazione richiede competenze di scrittura del codice, ma non richiede competenze di ingegneria software complete. Se è possibile scrivere piccoli script (ad esempio nella shell di PowerShell o Bourne) o anche se si crea un'app per la logica di Azure con qualsiasi codice, questa app può comunque contribuire a eliminare il problema.
Scenario 2: Controllare tramite API/linguaggi specifici del dominio (DSLs)/templates
Anche se non strettamente necessario per il funzionamento di SRE, la possibilità di controllare gli ambienti tramite API, DSLS e modelli (in particolare ambienti cloud) consente alle SRE di aumentare le prestazioni del lavoro. L'infrastruttura di provisioning/deprovisioning, la configurazione del monitoraggio e l'integrazione di diversi servizi diventano molto più efficienti tramite la codifica.
Esperienza di scrittura del codice: come nello scenario precedente, questa operazione richiede alcune competenze di codifica, ma non deve richiedere competenze di ingegneria software complete. Oltre agli script e alle app per la logica menzionati in precedenza, i modelli di Azure Resource Manager possono essere usati anche con un'esperienza di codifica minima.
Scenario 3: Correzione del codice
I tecnici dell'affidabilità del sito cercano di migliorare l'affidabilità di un sistema. Questo obiettivo a volte richiede l'analisi del codice sorgente di un sistema, la determinazione del problema e spesso il contributo di una correzione alla codebase. Anche se il livello di complessità di questo lavoro può variare notevolmente in base alla situazione, le competenze di codifica sono un requisito definito in questi casi.
Competenze di scrittura del codice: in questo scenario è spesso necessaria una competenza completa di ingegneria del software.