Che cos’è la Site Reliability Engineering?

Completato

Il Site Reliability Engineering (SRE, Site relliability) garantisce agli sviluppatori software il controllo del funzionamento quotidiano delle rispettive applicazioni in ambienti di produzione. L'obiettivo è quello di colmare il divario tra il team di sviluppo che deve distribuire continuamente nuovi contenuti e il team operativo responsabile dell'affidabilità dell'ambiente di produzione. Trasferisce la responsabilità dell'affidabilità della produzione al responsabile dell’affidabilità del sito del team di sviluppo.

I responsabili dell’affidabilità del sito impiegano in genere fino al 50% del tempo nelle attività quotidiane che garantiscono l'affidabilità delle applicazioni e il resto del tempo in attività di sviluppo del software.

Una delle competenze essenziali di un responsabile dell’affidabilità del sito è quindi quella di avere una conoscenza approfondita dell'applicazione. È inclusa la conoscenza del codice, delle modalità di esecuzione, del tipo configurazione e delle possibilità di ridimensionamento.

Di seguito sono elencate alcune delle responsabilità tipiche di un responsabile dell’affidabilità del sito:

  • Monitorare ed esaminare in modo proattivo le prestazioni dell'applicazione.
  • Gestire il supporto di assistenza standard e di emergenza.
  • Verificare che il software disponga di efficaci funzionalità di registrazione e diagnostica.
  • Creare e gestire runbook operativi.
  • Collaborare alla valutazione dei ticket di supporto inoltrati.
  • Intervenire su richieste di funzionalità, difetti e altre attività di sviluppo.
  • Contribuire alla roadmap complessiva del prodotto.
  • Eseguire revisioni del sito in tempo reale e acquisire feedback in caso di interruzioni del sistema.

Principali differenze tra Site Reliability Engineering e DevOps

DevOps contribuisce a creare una sana collaborazione tra il personale operativo e il team di sviluppo. Suddividendo i silo tra i due gruppi, DevOps consente di realizzare un prodotto più solido e affidabile.

Sia il Site Reliability Engineering che DevOps offrono metodologie che consentono alle aziende di soddisfare le proprie esigenze di gestione dell'ambiente di produzione. Come spiegato nei moduli precedenti, i sistemi di feedback di DevOps sono in grado di identificare eventuali problemi e di avvisare gli sviluppatori, che si occuperanno di risolverli. Con il Site Reliability Engineering, invece, una persona del team di sviluppo cerca gli eventuali problemi di affidabilità del sito su base giornaliera e, nella maggior parte dei casi, li risolve. Mentre i team di DevOps scelgono solitamente di lasciare invariato l'ambiente di produzione, a meno che non sia assolutamente necessario modificarlo, i responsabilità dell’affidabilità del sito apportano spesso alcune modifiche.

Competenze dei responsabili dell’affidabilità del sito

Le competenze necessarie variano a seconda dell'applicazione e del modo in cui viene distribuita e monitorata. Le organizzazioni che usano tecnologie serverless, ad esempio, non hanno bisogno di qualcuno esperto nella gestione di sistemi Windows o Linux. Queste competenze sono invece essenziali per i team che usano server per le distribuzioni.

Un buon responsabile dell’attendibilità del sito deve inoltre concentrarsi sulle procedure di monitoraggio e diagnostica delle applicazioni, oltre ad avere acquisito esperienza con gli strumenti di gestione delle prestazioni delle applicazioni come Application Insights. Deve infine conoscere le procedure consigliate per la registrazione delle applicazioni e le tecniche di gestione delle eccezioni.