I tool DevOps, dal Versioning al Configuration Manangement

06.08.2020
I tool DevOps, dal Versioning al Configuration Manangement

La figura del DevOps

Con il termine DevOps si intende indicare una nuova metodologia aziendale volta a promuove un insieme di processi e metodi indirizzati alla comunicazione e alla collaborazione tra divisioni, ovvero tra gruppi di sviluppo e gruppi di operation1. Contemporaneamente, DevOps indica anche la figura professionale che svolge attività di collegamento tra le due divisioni. Si tratta di uno sviluppatore, una figura che segue da vicino e contribuisce alle attività dei comparti di produzione, partendo dalla scrittura di codici fino al delivery e monitoring dei software.

Il DevOps è un sistemista, un programmatore ma anche un ricercatore, in quanto è suo compito trovare la soluzione più adatta ai problemi che possono presentarsi durante i processi. È una figura ibrida che svolge attività di testing e contribuisce a mantenere elevati gli standard di qualità e sicurezza dei prodotti. 

 

Principi e tool di DevOps

La metodologia DevOps avvicina il più possibile il team di sviluppo e il team di IT operations, con l’obiettivo di creare un unico flusso di lavoro e di velocizzare il rilascio del software, la sua evoluzione e il suo mantenimento tramite la standardizzazione degli ambienti di sviluppo e l’automazione2.

I principi che le due divisioni coinvolte nel processo di integrazione devono tenere presenti sono tre: 

  • System Thinking, secondo il quale esiste un’unica performance, quella dell’intero sistema. Le performance dei singoli dipartimenti sono considerate esclusivamente funzionali alla buona riuscita della prima. 
  • Importance of Feedback Loops, che sottolinea l’importanza dei feedback continui tra le divisioni.
  • Culture of Continuous Experimentation and learning, che evidenzia la necessità di continuare a sperimentare e imparare per mantenere alti i livelli di competitività.

 

Il ventaglio dei tool di DevOps è andato ampliandosi in maniera significativa negli ultimi anni, ecco perché sono state stilate delle macrocategorie di strumenti legate alle principali fasi del ciclo di sviluppo degli applicativi:

  • Strumenti di controllo di versione: al fine di ottenere una migliore collaborazione e di ottimizzare le tempistiche di sviluppo, è necessario utilizzare strumenti che tengano traccia di tutte le modifiche apportate dai singoli nel tempo. Lo strumento di controllo di versione più famoso è Git, tool open source studiato per gestire progetti di piccole o grandi dimensioni3. Il suo servizio cloud GitHub, piattaforma di repository, è ormai considerato indispensabile per il DevOps. 
  • Strumenti di integrazione continua: si tratta di tool utili a rendere automatiche le operazioni legate alla costruzione, al test e all’implementazione del software4. Tra gli strumenti più famosi vi sono Jenkins, Buildbot, Go e Integrity.
  • Strumenti di Infrastructure-as-code: legati agli strumenti di gestione della configurazione, questi tool permettono di automatizzare il deployment dell’infrastruttura5. Terraform, Packer e Habitat sono solo alcuni dei più utilizzati. 
  • Tool di gestione della configurazione: questi strumenti permettono di automatizzare l’installazione, la configurazione e l’aggiornamento degli applicativi. Tra i più utilizzati vi è Chef Automate, piattaforma che offre un'automazione a stack completo. 

 

Fonti
1. DevOps, wikipedia.org
2. Che cosa significa DevOps e perché oggi è un fondamentale della programmazione, zerounoweb.it
3. Git--everything-is-local, git-scm.com
4. Integrazione continua, wikipedia.org
5. 10 Best Infrastructure as Code (IaC) Tools to Boost Your Productivity, nexastack.com

Benvenuto.