Che cos'è la Valutazione della maturità DevOps?
La Valutazione della maturità DevOps copre il percorso dal commit alla produzione in cinque gruppi: Pipeline CI/CD, Rilascio e deployment, Affidabilità e operatività, Automazione di sicurezza e conformità, Piattaforma e infrastruttura. Il team valuta 15 capacità, come la frequenza di integrazione, la riduzione del rischio nei deployment, la sostenibilità della reperibilità e la compliance as code, su una scala a cinque livelli da Ad hoc a Ottimizzato. I team che rilasciano di rado conoscono bene i sintomi: passaggi manuali in ogni rilascio e turni di reperibilità che sfiniscono le persone. Le valutazioni mostrano quale capacità sia il vero collo di bottiglia. Poiché ogni livello ha una descrizione scritta, sviluppatori, SRE e figure di prodotto valutano la stessa capacità partendo dallo stesso quadro, e le differenze tra i loro punti di vista indicano da dove cominciare.
Dimensioni
Pipeline CI/CD
Quanto efficacemente il team compila, integra e ottiene feedback tramite pipeline automatizzate.
Automazione delle build
Quanto in modo affidabile e automatico vengono generate e validate le build del software.
- Ad hocLe build sono manuali, lente e soggette a errori.
- EmergenteEsiste un'automazione di base, ma è fragile o incompleta.
- DefinitoLe build girano in modo affidabile con un livello moderato di automazione.
- GestitoLe build sono altamente automatizzate, con feedback rapido e affidabile.
- OttimizzatoL'automazione delle build è fluida, stabile e ottimizzata di continuo, con errori quasi assenti.
Frequenza di integrazione
Con quale frequenza gli sviluppatori integrano le modifiche nel codice condiviso.
- Ad hocL'integrazione avviene di rado e porta a merge grandi e rischiosi.
- EmergenteIl team prova a integrare più spesso, ma restano incoerenze.
- DefinitoL'integrazione quotidiana è la norma e riduce i conflitti di merge.
- GestitoL'integrazione è continua e stabile in tutto il team.
- OttimizzatoIntegrazione quasi in tempo reale con modifiche piccole e sicure che garantiscono un flusso rapido.
Feedback della pipeline
Velocità e chiarezza delle informazioni che la pipeline restituisce agli sviluppatori.
- Ad hocIl feedback è lento, poco chiaro o inaffidabile.
- EmergenteIl feedback esiste, ma spesso arriva in ritardo o è rumoroso.
- DefinitoIl feedback della pipeline è abbastanza tempestivo e utilizzabile.
- GestitoIl feedback è rapido, chiaro e permette agli sviluppatori di iterare velocemente.
- OttimizzatoIl feedback è immediato, preciso e consente una velocità di sviluppo d'eccellenza.
Rilascio e deployment
Con quanta sicurezza, prevedibilità e frequenza il team rilascia modifiche agli utenti.
Automazione dei deployment
Livello di automazione e ripetibilità dei deployment.
- Ad hocI deployment sono manuali, rischiosi e soggetti a errori.
- EmergenteÈ stata introdotta un po' di automazione, ma applicata in modo incoerente.
- DefinitoI deployment sono per lo più automatizzati e prevedibili.
- GestitoDeployment completamente automatizzati con bassi tassi di errore.
- OttimizzatoContinuous deployment con rilasci sicuri, rapidi e reversibili.
Riduzione del rischio nei deployment
Quanto efficacemente il team riduce al minimo i rischi durante il rilascio.
- Ad hocI rilasci sono eventi "big bang" ad alto rischio.
- EmergenteEsistono alcune misure di mitigazione del rischio, ma limitate.
- DefinitoFeature flag e rollout graduali sono usati regolarmente.
- GestitoI rilasci sono a basso rischio, con solide salvaguardie e monitoraggio.
- OttimizzatoStrategie di rilascio avanzate prevengono i disservizi e permettono rollback immediati.
Frequenza di consegna
Con quale frequenza il valore viene consegnato agli utenti.
- Ad hocI rilasci sono rari, imprevedibili e molto variabili.
- EmergenteLa cadenza dei rilasci migliora, ma resta incostante.
- DefinitoIl team rilascia secondo una pianificazione prevedibile.
- GestitoCicli di rilascio frequenti e affidabili.
- OttimizzatoLa continuous delivery garantisce un flusso di valore rapido e sicuro.
Affidabilità e operatività
Quanto bene il team osserva i sistemi in esercizio, interviene quando serve e ne mantiene la salute.
Monitoraggio e osservabilità
Quanto bene il team comprende lo stato di salute e il comportamento dei sistemi.
- Ad hocMonitoraggio limitato o reattivo; i problemi vengono rilevati troppo tardi.
- EmergenteEsistono dashboard di base, ma la visibilità ha grosse lacune.
- DefinitoIl monitoraggio offre una visibilità adeguata sulla maggior parte dei componenti.
- GestitoOsservabilità solida, con log, metriche e trace che consentono diagnosi rapide.
- OttimizzatoOsservabilità completa, con analisi predittive e rilevamento automatico.
Gestione degli incidenti
Con quanta efficienza il team reagisce agli incidenti e li risolve.
- Ad hocGli incidenti sono caotici e le responsabilità poco chiare.
- EmergenteLa struttura cresce, ma la risoluzione resta incostante.
- DefinitoGli incidenti vengono gestiti con metodo e un'efficienza discreta.
- GestitoRisposta rapida e coordinata, con MTTR basso.
- OttimizzatoGestione degli incidenti molto matura, con postmortem orientati all'apprendimento.
Sostenibilità della reperibilità
Equità ed efficacia dei processi di reperibilità.
- Ad hocLa reperibilità è gravosa, imprevedibile o iniqua.
- EmergenteIl carico diventa più gestibile, ma i problemi persistono.
- DefinitoLa rotazione è equa e il volume di alert ragionevole.
- GestitoReperibilità ben organizzata, con alert ben calibrati e strumenti validi.
- OttimizzatoAlert fuori orario minimi; l'automazione gestisce la maggior parte dei problemi.
Automazione di sicurezza e conformità
Quanto a fondo sicurezza e conformità sono automatizzate e integrate lungo tutta la pipeline di consegna.
Integrazione della sicurezza
Quanto efficacemente le pratiche di sicurezza sono integrate nei flussi di sviluppo.
- Ad hocI controlli di sicurezza sono manuali o arrivano tardi nel processo.
- EmergenteEsistono scansioni automatiche di base, ma con copertura limitata.
- DefinitoSicurezza integrata nella CI/CD con scansioni sistematiche.
- GestitoControlli di sicurezza automatici e completi lungo tutta la pipeline.
- OttimizzatoSicurezza continua e intelligente che previene le vulnerabilità fin dall'inizio.
Gestione delle vulnerabilità
Con quanta rapidità ed efficacia le vulnerabilità vengono individuate e corrette.
- Ad hocVulnerabilità scoperte tardi e corrette lentamente.
- EmergenteI processi migliorano, ma restano incoerenti.
- DefinitoLa risposta alle vulnerabilità è prevedibile e misurata.
- GestitoCorrezione rapida ed efficiente, con prevenzione proattiva.
- OttimizzatoIndividuazione, prioritizzazione e correzione automatizzate su larga scala.
Compliance as code
Uso dell'automazione per far rispettare requisiti normativi, di sicurezza e di policy.
- Ad hocLe attività di conformità sono manuali e reattive.
- EmergenteSono stati introdotti alcuni controlli automatici.
- DefinitoLe policy critiche sono integrate nei flussi automatizzati.
- GestitoLa conformità viene verificata regolarmente tramite controlli automatici.
- OttimizzatoConformità continua con applicazione in tempo reale.
Piattaforma e infrastruttura
Quanto sono automatizzate, coerenti e resilienti la piattaforma e l'infrastruttura sottostanti.
Automazione dell'infrastruttura
Come l'infrastruttura viene predisposta, gestita e scalata.
- Ad hocInfrastruttura predisposta manualmente, con alto rischio di disallineamenti.
- EmergenteAutomazione parziale tramite script o strumenti.
- DefinitoInfrastructure as Code adottata nelle aree principali.
- GestitoInfrastruttura completamente automatizzata, con ambienti coerenti e ripetibili.
- OttimizzatoInfrastruttura autoriparante e completamente orchestrata, con scalabilità intelligente.
Coerenza degli ambienti
Quanto sono coerenti tra loro gli ambienti di sviluppo, staging e produzione.
- Ad hocGli ambienti differiscono molto; i problemi dipendono spesso dall'ambiente.
- EmergenteC'è un po' di standardizzazione, ma restano incoerenze.
- DefinitoAmbienti per lo più allineati, con comportamento prevedibile.
- GestitoAmbienti molto coerenti, gestiti tramite automazione.
- OttimizzatoAmbienti completamente riproducibili, containerizzati e stabili ovunque.
Affidabilità della piattaforma
Disponibilità, resilienza e tolleranza ai guasti dei sistemi.
- Ad hocDisservizi frequenti e pratiche di affidabilità limitate.
- EmergenteL'affidabilità migliora leggermente, ma i problemi persistono.
- DefinitoAffidabilità accettabile, con miglioramenti in corso.
- GestitoAlta affidabilità con solide misure preventive.
- OttimizzatoResilienza eccezionale, con ripristino automatico e architetture tolleranti ai guasti.
Quando utilizzare questo controllo dello stato di salute
- Per definire una baseline delle capacità DevOps e di continuous delivery del team.
- Durante la pianificazione tecnica, per decidere se dare priorità ad automazione, affidabilità o sicurezza.
- Per monitorare nel tempo la maturità DevOps di più squadre o dell'intera organizzazione.
- Quando state avviando o ampliando le pratiche di platform engineering e SRE.
- Durante una trasformazione DevOps, per dare ai team una roadmap di miglioramento condivisa.
Consigli e suggerimenti
- Fate valutare separatamente ingegneri, SRE e stakeholder di prodotto, così emergono visioni diverse della maturità.
- Partite dalle dimensioni con i punteggi più dispersi: spesso rivelano colli di bottiglia che nessuno ha ancora nominato.
- Per ogni dimensione con punteggio basso, concordate un passo verso il livello successivo. Non puntate a Ottimizzato ovunque tutto in una volta.
- Ripetete la valutazione ogni trimestre, così anche i piccoli progressi diventano visibili.
- Leggete insieme le descrizioni dei livelli prima di discutere i punteggi, così tutti condividono la stessa idea di cosa significhi fare bene.