Panoramica
Le metriche DevOps permettono di misurare l'efficacia delle procedure DevOps, ovvero quelle procedure volte all'integrazione di sviluppo software e operazioni IT. DevOps è una metodologia che punta a migliorare l'erogazione dei software rendendola più rapida, affidabile e stabile. Aspetti chiave di questa metodologia sono l'utilizzo di strumenti self service, l'automazione, la comunicazione e un grande interesse per la soddisfazione e la produttività degli sviluppatori.
Le organizzazioni che investono nella metodologia DevOps devono anche poterne monitorare i progressi e per fare ciò occorre adottare un set di metriche coerente. I criteri in base ai quali si valuta l’efficacia di DevOps dipendono dalle priorità aziendali: alcune organizzazioni sono più interessate a misurare il rendimento dei software, mentre altre preferiscono concentrarsi sullo stato dei team. L'articolo prende quindi in esame i due framework di metriche più conosciuti: DORA (incentrato sui software) e SPACE (incentrato sui team).
Framework DORA e SPACE a confronto
Punto cardine della metodologia DevOps è instaurare una cultura volta al miglioramento continuo. Per questo motivo la scelta di quali elementi ottimizzare, e di come misurare i progressi, è una fase di importanza strategica. I due più noti framework di metriche DevOps sono DORA e SPACE.
Accelerare il rilascio di software è l'obiettivo principale di DevOps. Un'azienda può quindi decidere di dare priorità a metriche inerenti a tale obiettivo. In questo caso il framework più adatto è DORA (DevOps Research and Assessment) perché offre metriche incentrate sui software.
La rapidità dello sviluppo software è però solo uno dei tanti obiettivi di DevOps, che si propone anche di incrementare la soddisfazione dei team e la collaborazione fra di essi. Un'azienda può quindi decidere di misurare il successo di DevOps concentrandosi sulle persone. In questo caso il framework più indicato è SPACE (Satisfaction, Performance, Activity, Communication and collaboration, and Efficiency) perché offre metriche incentrate sui team.
Questi due approcci alla valutazione di DevOps riflettono filosofie e priorità diverse, ma la scelta di un modello non esclude l'altro. I due framework sono infatti complementari poiché misurano aspetti diversi di una metodologia molto sfaccettata.
DORA
Le metriche DORA sono il risultato del programma di ricerca DORA di Google Cloud. Nel 2020 il programma ha individuato quattro metriche chiave indispensabili per misurare le prestazioni dei team di sviluppo software:
- Frequenza di deployment: il ritmo con cui un'organizzazione è in grado di rilasciare con successo i software in produzione. Occorre innanzitutto stabilire i criteri secondo i quali un deployment può considerarsi riuscito. In seguito sarà possibile fare delle valutazioni, come ad esempio calcolare il numero medio di giorni la settimana che contano almeno un deployment riuscito.
- Tempo richiesto per le modifiche: il tempo che intercorre dal commit al suo passaggio in produzione. Per calcolarlo è necessario sapere quando è avvenuto il commit e quando è avvenuto il suo deployment.
- Tasso di errore delle modifiche: la percentuale di modifiche che causano problemi in produzione. Per calcolarlo è necessario sapere il numero di deployment eseguiti e il numero di bug o incidenti segnalati, informazioni che si possono ricavare da un sistema di gestione dei problemi.
- Tempo medio di ripristino: il tempo necessario per ripristinare il servizio in caso di problemi in produzione. Per calcolarlo è necessario sapere le date di creazione e di risoluzione di ciascun incidente, informazioni che si possono ricavare da un sistema di gestione degli incidenti.
Una quinta metrica è stata introdotta l'anno seguente:
- L'affidabilità, che include disponibilità, latenza, prestazioni e scalabilità. Il framework DORA misura la capacità di un'organizzazione di realizzare o persino superare i propri obiettivi in tema di affidabilità.
Lo scopo della ricerca DORA e delle cinque metriche che ha definito è il miglioramento dei risultati aziendali. I team possono analizzare le prestazioni dei software estraendo i dati dalle pipeline dei software, trasferendoli in una dashboard e monitorando i progressi nel tempo. Il framework DORA classifica anche le prestazioni (élite, alte, medie e basse) in base ai livelli di ciascuna metrica.
Uno dei vantaggi principali del framework DORA è il fatto che si basi su misurazioni che si possono ricavare dagli strumenti abitualmente utilizzati dai team software, come GitHub, GitLab e i sistemi di gestione degli incidenti. I team devono occuparsi di estrarre le metriche e trasferirle nelle dashboard, ma i dati sono già stati rilevati dagli strumenti in uso.
SPACE
Il framework SPACE punta a misurare la produttività analizzandola in tutti i suoi aspetti. Secondo il team di ricercatori che ha presentato SPACE per la prima volta in un articolo del 2021, il lavoro d'ingegneria è troppo complesso per essere misurato tramite una sola categoria di metriche. Lo sviluppo software è fatto di compromessi e i team hanno bisogno di un approccio olistico che tenga conto delle molte sfaccettature del loro lavoro.
Il framework SPACE prende in esame cinque aspetti:
- Soddisfazione e benessere: analizza come si sentono gli sviluppatori circa il loro lavoro, com'è il loro stato di salute e il livello di soddisfazione. I dati si possono raccogliere tramite la somministrazione di sondaggi volti a indagare la soddisfazione dei dipendenti, la facilità di accesso agli strumenti e alle risorse di sviluppo e il rischio di burnout causato dallo stress sul posto di lavoro.
- Prestazioni: misura i risultati di un sistema o di un processo (diverso dal rendimento), al di là della quantità di codice redatto o dell'impatto aziendale. Le prestazioni si possono misurare in base a due fattori: la qualità, ad esempio l'affidabilità del codice o l'integrità continua del servizio, e l'impatto, ad esempio la soddisfazione dei clienti o la loro fidelizzazione.
- Attività: tiene traccia degli interventi e degli output completati durante lo svolgimento del lavoro. Il livello di attività degli sviluppatori si può misurare in molti modi, ad esempio tramite il conteggio dei commit o delle release. Tuttavia, come sottolinea lo stesso framework SPACE è importante non considerare queste metriche in modo isolato.
- Comunicazione e collaborazione: analizza le modalità con cui i dipendenti e i team condividono le informazioni e lavorano insieme. Le metriche che permettono di misurare la comunicazione, la collaborazione e il coordinamento includono ad esempio: l'accesso alla documentazione e alle competenze, la rapidità con cui il lavoro viene integrato, la qualità delle valutazioni professionali, le metriche di rete che mostrano chi è connesso e il tempo necessario per l'onboarding dei nuovi membri.
- Efficienza e flusso: analizza la capacità di portare avanti un lavoro o completarlo riducendo al minimo interruzioni e ritardi. Il framework SPACE consiglia di basare la valutazione di efficienza e flusso su metriche quali il numero di passaggi di consegne in un processo, la capacità di tenere il ritmo e completare il lavoro, le interruzioni e le tempistiche calcolate da un sistema.
È possibile misurare e monitorare ciascuna metrica SPACE a livello di singoli utenti, team o sistema.
Il framework SPACE cerca di trasformare la concezione che i team hanno di DevOps, allontanandosi dalle mere misurazioni quantitative in favore di una visione olistica della produttività. A differenza del framework DORA, qui le informazioni non si possono estrarre dagli strumenti in uso e occorre quindi creare nuovi processi per la raccolta dei dati, come la somministrazione di sondaggi sulla soddisfazione degli sviluppatori.
Elementi da considerare per la scelta del framework
Le metriche DevOps utilizzate dovrebbero riflettere le priorità aziendali e basarsi su dati che l'organizzazione sarà effettivamente in grado di rilevare. Chi cerca informazioni sul puro rendimento, come la velocità e la qualità dei software distribuiti, potrà servirsi del framework DORA, mentre chi desidera valutare la produttività e il lavoro degli sviluppatori software da un punto di vista più ampio potrà adottare le metriche del framework SPACE.
Ecco alcune utili domande da porsi per individuare gli elementi da misurare:
- Quali sono gli obiettivi dell'azienda? Se alcune organizzazioni privilegiano velocità, affidabilità e resilienza, altre sono più interessate a valutare l'esperienza di sviluppo nella sua interezza e preferiscono concentrarsi su aspetti quali soddisfazione degli sviluppatori, collaborazione ed efficienza.
- Quali dati l'azienda è in grado di rilevare? Ad esempio, le pipeline di integrazione e deployment continui (CI/CD) sono un'ottima sorgente da cui ricavare informazioni sulle modifiche apportate ai software. Per raccogliere i dati qualitativi sarà invece necessario creare sondaggi dedicati.
- I sistemi di automazione e comunicazione in uso sono efficienti? Per misurare le metriche DevOps è essenziale avere visibilità su eventuali ostacoli, la comunicazione tra i diversi team e i processi decisionali. Assicurarsi che i sistemi DevOps funzionino correttamente è un presupposto chiave per ottenere dati affidabili sugli aspetti che si vogliono misurare.
Metriche DevOps e ingegneria della piattaforma
I flussi di lavoro DevOps necessitano del supporto di piattaforme e strumenti interni, materia di cui si occupa l'ingegneria della piattaforma, e ciò rende le due discipline interconnesse. Alcune metriche per la valutazione dell'efficienza di DevOps si ottengono infatti dagli strumenti di ingegneria della piattaforma e l'esperienza di sviluppo (DevEx) è parte integrante delle metriche DevOps.
L'ingegneria della piattaforma punta a ottimizzare l'esperienza dei team di sviluppo alleggerendone il lavoro. Gli ingegneri della piattaforma si occupano di fornire le piattaforme di sviluppo interne (IDP), ovvero piattaforme che contengono un set di strumenti e funzionalità riutilizzabili progettate per accelerare lo sviluppo. Sono inoltre responsabili della progettazione e dell'aggiornamento dei golden path, ovvero metodi ben documentati e supportati per lo sviluppo e il deployment dei software in conformità agli standard dell'organizzazione.
Le scelte che influiscono sulla progettazione di IDP, golden path e dei relativi artefatti sono strettamente correlate alle metriche DevOps. Quando adotta procedure DevOps, un'azienda stabilisce anche le sue priorità e cosa le sarà possibile misurare. Ad esempio, un'azienda che adotti pipeline CI/CD sa che quelle stesse pipeline le offriranno visibilità su commit e release dei software.
Il ruolo di Red Hat
Red Hat mette a disposizione piattaforme, strumenti e servizi di consulenza per consentire ai suoi clienti di misurare la produttività di DevOps.
Red Hat OpenShift
La piattaforma scelta per l'esecuzione delle applicazioni riveste un ruolo fondamentale nella misurazione delle metriche DevOps. Red Hat® OpenShift® è una piattaforma coerente in grado di operare in qualunque ambiente (cloud, on premise ed edge). Supporta i flussi di lavoro CI/CD grazie agli operatori Red Hat OpenShift GitOps e Red Hat OpenShift Pipelines. Inoltre, includeRed Hat OpenShift Observability che offre piena visibilità su prestazioni e integrità delle applicazioni.
Red Hat Advanced Developer Suite
In linea con gli obiettivi di DevOps, Red Hat Advanced Developer Suite amplia le funzionalità di Red Hat OpenShift mettendo a disposizione componenti essenziali studiati per incrementare la produttività degli sviluppatori, rafforzare la sicurezza della catena di distribuzione e supportare lo sviluppo basato sull'IA.
Red Hat Developer Hub
Incluso in Red Hat Advanced Developer Suite, il Red Hat Developer Hub è un portale interno per gli sviluppatori. Unifica gli strumenti e i servizi per gli sviluppatori (cataloghi dei servizi, documentazione, pipeline CI/CD, ecc.) in un unico hub consultabile. Questo permette di semplificare l'esperienza di sviluppo e incrementare la produttività dell'azienda.
Red Hat Consulting
I clienti possono rivolgersi agli esperti tecnici di Red Hat Consulting e collaborare allo sviluppo di programmi DevOps efficaci. Servendosi di tecniche quali modelli dei servizi e mappatura dei processi basata sulle metriche (MBPM), i consulenti Red Hat sono in grado di analizzare e misurare i flussi di lavoro dell'azienda.
L'evoluzione dell'ingegneria della piattaforma nell'era dell'IA
Questo articolo fornisce un riepilogo generale del sondaggio condotto da Illuminas sull'evoluzione dell'ingegneria della piattaforma nell'era dell'IA. Scopri i dettagli.