Site Reliability Engineer – Il concetto di reliability

Data : 15/06/2021| Categoria: IT Governance & Service Management|

Dopo aver approfondito Cos’è il Site Reliability Engineer, in questo articolo Fabio Mora, Software Engineer, Agile Coach, esperto DevOps ed autore, approfondisce alcuni aspetti più pratici e tecnici riguardo questa professione e alcuni concetti fondamentali, in particolare quello di reliability.

Fare SRE

Fare l’SRE significa lavorare alla funzionalità più importante di un sistema: la reliability, una «feature» che precede qualsiasi altra. Se non ne siete convinti, immaginate di avere la necessità di usare un servizio il cui funzionamento si basa, in tutto o in parte, su sistemi informatici, elettronici, telco ed altre industrie affini.

Prendete un servizio online qualsiasi, più o meno critico. Se l’assistant che vi sveglia la mattina e manda in streaming la vostra stazione radio preferita forse non è fondamentale, lo smartphone che vi consente di interagire con parenti, amici, colleghi, gestire documenti e gli appuntamenti, forse è più critico per la qualità delle vostre giornate. Se estratto dalla tasca dicesse «non disponibile» e le app del conto bancario, di Google, i social network e Wikipedia non funzionassero, qualche problema alla vostra routine potrebbe incombere. Con varie sfumature di criticità, si tratta – sotto il cofano – di piattaforme molto sofisticate che interagiscono e funzionano tra loro, si auto-bilanciano e che spesso sono composte da milioni, o miliardi di righe di codice e dispositivi hardware.

Ma a cosa servono tutte queste cose, se invece sono inaffidabili, irraggiungibili, costellate di errori, disservizi, o non reagiscono ai picchi di richieste? Le funzionalità che offrono corrispondono a delle possibilità nel mondo reale; l’idea dunque è che esse siano mantenute efficienti e reattive per chi le usa, con una qualità di servizio commisurata alle necessità.

Possibili inconvenienti

Ci sono molte cose che possono andare storte. Innanzitutto, con il tempo i sistemi diventano intrinsecamente instabili. A causa della loro incredibile complessità tendono a rompersi e serve lavorare continuamente affinché questo non succeda. Le attività di lavoro sui sistemi e il loro aggiornamento non devono essere svolte solo quando avvengono «incidenti», ovvero eventi di carattere eccezionale, devono far parte del business as usual al fine di prevenire inerzia, obsolescenza e debito tecnico. Questi ultimi sono tutti demoni che minacciano non solo la qualità dei servizi, ma anche la possibilità di continuare a introdurre cambiamenti in essi: se da una parte il compito degli SRE è tenere stabili i sistemi, quello dei programmatori è di scrivere e mantenere le funzionalità dei prodotti, con continui rilasci software. Ogni rilascio quindi, potrebbe introdurre nuovi errori, e complessità – l’altra necessaria, ma dispendiosa, caratteristica dei sistemi in gioco.

Se scaricare un file dal vostro Drive può apparire un gesto semplice, dietro si nasconde una sterminata catena di eventi: dalla rete radiomobile, il flusso di dati viaggia incapsulato, criptato, in una fibra ottica, attraverso cavi transoceanici che lo portano nel giro di millisecondi in un datacenter remoto, e ritorno. A loro volta, vi sono collegamenti dati che permettono a queste infrastrutture di comunicare tra loro, fornire servizi di rete, hardware, ma anche energia e gas in rete – ancora più a monte. Dai POS per pagare in negozio, ai servizi di ticketing, alle reti di segnalazione ferroviaria, autostradale, aeronautica e civile, alla chirurgia in remoto, alle diagnosi mediche in cloud. Ma anche la logistica di ogni pacco consegnato tramite corriere, il lavoro dei «rider», le scie termiche del trasporto alimenti e farmaci. Tutte queste sono piattaforme cardine per interi settori e per la qualità della vita personale: industria, comunicazione, istruzione, educazione, marketing, media, sanità, PA, processi democratici – quasi tutto il terziario – e non solo.

Reliability

Ecco perché la reliability è la feature a monte di ogni sistema. Tuttavia, è anche una feature difficile da comunicare perché, quando è presente, può facilmente essere data per scontata, e risulta difficile dare sempre la giusta importanza a questo tema. Per correggere questo piccolo bias cognitivo, i ruoli e le strutture organizzative degli SRE sono sovente autonome rispetto ai Software Engineer, che invece costruiscono i prodotti.

Il valore attribuito all’SRE, dunque è, tenere questi prodotti stabili sui sistemi; senza errori, manutenibili, fruibili per l’utente – non importa cosa stia succedendo.
Il valore che un SRE offre alla sua organizzazione e agli utenti dei suoi prodotti è, in ultimo, quello di garantire la stabilità dei sistemi di produzione, la manutenibilità del software ed un livello di servizio di elevata qualità. Il tutto a prescindere dalle condizioni esterne, siano picchi di traffico o continui rilasci di nuove funzionalità.

Per approfondire leggi anche:

Fabio Mora SRE

Fabio Mora

Fabio Mora è un programmatore e Agile coach freelance entusiasta di Extreme Programming e Linux. Appassionato di open source, di economia e di tutto quello che riguarda la matematica e la scienza dei dati, ha prima fondato una web agency e poi lavorato in eBay come Software Engineer. Ama la musica, l’ingegneria del suono e la divulgazione scientifica.

Fabio Mora su LinkedIn

Condividi l'articolo, scegli la piattaforma!

Newsletter

Iscriviti alla newsletter di QRP International per ricevere in anteprima news, contenuti utili e inviti ai nostri prossimi eventi.

   
   

QRP International userà le informazioni che scriverai nel form per restare in contatto con te. Vorremmo continuare ad aggiornarti con le nostre ultime news e con contenuti esclusivi pensati per supportarti nel tuo ruolo.

       
       

Puoi cambiare idea in qualsiasi momento cliccando il link "unsubscribe" dal footer di una delle email che riceverai da noi o scrivendoci a marketing@qrpinternational.com. Tratteremo le tue informazioni con rispetto. Per maggiori informazioni sulle nostre privacy policy puoi visitare il nostro sito web. Cliccando in basso, accetti che potremo utilizzare le tue informazioni in conformità con questi Termini & Condizioni.

We use Mailchimp as our marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices here.