Blog | SparkFabrik

Oltre SRE: cos'è CRE (Customer Reliability Engineering)?

Scritto da SparkFabrik Team | Sep 17, 2021 6:45:00 AM

Implementare l’approccio SRE sembra impossibile? Con CRE diventa fattibile grazie al supporto attivo di un fornitore di servizi che si occupa dell’affidabilità. Scopri come funziona e quando sceglierlo.

Da alcuni anni a questa parte si sente sempre più parlare di CRE, acronimo di Customer Reliability Engineering. Potremmo definire CRE come un approccio pragmatico, orientato al cliente e specifico sulle pratiche SRE

In questo modello, al cliente vengono fornite delle competenze per gestire la propria applicazione, mentre il provider CRE si occupa di gestire gli aspetti più strettamente relativi alla reliability.

Vediamo quindi delinearsi due profili:

  • l’azienda / cliente che è responsabile dell’applicazione;
  • il fornitore CRE che fornisce supporto pratico e formazione all’azienda oltre a occuparsi direttamente dell’affidabilità.

La presenza di due attori comporta una divisione dei compiti funzionale all’implementazione delle pratiche SRE, in cui ognuno mette in campo le proprie specifiche competenze per puntare all’eccellenza. 

Per capire più nel dettaglio come funziona CRE, dobbiamo necessariamente introdurre i concetti di Cloud Native Journey e di SRE.

Cloud Native Journey: il punto di partenza

Non avrebbe senso parlare di CRE e SRE senza inquadrarle in un paradigma ben preciso: quello Cloud Native. Infatti le applicazione Cloud Native sono, se non affidabili, per lo meno pronte per essere valutate in termini di affidabilità. Senza tale requisito non sarebbe possibile applicare né la logica SRE né, tantomeno, quella CRE!

Adottare il Cloud Native richiede un adattamento tecnologico ma non solo. Essere davvero Cloud Native significa operare anche un cambiamento culturale e organizzativo importante: è a tutti gli effetti un viaggio che possiamo immaginare come suddiviso in varie tappe. 

Avviare un progetto di modernizzazione pianificando un preciso Cloud Native Journey consente di mappare lo status attuale e la roadmap per arrivare allo stato desiderato. Non tutte le organizzazioni partono dalla stessa situazione; per questo è fondamentale, prima di parlare di SRE o CRE, avviare un progetto di trasformazione personalizzato. 

Una volta giunti alla fine del percorso, la domanda sorgerà spontanea: “Come gestire l’affidabilità?”. Le vie che si delineano sono due: la collaborazione con un fornitore CRE che si faccia carico di questo aspetto, oppure la gestione completamente in house. Più avanti vedremo quali criteri tenere in considerazione per operare questa scelta.

 

 

SRE (Site Reliability Engineering) in breve

Come spiegato nel nostro articolo di introduzione a SRE, con Site Reliability Engineering si intende un insieme di principi, pratiche e costrutti organizzativi che permette sia di aumentare l’affidabilità dei sistemi sia di innovare costantemente le funzionalità offerte in base alle esigenze di business.

L’approccio SRE presuppone quindi di mantenere un doppio focus: da un lato la garanzia di affidabilità e di una certa percentuale di uptime, dall’altro il miglioramento continuo dell’applicazione. Due obiettivi tra i quali occorre necessariamente trovare un punto di equilibrio.

Qui entra in gioco il cosiddetto “error budget”, concetto spiegato in modo efficace da Google in questo blog post. Ipotizziamo che un sistema debba garantire il 99,9% di uptime: ciò significa che ogni mese è possibile utilizzare un massimo di 43 minuti di downtime (corrispondenti allo 0,1% mancante). Fintanto che si rientra nei 43 minuti, il team può focalizzarsi sullo sviluppo di nuove features e migliorie. Dal momento in cui l’error budget viene sforato, però, il 100% del tempo deve essere dedicato a risolvere il problema che causa l’eccessivo downtime. 

Grazie a SRE è quindi possibile capire dove concentrare gli sforzi del team basandosi sui dati. Proprio per questo è fondamentale creare delle dashboard di monitoraggio in grado di segnalare eventuali anomalie.

CRE: quali problemi risolve?

Abbiamo fatto tutte le dovute premesse e ora non ci resta che approfondire il tema della Customer Reliability Engineering. 

Questo approccio nasce per risolvere un problema molto diffuso e direttamente correlato alla migrazione in Cloud dei sistemi. Sebbene questo processo porti a degli innegabili benefici, il Cloud causa indirettamente uno svantaggio che va messo in conto.

Infatti, indipendentemente dalla qualità della formazione Cloud propedeutica, presto o tardi per ogni azienda arriva una fase di incertezza e ansia rispetto alla gestione dei sistemi. Ciò è comprensibile: il Cloud è percepito come qualcosa su cui non si ha un pieno controllo, contrariamente alle macchine on premise. 

Tali incertezze sono solitamente tamponate con White Paper e Checklist da parte dei Cloud provider in modo del tutto inefficace. In fondo, è un po’ come se dicessero al CIO: “Se rispetti queste best practice, puoi essere abbastanza sicuro che la tua applicazione girerà correttamente”. Ma “abbastanza sicuro” non basta quando in gioco ci sono la qualità del servizio e il fatturato dell’azienda.

Ed è qui che le soluzioni CRE possono fare davvero la differenza. In quest’ottica, il fornitore CRE offre strumenti tecnici e culturali per gestire le applicazioni all'interno del framework SRE. Non si limita a materiali informativi su cui l’azienda deve agire in autonomia, anzi. Vengono fornite, accanto a informazioni concrete e basate sui dati, indicazioni precise sui prodotti Cloud Native da adottare e configurazioni efficaci per quei software e per i componenti dell'infrastruttura.

Ma non solo: il fornitore CRE si prende in carico l'assessment continuo dell'affidabilità dell'infrastruttura, sgravando i team dell’azienda da questa preoccupazione. È quindi il fornitore a creare e monitorare costantemente le dashboard e indicare dove focalizzare l’attenzione (basandosi, tra le altre cose, sul parametro dell’error budget). 

In sostanza, diventa possibile ottenere tutti i vantaggi dell’approccio SRE senza dover investire in risorse interne che se ne occupino.

Come funziona CRE di preciso?

Come già accennato, nell'ottica CRE le attività sono divise tra l’azienda, che ha la responsabilità dell'innovazione, e il fornitore, che ha in capo l’affidabilità dell'infrastruttura.

Di cosa si occupa l’azienda?

L’azienda è responsabile dello sviluppo dell'applicazione facendo riferimento a una serie di best practice che permettono all’applicazione stessa di essere affidabile. 

Non è questione solo di evitare o correggere velocemente i bug, ma anche di implementare alcune soluzioni che consentono di controllare l'efficienza. Ad esempio, occorre assicurarsi che l'applicazione non consumi troppe risorse e quindi non faccia aumentare i costi.

Di cosa si occupa il fornitore di servizi CRE?

Riassumendo, le attività di cui si occupa il fornitore sono: 

  • La guida nel percorso verso il Cloud Native, che abbiamo detto essere uno step 0 imprescindibile per poter fare SRE.
  • Il controllo dell’affidabilità dell'infrastruttura, il costante monitoraggio e l’invio di indicazioni chiare circa le priorità da seguire per i team IT.
  • La production readiness review, una valutazione dello stato attuale e dei cambiamenti da operare per poter arrivare a un livello di affidabilità accettabile. In altre parole, il fornitore detta i parametri e le linee guida da seguire, occupandosi in prima persona di verificarne l’implementazione.

In quali casi conviene scegliere un approccio CRE?

Sono diverse le situazioni in cui è preferibile affidarsi a un fornitore di servizi CRE. Un primo esempio è quello delle aziende il cui Cloud Native Journey sia iniziato da poco o dove non vi siano le competenze interne necessarie per gestire le attività di SRE. In queste situazioni chiaramente è sempre meglio evitare il fai-da-te, perché potrebbe costare molto caro in termini di performance ed effort investito.

Una seconda considerazione da fare riguarda la composizione del team IT. Laddove ci sia un forte sbilanciamento di competenze verso lo sviluppo, ad esempio, potrebbe essere più conveniente affidarsi a un fornitore CRE piuttosto che dotarsi di personale addetto all’infrastruttura.

Infine, è consigliabile l’intervento di un fornitore specializzato dove ci sono gravi problemi di affidabilità. In questo caso la priorità è risolvere le criticità per poter migliorare la qualità del servizio; occorre quindi comprendere e applicare le best practice, implementare i giusti tool e impostare un sistema di monitoraggio. In tutto il processo, avere il supporto di un fornitore CRE è sicuramente di grande aiuto.