Site Reliability Engineering: la caratteristica più importante del software è l’affidabilità
6 min

Site Reliability Engineering: la caratteristica più importante del software è l’affidabilità

L’affidabilità è la caratteristica più importante del software. Lo toccano con mano sia la Direzione che il team Software di FinEasy AG quando all’improvviso dei clienti si lamentano dei lunghi tempi di reazione (e persino di guasti) dell’app . Occorre (re)agire prontamente per evitare perdite di fatturato, clienti insoddisfatti e danni d’immagine potenzialmente irreparabili.

Disclaimer: si tratta di un esempio fittizio. Nomi, persone ed enti citati sono frutto di fantasia.

FinEasy AG, azienda con sede nella Svizzera centrale, ha fatto ingresso da poco sul mercato svizzero del FinTech e ha obiettivi ambiziosi: punta non solo a diventare il principale fornitore di servizi di pagamento in Svizzera, ma anche a supportare i clienti privati con utili servizi nei settori della gestione patrimoniale, degli investimenti e della consulenza in materia di risparmio. In quest’ottica, FinEasy ha sviluppato l’app Saving Agent, con la quale gli utenti documentano le proprie entrate e uscite e ricevono un catalogo personalizzato di misure per la loro strategia di risparmio personale.

Il servizio è diventato rapidamente un successo, ma di recente l’app sviluppata e gestita nel cloud non funziona più in modo affidabile, tanto che i primi utenti hanno già iniziato a protestare per i lunghi tempi di reazione e qualche guasto isolato. La Direzione è preoccupata. Convoca in ufficio Martin, di professione ingegnere software e Product Owner di Saving Agent, e lo incarica di risolvere il problema e trovare un modo per garantire l’affidabilità dell’applicazione anche a lungo termine. Un compito tutt’altro che semplice: se l’applicazione non torna a funzionare come si deve in tempi brevi, FinEasy AG rischia perdite di fatturato, parecchi clienti insoddisfatti e un danno d’immagine pressoché irreparabile. Anche il ritmo dell’ulteriore sviluppo di Saving Agent finirebbe per rallentare – una prospettiva a dir poco spaventosa considerati la lunga roadmap che FinEasy AG ha in programma per l’applicazione e il vasto backlog di funzionalità previste. Martin si rende conto dell’enorme pressione cui è sottoposto. Come può superare tutti questi ostacoli da solo?

SRE migliora l’affidabilità del software

Martin decide di ricorrere a un esperto esterno e gli vengono in mente gli specialisti Swisscom. Questi ultimi, infatti, hanno grande familiarità con il Site Reliability Engineering (in breve SRE). SRE è un modello di Service Management sviluppato da Google comprendente vari metodi e pratiche basati su software che servono a creare sistemi software estremamente scalabili e affidabili. In particolare negli ambienti cloud-native, SRE contribuisce inoltre a garantire l’equilibrio tra la distribuzione di nuove funzionalità e la loro affidabilità per gli utenti. Ecco che quindi SRE si riallaccia direttamente all’approccio DevOps, definendo procedure altamente specifiche per implementare il concetto teorico di DevOps in un workflow concreto. Con un ampio portafoglio di servizi, i Customer Reliability Engineer (in breve CRE) di Swisscom supportano le imprese nella fase di implementazione di SRE, aiutandole a migliorare in modo durevole l’affidabilità delle proprie applicazioni.

Benjamin Treynor Sloss, inventore dell’approccio SRE presso Google, parla della storia di Site Reliability Engineering (video in inglese).

Una cosa è chiara fin dall’inizio: l’affidabilità di Saving Agent – e di tutte le altre applicazioni che FinEasy svilupperà in futuro – può essere ottenuta solo insieme. Sia Swisscom sia Martin e i suoi collaboratori devono dare il loro contributo. Di conseguenza, vengono formulati preventivamente degli obiettivi vincolanti per entrambe le parti: quale contributo forniscono Swisscom e FinEasy AG per garantire l’affidabilità delle applicazioni? Chi si assume quale responsabilità?

Successivamente il CRE esamina l’applicazione per ottenerne un quadro d’insieme da diversi punti di vista: oltre a valutare insieme a Martin quali obiettivi aziendali FinEasy persegua con questa applicazione, esamina anche in modo approfondito l’intera architettura dell’applicazione e i relativi rapporti di dipendenza. Per quanto riguarda la disponibilità operativa, esegue anche una valutazione del rischio ed elabora delle misure che consentiranno di soddisfare i requisiti aziendali di disponibilità e affidabilità.

Sviluppo di software in base a regole chiare

Tutti questi punti vengono descritti in un’Application Reliability Review, che fornirà a Martin e al suo CRE la base per definire insieme i Service Level Objective (SLO) e i Service Level Indicator (SLI). Mentre gli SLO illustrano gli obiettivi riguardanti l’affidabilità desiderata di un software, gli SLI rappresentano le metriche utili a determinare l’effettiva disponibilità del sistema, come ad esempio il rapporto tra interrogazioni del software riuscite e non.

Nell’ambito del Site Reliability Engineering, SLI e SLO svolgono un ruolo chiave. Gli SLI vanno intesi come metriche per la soddisfazione degli utenti: essi determinano, tracciano e misurano il successo dello user journey e mostrano se gli obiettivi SLO vengono effettivamente raggiunti o se si corre il rischio di creare insoddisfazione tra gli utenti della propria applicazione.

Di conseguenza, SLI e SLO stabiliscono anche il budget di errore a disposizione degli ingegneri software per lo sviluppo continuo di un’applicazione: i nuovi servizi o le nuove funzionalità del software possono essere lanciati solo se raggiungono o superano il valore SLO definito. Se invece presentano ancora troppi errori o i guasti permangono per un periodo superiore a quello consentito dal budget di errore, non si possono effettuare ulteriori rollout fino a che l’applicazione non rientra nuovamente negli SLO.

Site Reliability Engineering con Swisscom

  • Swisscom vanta un’esperienza pluriennale nella gestione di piattaforme e applicazioni cloud proprie ed esterne.
  • Tramite il loro Customer Reliability Engineer Swisscom, i clienti hanno accesso a una solida base di collaboratori dotati di profonda esperienza in campo tecnologico e a un’ampia gamma di best practice.
  • Il servizio SRE Swisscom comprende il monitoraggio end-to-end dell’applicazione. In questo modo il CRE dispone di tutte le informazioni necessarie per identificare precocemente i problemi o per effettuare le analisi delle cause.Il modello SRE/CRE Swisscom è di tipo ibrido. Ciò significa che, a differenza di altri fornitori presenti sul mercato svizzero, Swisscom opera indipendentemente dalla piattaforma.

L’offerta in dettaglio: factsheets

Supporto esterno

Ora che è chiaro quali SLO vengono perseguiti e quali SLI si utilizzano, Swisscom può fornire a Martin un supporto professionale per la gestione di Saving Agent: Swisscom integra il monitoring di FinEasy nel suo Reliability Management System e imposta una gestione allarmi. In caso di disguidi futuri, un Customer Reliability Engineer di Swisscom è pronto a fornire consulenza a Martin. Viene immediatamente allertato in caso di violazione degli obiettivi di servizio di Saving Agent, identifica la causa principale dell’evento e informa dei fatti i team operativi responsabili.

Ad ogni evento segue quindi un cosiddetto postmortem, nel quale vengono riportati non solo il fatto, le sue conseguenze e le misure introdotte per risolvere il problema, ma anche le misure adottate in seguito per evitare che l’evento si ripeta. Con SRE vengono quindi elaborati anche approcci risolutivi preventivi che contribuiscono a migliorare l’affidabilità del software. Inoltre, i reporting mensili sulle violazioni SLO e i report trimestrali completi aiutano Martin a migliorare ulteriormente l’affidabilità di Saving Agent e a ridurre al minimo i tempi di riparazione insieme a Swisscom.

Martin può tirare un sospiro di sollievo. Grazie all’aiuto di Swisscom, non solo è riuscito a trovare una soluzione ai lunghi tempi di reazione e ai guasti di Saving Agent, ma ora sa anche di poter contare su un supporto professionale per la futura gestione dell’applicazione.  Il Site Reliability Engineering e la collaborazione con i professionisti del settore lo aiutano a garantire l’affidabilità di una delle applicazioni per uso aziendale più importanti di FinEasy AG.

Leggete ora