Esplorare l'integrazione continua
L'integrazione continua (CI) è uno degli elementi DevOps più fondamentali. Promuove la collaborazione, contribuisce al rilevamento anticipato dei problemi di qualità del codice e offre vantaggi al processo di sviluppo semplificato. Funge anche da base per il recapito continuo e la distribuzione. Usando le procedure di integrazione continua, l'organizzazione descritta nello scenario di esempio sarà in grado di eliminare il lavoro manuale necessario per la creazione e il test delle applicazioni, accelerando in modo efficace il recapito agli utenti. Per poter comprendere pienamente i vantaggi dell’integrazione continua, ne seguirà una descrizione in questa unità.
Che cos'è l'integrazione continua?
L'integrazione continua è il processo di compilazione e test automatico delle versioni aggiornate del software seguendo i singoli aggiornamenti nel repository software. In generale, il modello di integrazione prevede che gli sviluppatori inviino le modifiche in rami separati tramite richieste pull. Le modifiche sono soggette a una revisione collettiva e, in caso di esito positivo, vengono unite al ramo principale. È possibile usare singoli eventi di commit o merge per attivare la compilazione e il test del codice per assicurarsi che le modifiche proposte o risultanti non abbiano effetti negativi. Grazie all'integrazione continua, la compilazione e i test sono completamente automatizzati.
Questa automazione si basa sulle definizioni di compilazione e test create dagli sviluppatori e implementate nella piattaforma di hosting del repository. Ad esempio, GitHub offre a questo scopo il flusso di lavoro di GitHub Actions, mentre Azure DevOps si basa su Azure Pipelines.
Quali sono i vantaggi dell'integrazione continua?
I vantaggi principali associati all'integrazione continua sono basati sulla strategia generale di spostamento a sinistra, che (come si scoprirà più avanti in questo modulo) influenza anche molte altre procedure DevOps. La premessa di base è che più tempo ci vuole per rilevare un problema introdotto attraverso una modifica del codice, più costoso e impegnativo sarà risolverlo. Con l'integrazione continua, la compilazione e il test del codice si svolgono il prima possibile. Vengono implementati anche in modo automatizzato, aumentando la velocità e l'affidabilità. L'integrazione continua migliora la coerenza, assicurando che le compilazioni e i test vengano eseguiti in modo riproducibile. Tale coerenza, a sua volta, consente di applicare gli standard di programmazione, con conseguente pulizia e facilità di gestione del codice. Da ultimo, ma non per importanza, l'integrazione continua fa in genere parte del recapito continuo, semplificando la gestione dell'intero ciclo di vita dell'applicazione. Ridurre al minimo il sovraccarico associato alla gestione delle attività di compilazione, test e distribuzione aumenta la produttività complessiva dei team operativi e di sviluppo, riducendo il time-to-market per i prodotti software.