A cura di Alessandro Fiorenza – DevOps Engineer

 

Con l’acronimo DevOps si intende Development e Operations. È una cultura che sempre più organizzazioni decidono di adottare che ha come scopo quello di migliorare la qualità del prodotto grazie ad una serie di principi su cui esso si fonda. In particolare, la stretta collaborazione tra la parte di sviluppo e quella operativa.

Questa collaborazione spesso si traduce nella creazione di pipeline CI/CD

CI/CD è un metodo per la distribuzione frequente delle app ai clienti, che prevede l’introduzione dell’automazione nelle varie fasi dello sviluppo applicativo. Gli acronimi, Continouos Integration e Continouos Deployment, possono assumere vari significati. Per CI, si intende l’integrazione continua, un processo di automazione per gli sviluppatori. Per la sua riuscita, le nuove modifiche apportate al codice vengono regolarmente compilate, testate e unite in un repository condiviso, risolvendo così il problema dei conflitti tra le numerose diramazioni di un’applicazione in fase di sviluppo. CD può indicare la distribuzione continua e/o il deployment continuo. Entrambi prevedono l’automazione delle fasi successive della pipeline, ma sono a volte usati distintamente per indicare il livello di automazione applicato. Può indicare il processo con il quale le modifiche apportate da uno sviluppatore all’applicazione vengono automaticamente testate e vengono distribuite in un ambiente target. In tal modo, si evita di sovraccaricare i team operativi con procedure manuali, che altrimenti rallenterebbero la distribuzione delle applicazioni.

Questa è una delle operazioni più frequenti in ambito DevOps. Possiamo vederne un esempio nell’ambiente cloud Microsoft Azure:

I passi da fare si possono riassumere in questa immagine che descrive una pipeline di distribuzione di microservizi all’interno del servizio AKS (Azure Kubernetes Service).

Gli obiettivi della pipeline CI/CD per microservizi ospitati in Kubernetes possono essere riepilogati come segue:

  • I team di sviluppo possono creare e distribuire i propri servizi in maniera indipendente;
  • Le modifiche al codice vengono distribuite automaticamente in un ambiente simile a quello di produzione;
  • Ad ogni fase della pipeline vengono applicati test di qualità;
  • La nuova versione del servizio può essere distribuita, affiancandola alla versione precedente.

Questo è solo uno dei molti modi in cui svolgere questa operazione, metodologie e organizzazione dipendono dal lavoro dei singoli team.

Inoltre, questa è uno dei molti compiti che vengono sviluppati dai gruppi DevOps che ricordiamo essere un ruolo recentemente introdotto per appunto ridurre la distanza tra i team di sviluppo e quelli di operation, aiutando così a migliorare la produttività e la qualità dei prodotti rilasciati.