saverioriotto.it

Che cos'è Jenkins: caratteristiche e architettura

Jenkins è uno strumento di automazione open source scritto in Java che consente l'integrazione continua.

Che cos'è Jenkins: caratteristiche e architettura

Prima dell'avvento di Jenkins, gli sviluppatori dovevano completare il test del codice prima di poter verificare la presenza di errori. Gli sviluppatori in team, tendendo a lavorare in modo indipendente, hanno creato ampi segmenti di codice da aggiungere al codice di base. L'intero codice sorgente verrebbe controllato per errori, un'impresa lunga e impegnativa. Ogni sviluppatore invia il suo commit al controllo della versione, aumentando il tempo necessario per identificare e correggere i bug. In tutta questa fase non vi è stato alcun miglioramento iterativo del codice e il processo di consegna del software rallenta ulteriormente.

Come strumento di integrazione continua, Jenkins consente lo sviluppo, il test e l'implementazione continua e senza interruzioni del codice appena creato. L'integrazione continua è un processo in cui gli sviluppatori inviano le modifiche al codice sorgente ad un repository condiviso e tutte le modifiche al codice sorgente possono essere inviate continuamente e piu volte al giorno. Ogni commit viene monitorato dal server CI, aumentando l'efficienza della creazione e della verifica del codice. Ciò rimuove gli oneri dei tester, consentendo un'integrazione più rapida e meno spreco di risorse. Jenkins è uno dei migliori strumenti DevOps perché è gratuito, open source e modulare e può integrarsi praticamente con tutti gli altri strumenti DevOps disponibili. Esistono oltre un migliaio di plug-in che puoi utilizzare per estendere le capacità di Jenkins e renderlo più specifico per l'utente. Tutti questi plugin ed estensioni sono sviluppati in Java. Ciò significa che Jenkins può essere installato anche su qualsiasi sistema operativo compatibile con Java.

Architettura Jenkins

Vediamo come Jenkins interagisce con tutte le componenti:

 - Gli sviluppatori integrano le modifiche al codice sorgente, che si trova nel repository.
 - Il server Jenkins CI controlla il repository a intervalli regolari ed estrae il codice appena committato.
 - Il Build Server crea il codice in un file eseguibile. Nel caso in cui la build non vada a buon fine, viene inviato il feedback agli sviluppatori.
 - Jenkins distribuisce l'applicazione di compilazione al server di test. Se il test fallisce, gli sviluppatori vengono avvisati.
 - Se il codice è privo di errori, l'applicazione testata viene distribuita sul server di produzione.

I file possono contenere codice diverso ed essere molto grandi, richiedendo più build. Tuttavia, un singolo server Jenkins non può gestire più file e build contemporaneamente; per  questo, è necessaria un'architettura Jenkins distribuita.

Jenkins fornisce agli sviluppatori una struttura eccellente da cui possono sviluppare e testare nuovo codice sorgente, con conseguente consegna più rapida di software di migliore qualità. Evitando costosi ritardi e inceppamenti di registro, gli sviluppatori possono diventare gli MVP di un'organizzazione.




Commenti
* Obbligatorio