DevOps è un modello organizzativo improntato al modello Agile che coinvolge processi, persone e tecnologie e tende a un sostanziale miglioramento nella gestione del ciclo di vita delle applicazioni, dal loro sviluppo e collaudo, alla loro implementazione fino al funzionamento in produzione.
Questo sostanziale miglioramento si traduce in cinque direzioni e per individuarle ci aiutiamo con una valutazione che fa Red Hat.
Agilità: DevOps genera una maggiore capacità di rendere disponibili ambienti e risorse senza aumentare, se non riducendo i costi. Standardizzazione: DevOps richiede un minore sforzo nell’integrazione, nel test, nell’implementazione e nel funzionamento, incapsulando le differenze tra le applicazioni con un modello omogeneo e semplice. Stabilità: con DevOps si ha una riduzione dei guasti e dei malfunzionamenti grazie all’automazione dei processi di test, implementazione, recupero ed escalation. Comunicazione: DevOps genera una diminuzione delle tensioni tra le aree di sviluppo, test e funzionamento in modo da condividere obiettivi, processi e tecnologia. Velocità: conseguentemente, con DevOps il tempo che intercorre tra lo sviluppo di una nuova funzionalità e il suo impiego in produzione si riduce.
Container e DevOps
Quando si incapsulano le applicazioni e le loro dipendenze in container non è più necessario sapere come queste vengono installate o configurate, o se la destinazione è on-premise o nel cloud. Sono, osserva Red Hat, per definizione portabili.
Queste piattaforme container facilitano l’organizzazione di DevOps, fornendo un modello comune e continuo tra Dev e Ops, consentendo al contempo la separazione delle responsabilità senza interrompere la continuità e fornendo quattro vantaggi specifici.
Si parla ancora di agilità: con i container si ha la creazione automatica degli ambienti di test, che vengono eliminati al termine della prova, o la creazione istantanea degli ambienti e delle risorse necessarie per il ciclo di vita completo di un nuovo progetto.
Si ha poi una normalizzazione: quando un operatore riceve un’applicazione, non ha bisogno di una guida per installarla, in quanto viene implementata come qualsiasi altro container. Non è necessario modificare file di configurazione specifici. L’applicazione viene monitorata automaticamente, in tutti gli ambienti.
Si ha anche stabilità: promuovendo o trasferendo lo stesso container che ha superato il processo di test (QA) si evita l’iniezione di possibili guasti in fase di installazione o configurazione, o quelli derivanti da differenze tra l’ambiente sorgente e quello di destinazione. E poi esiste uno standard per qualsiasi applicazione e per tutti gli ambienti, ed è Kubernetes, con cui tutti parlano la stessa lingua.
Questi aspetti, se implementati correttamente, aumentano la velocità di consegna, riducono i costi e migliorano la qualità del servizio. In più, osserva Red Hat, piattaforme container come Red Hat OpenShift sono oggi facili da adottare.