DevOps
Development e Operations
DevOps è un insieme di pratiche e di cultura che unisce sviluppo software (Development) e gestione dell'infrastruttura (Operations), per rilasciare modifiche più spesso, più in fretta e con meno errori. Si basa su automazione, test continui, monitoraggio e collaborazione tra i team, ed è alla base della consegna continua del software.
Cos’è DevOps e come funziona
Un tempo chi scriveva il software consegnava il lavoro a chi lo metteva in funzione, e le due squadre avevano obiettivi opposti: i primi volevano cambiare, i secondi volevano stabilità. DevOps supera la divisione. Un unico team, o più team che collaborano, è responsabile del software dallo sviluppo alla produzione, e automatizza ogni passaggio ripetitivo.
Le pratiche principali di DevOps
- Integrazione continua (CI): ogni modifica al codice, salvata su Git, viene compilata e collaudata in automatico.
- Consegna e distribuzione continua (CD): il codice che supera i test arriva in produzione con un processo automatico, a volte senza intervento umano.
- Infrastruttura come codice: server e reti si descrivono in file di configurazione, in formati come YAML, e si creano in modo ripetibile.
- Monitoraggio e osservabilità: metriche, registri e allarmi mostrano come si comporta il sistema e permettono di intervenire presto.
- Collaborazione: responsabilità condivise, analisi degli incidenti senza ricerca del colpevole, miglioramento continuo.
Strumenti DevOps
La catena tipica comprende un repository come GitHub o GitLab, un sistema di CI/CD come GitHub Actions, GitLab CI o Jenkins, i container per impacchettare le applicazioni, Kubernetes per eseguirle, strumenti come Terraform per descrivere l’infrastruttura e un sistema di monitoraggio. Molti di questi strumenti girano su cloud.
Come si misura DevOps: le metriche DORA
La ricerca del gruppo DORA, nato in Google, ha individuato quattro misure delle prestazioni di un team: la frequenza dei rilasci, il tempo che passa dalla modifica al rilascio, la percentuale di rilasci che causano problemi e il tempo necessario a ripristinare il servizio. Secondo la ricerca, i team con i risultati migliori rilasciano spesso e con meno errori.
DevOps e metodologia Agile
Il metodo Agile organizza il lavoro in piccoli passi e in cicli brevi. DevOps rende possibile consegnare in modo affidabile ogni passo. Quando si aggiunge il controllo della sicurezza in ogni fase si parla di DevSecOps, che si collega alla sicurezza informatica. Gli sviluppatori che si occupano di questi processi hanno spesso il titolo di ingegnere DevOps o di platform engineer.
Come iniziare con DevOps in una PMI
Non serve cambiare tutto insieme. Si parte portando il codice in un repository Git, poi si aggiungono test automatici, una pipeline che li esegue a ogni modifica e un ambiente di prova identico alla produzione. Si prosegue con rilasci automatici e con un monitoraggio che segnali i problemi prima dei clienti. Ogni passo riduce il lavoro manuale e il rischio di errori nei rilasci.