DevOps è un modello organizzativo leggero che coinvolge processi, persone e tecnologie; l’uso dei container ne semplifica l’implementazione.
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 che chiama in causa 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. Non occorre sapere 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.
- Agilità: 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 un container che ha superato il processo di test si evitano guasti in fase di installazione o configurazione. Si escludono anche 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.