Oggi più che mai le organizzazioni desiderano implementare i processi DevOps, indirizzati alla comunicazione e alla collaborazione tra due divisioni: i gruppi di sviluppo (Dev, da developer) e i gruppi di operations (Ops), spesso con l’obiettivo di fornire valore ai propri clienti in modo più rapido. Tuttavia, quando vengono interrogate sui risultati, raramente dispongono di dati precisi che consentano loro di stabilire se i processi DevOps funzionano davvero.
L’obiettivo dell’ultimo State of DevOps Report 2022, è proprio quello di esaminare come le capacità e alcune best practice predicano ottimi risultati in ambito DevOps. Per farlo sono stati presi in esami i risultati più bassi e quelli più alti sulla base delle quattro metriche delle prestazioni di consegna di un software (frequenza di distribuzione, tempi di realizzazione delle modifiche, tempo di ripristino del servizio, variazione del tasso di fallimento) e sulla base di questo le organizzazioni possono essere suddivise in tre cluster: basso, medio e alto. Considerando, ad esempio, la frequenza di distribuzione di un codice in produzione o del rilascio agli utenti finali, il cluster alto distribuisce su richiesta più volte al giorno mentre il cluster basso una volta ogni sei mesi. Se si considera invece il tasso di fallimento, il cluster alto registra variazioni che vanno dallo 0% al 15%, fino ad arrivare al 46%-60% per il cluster basso, questo perché i tempi richiesti per la realizzazione delle modifiche da parte di questo tipo di organizzazione sono più dilatati (si parla di circa uno o sei mesi). Nella ricerca si nota, in generale, una tendenza verso prestazioni di consegna leggermente più elevate, in particolare da basse a medie, di cui fanno parte oltre due terzi dei rispondenti. Il netto calo di organizzazioni di alto livello potrebbe far pensare che molti degli intervistati si trovano in organizzazioni o in team che sono in procinto di stabilire, una cultura DevOps che sta iniziando ad emergere in molti team moderni.
I vantaggi della metodologia DevOps
Normalmente il rilascio di una nuova feature in produzione necessita di un processo manuale e questo comporta, da parte dei team all’opera, il dover ricordare tutte le procedure, i vincoli, le configurazioni, i prerequisiti e i passaggi necessari per poterla pubblicare correttamente senza creare disservizi. Dato il rischio e i tempi necessari per l’implementazione dei processi questa procedura comporta l’impiego di molto tempo e può causare bug di regressione, disincentivano i team a fare più rilasci, aumentando quindi le possibilità di errori e di problematiche sul prodotto stesso.
Gestire invece il processo di rilascio di un software o di un applicativo in modo automatico, come attraverso la metodologia DevOps, permette non solo di incrementare ma anche di documentare e rendere più efficaci i rilasci stessi riducendo il tempo impiegato in operazioni ripetitive, permettendo alle persone di dedicare tempo prezioso ad attività più strategiche. Con un processo automatico si possono effettuare velocemente e più spesso – se non durante ogni singolo step – dei rilasci, oltre a ridurre i costi, mantenere una maggiore aderenza alle specifiche del progetto, garantire minori tempi di entrata in servizio di un software o di una piattaforma e minimizzare i fermi dovuti a difetti del software che paralizzano l’intero sistema.
Guardando alla fase strutturale invece, creare le impalcature e le strutture necessarie al rilascio automatico permette di formare e rendere autonomi tutti i team di sviluppo già presenti in azienda e definire meglio le attività di ciascuna risorsa. Un altro vantaggio derivante dall’adozione della metodologia DevOps è la definizione di processi perfettamente riproducibili nel tempo gestibili anche da personale non strettamente tecnico: l’esempio classico è la realizzazione e manutenzione di ambienti gemelli come potrebbero essere quelli di sviluppo e produzione; in questo caso il DevOps offre la garanzia che a parità di numero di versione i due ambienti siano effettivamente sovrapponibili.
Valutare il livello di automatizzazione, il primo passo per implementare la metodologia DevOps
Stabilire il livello di automatizzazione dei processi è necessario per qualsiasi azienda nel ramo IT, sia essa grande o piccola, con uno o più software oppure ad alto turnover e che abbia molti micro-tool di supporto al business, di cui spesso viene perso il controllo.
“Dopo aver maturato tanta esperienza nell’automatizzare i processi sia internamente a Giuneco che esternamente, abbiamo creato un team di DevOps concentrato per incentivare l’adozione di questa metodologia – spiega Matteo Milani, DevOps Architect di Giuneco – Attraverso un semplice questionario che i nostri clienti possono compilare in autonomia o con il nostro supporto, rispondendo a domande come: “Riscontrate spesso problemi di regressione?”, “Qual è il tempo medio di installazione in ambiente di QA/Dev? E di un ambiente cliente/produzione?”. Le risposte collezionate permettono ai nostri esperti ed esperte di redigere una pre-analisi gratuita dove andremo ad indicare quale sia il grado di automazione dell’azienda secondo la metodologia DevOps e in che modo possa colmare l’eventuale gap. Questo ci permette di fornire anche una panoramica sui benefici organizzativi ed economici declinati per la realtà in oggetto.”