Che cos’è DevOps? Non è una cosa che si può risolvere con uno strumento, né è una metodologia, né richiede il reclutamento di persone super dotate per gestire tutte le attività del ciclo di vita dell’applicazione. Né si può dire che sia solo CI/CD.
DevOps è un modello organizzativo leggero che coinvolge processi, persone e tecnologie al fine di ottenere un sostanziale miglioramento nella gestione del ciclo di vita delle applicazioni, dal loro sviluppo e collaudo, alla loro implementazione fino al funzionamento in produzione.
E in cosa consiste questo sostanziale miglioramento?
• Agilità: maggiore capacità di rendere disponibili ambienti e risorse senza aumentare, o addirittura riducendo i costi.
• Standardizzazione: minore sforzo nell’integrazione, nel test, nell’implementazione e nel funzionamento, incapsulando le differenze tra le applicazioni con un modello omogeneo e semplice.
• Stabilità: riduzione dei guasti e dei malfunzionamenti grazie all’automazione dei processi di test, implementazione, recupero ed escalation.
• Comunicazione: diminuzione delle tensioni tra le aree di sviluppo, test e funzionamento in modo da condividere obiettivi, processi e tecnologia.
• Velocità: come probabile conseguenza dei punti precedenti, il tempo che intercorre tra lo sviluppo di una nuova funzionalità e il suo impiego in produzione si riduce.
Che impatto hanno le piattaforme container nell’implementazione di DevOps?
Quando incapsuliamo 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 portatili.
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 vantaggi specifici.
• AGILITA’: 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.
• 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.
• 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.
• COMUNICAZIONE: Esiste uno standard per qualsiasi applicazione e per tutti gli ambienti (Kubernetes), parlano la stessa lingua.
Questi aspetti, se implementati correttamente, aumentano la velocità di consegna, riducono i costi e migliorano la qualità del servizio. Inoltre, piattaforme container come Red Hat OpenShift sono oggi facili da adottare.
Non male, vero? Decisamente meglio insieme.