Accedi / Registrati Account

DevOps

Cos'è la distribuzione continua?

Jump to section

La distribuzione continua è una procedura per lo sviluppo software che si avvale dell'automazione per accelerare il rilascio di nuovo codice.

Definisce un processo con il quale le modifiche apportate da uno sviluppatore a un'applicazione possono essere inviate, tramite l'automazione, a un repository di codice o a un registro di container.

Qual è la relazione tra distribuzione continua e CI/CD?

La distribuzione continua è parte del metodo CI/CD, che consente di distribuire frequentemente il software automatizzando alcune fasi dello sviluppo applicativo. 

L'acronimo "CI" in CI/CD sta per integrazione continua. Con l'integrazione continua, le nuove modifiche apportate al codice dell'app 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.

L'acronimo "CD" in CI/CD può far riferimento al deployment continuo o alla distribuzione continua, e indica le modalità per automatizzare le fasi successive della pipeline.

Qual è la differenza tra deployment continuo e distribuzione continua?

Benché siano concetti strettamente correlati, deployment continuo e distribuzione continua vengono a volte utilizzati in modo distinto per specificare come avviene l'automazione.

Con distribuzione continua si intende in genere il processo con il quale le modifiche apportate da un team di sviluppo all'applicazione vengono automaticamente testate alla ricerca di bug e caricate in un repository (come GitHub o un registro per container), dal quale vengono distribuite in un ambiente di produzione dai team operativi. È una soluzione al problema della scarsa visibilità e comunicazione tra i team di sviluppo e quelli operativi. In questo senso la distribuzione continua ha il fine di garantire interventi manuali minimi per distribuire il nuovo codice.

Il deployment continuo, invece, fa riferimento ad alcuni ulteriori passaggi relativi al processo di rilascio del nuovo software. In genere prevedere il rilascio automatico delle modifiche apportate dallo sviluppatore dal repository alla produzione, dove diventano fruibili ai clienti. In tal modo, si evita di sovraccaricare i team operativi con procedure manuali, che altrimenti rallenterebbero il processo di distribuzione delle applicazioni. Sfrutta quindi i vantaggi della distribuzione continua, automatizzando la fase successiva del flusso.

Cos'è una pipeline di CI/CD?

La pipeline CI/CD consiste in una serie di passaggi che devono essere eseguiti per fornire una nuova versione del software. Una volta messo in atto il processo CI/CD, si è stabilita una pipeline CI/CD (o flusso di integrazione e distribuzione/deployment continui).

La pipeline CI/CD introduce il monitoraggio e l'automazione per ottimizzare il processo di sviluppo applicativo, in particolare nelle fasi di integrazione e test, nonché durante la distribuzione e il deployment. 

Il vantaggio principale delle pipeline CI/CD sta nell'automazione dell'intero ciclo di vita dell'applicazione, benché ognuna delle fasi CI/CD possa essere eseguita manualmente.

Qual è la relazione tra distribuzione continua e DevOps?

DevOps è un concetto che combina i processi di "sviluppo" e quelli "operativi", ma è anche un approccio alla cultura, all'automazione e alla progettazione di piattaforme, ideato per offrire all'azienda valore e reattività maggiori attraverso un'erogazione dei servizi efficiente e di qualità elevata.

La distribuzione continua è una procedura di sviluppo software specifica, spesso applicata in combinazione a DevOps. Un approccio DevOps implica la creazione di una pipeline di distribuzione continua.

DevOps descrive gli approcci da adottare per accelerare i processi che consentono a un'idea (come una nuova caratteristica software, una richiesta di miglioramento o un bug fix) di passare dallo sviluppo al deployment in un ambiente di produzione, dove può fornire valore all'utente. 

Con questo approccio gli sviluppatori, che solitamente creano codici in un ambiente di sviluppo standard, lavorano a stretto contatto con il personale dedito ai test e ai processi IT, per velocizzare le fasi di creazione, modifiche al codice, collaudo e rilascio dei software, senza rinunciare all'affidabilità.

Uno dei principali effetti dell'implementazione di DevOps è una pipeline CI/CD supportata dai team di sviluppo e operativi che collaborano utilizzando una metodologia agile

In che modo l'automazione della pipeline supporta la distribuzione continua?

CI/CD si basa sull'automazione per velocizzare i processi di sviluppo, deployment e test. L'automazione contribuisce a mantenere una qualità elevata limitando l'errore umano. Se inserita in una strategia DevSecOps può anche supportare la sicurezza.

Alcuni strumenti gestiscono specificamente l'aspetto dell'integrazione (CI), alcuni gestiscono sviluppo e deployment (CD), altri sono specifici per i test continui o le funzioni correlate.

Uno degli strumenti open source più noti per CI/CD è il server di automazione Jenkins, progettato per gestire qualsiasi elemento da un semplice ferro per di integrazione continua a un hub completo di distribuzione continua.

Un altro progetto open source molto diffuso è Tekton, componente di Continuous Delivery Foundation. Tekton fornisce la capacità di descrivere in maniera dichiarativa i flussi di distribuzione mediante concetti Kubernetes ed eseguendoli on demand nei container.

Su Tekton si fonda OpenShift Pipelines, una soluzione CI/CD per Red Hat® OpenShift®.

Elementi essenziali della pipeline CI/CD

Red Hat Openshift

Una piattaforma per container e Kubernetes che velocizza il deployment di applicazioni cloud native.

Red Hat Ansible Automation

Le attività CI/CD richiedono una codifica personalizzata estesa e più pacchetti software. Red Hat Ansible Automation Platform è un linguaggio di automazione open source che garantisce tutto questo.

Incrementa il valore di Red Hat OpenShift distribuendo app, gestendo più cluster e applicando i criteri su più cluster e in modo scalabile.

Scopri gli altri vantaggi dell'approccio CI/CD