Che cos’è il DevOps?
È convinzione del Gruppo RES che l’approccio DevOps sia più una filosofia piuttosto che un’implementazione specifica, e per questo motivo ci sono tante idee, anche un po’ diverse tra loro, su come implementare il DevOps. Tuttavia ci sono alcuni principi generalmente accettati riguardanti il mondo DevOps: buona parte di essi ruota attorno ai concetti di sviluppo, business, team, software e delivery, che sono poi le parti maggiormente interessate da questa filosofia.
Senza dubbio DevOps è una pratica che si basa sulla stretta collaborazione tra software developers e il resto delle risorse IT di un’organizzazione, e si concretizza nell’automazione dei processi di software development e delivery. Obiettivo principale: creare ambienti in cui il ciclo di build, test e release delle applicazioni di software business sia il più rapido possibile, con frequente rilascio di nuove versioni, sempre più sicure e affidabili.
Ma perché utilizzare l’approccio DevOps? E perché in questo momento se ne parla e piace così tanto?
Partiamo da una convinzione: DevOps non è una cosa nuova. DevOps è la formalizzazione di una serie di pratiche legate all’ambito dello sviluppo software (e della sua messa in produzione), che negli anni si sono dimostrate più vantaggiose di altre. Parte di queste pratiche, che venivano effettivamente condotte da alcune aziende e organizzazioni, sono state nel tempo raccolte e hanno portato alla definizione di principi, grazie ai quali, oggi l’approccio DevOps può essere studiato nei libri accademici e proposto come modalità organizzativa.
I vantaggi del DevOps?
Ma quali sono i vantaggi dell’adozione di un approccio DevOps?
1) Velocità e qualità delle implementazioni software che si riescono a realizzare
Il modello DevOps consente di ottenere processi più agevoli per lo sviluppo di applicazioni e servizi, in grado di rispondere rapidamente alle nuove esigenze e ai cambiamenti del mercato, di rafforzare ed incrementare l’efficienza, oltre a permettere il rilascio frequente di aggiornamenti. Con l’approccio DevOps si passa rapidamente, semplicemente e frequentemente da un prodotto che funziona a un altro prodotto che funziona con delle caratteristiche in più (feature addizionali). Tutto questo avviene con tempistiche che spesso non superano, per le applicazioni più complesse, le due-quattro settimane. Nei casi più estremi la metodologia DevOps consente addirittura il rilascio di diverse release al giorno. Questo processo dinamico è noto come continuous integration (abbreviato in CI) e coinvolge principalmente la fase di creazione e di rilascio del software. Il CI fa uso di strumenti (componenti tecnici e di automazione) che consentono agli sviluppatori di andare costantemente a verificare la buona qualità di tutta la loro base codice, man mano che questa evolve.
2) Distribuzione rapida
Il passo successivo allo sviluppo di una nuova versione di un’applicazione è la sua distribuzione (il deploy in gergo tecnico). È il passaggio dalla continuous integration alla continuous delivery (CD): quella parte dell’automatismo dell’approccio DevOps che esula dallo sviluppo software e si rivolge alla messa in produzione della soluzione. La CD utilizza tutta una serie di strumenti che consentono di lavorare in ciclo iterativo, in maniera tale da rendere subito il valore sviluppato disponibile per clienti e utilizzatori finali. Questa fase è fondamentale perché potrebbe permettere di realizzare un vantaggio competitivo.
3) Affidabilità
Va da sé che un ciclo iterativo automatizzato permette di automatizzare anche tutti i processi delle suite di test e di verifica di compliance (cioè di aderenza agli standard di sviluppo). Tutto ciò migliora l’affidabilità complessiva del prodotto software e del ciclo di sviluppo. L’automazione verifica infatti l’aderenza ad alcuni standard di qualità, e nel caso in cui questa non ci fosse, le barriere di qualità rifiutano il passaggio in delivery di alcune parti. Questo sistema, che è relativamente nuovo sotto alcuni ambienti, è la prassi da tantissimi anni in ambiente IBM Mainframe. Questa fase è nota tecnicamente come automatic testing e può essere applicata in diversi momenti del ciclo DevOps: il continuous testing verifica costantemente gli aggiornamenti al software, ma altri test vengono realizzati per verificare modifiche all’infrastruttura e garantire un’elevata affidabilità e produttività.
4) Sicurezza e resilienza
Questo vantaggio dell’approccio DevOps si concretizza nel cosiddetto continuous monitoring, quella fase automatizzata di raccolta di dati sul buon funzionamento di quanto è stato messo in distribuzione, che permette di creare un importantissimo ciclo di feedback per guidare gli sviluppi successivi. Questo ciclo di feedback favorisce un modo abbastanza naturale di lavorare, grazie ad un costante monitoraggio che migliora nel tempo la resilienza complessiva della soluzione sviluppata.
In sintesi i plus della DevOps
In sintesi i vantaggi principali del DevOps sono un aumento di velocità e qualità dello sviluppo codice, una distribuzione più agevole e meno costosa, che consente infine una migliore affidabilità e qualità del codice effettivamente erogato.