Distribuzione continua Jenkins [con esempio pratico]
Pubblicato: 2020-12-28La distribuzione di Jenkins è un processo accelerato di sviluppo software automatizzato complesso. Questo articolo mette in luce come Jenkins integra tutti i processi del ciclo di vita dello sviluppo o le fasi DevOps come costruzione, documentazione, test, confezionamento, staging, distribuzione, analisi statica e molti altri, praticati in diverse organizzazioni.
Oggi, molte organizzazioni stanno adottando DevOps nelle loro offerte. Nel ciclo di vita dello sviluppo del software, è necessario rilasciare il software continuamente come parte del progetto.
Strumenti come Jenkins sono ampiamente apprezzati per il loro potenziale di consentire l'integrazione e la distribuzione continue delle applicazioni indipendentemente dalla piattaforma. Jenkins è uno strumento gratuito e unico in grado di gestire qualsiasi tipo di build nella distribuzione Jenkins , che sarà discussa nell'articolo.
Jenkins può essere integrato con molte tecnologie di test e distribuzione. Questo articolo descrive come Jenkins viene utilizzato per creare e testare continuamente i tuoi progetti software.
Impara il corso online di ingegneria del software dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Pertanto, prima di approfondire il funzionamento di Jenkins, dobbiamo comprendere i seguenti argomenti che sono alla base dell'apprendimento di Jenkins:

- Distribuzione continua
- Consegna continua vs distribuzione continua
- Un esempio pratico di distribuzione Jenkins
- Vantaggi della distribuzione Jenkins
Diamo un'occhiata a tutti loro uno per uno!
Sommario
Distribuzione continua
Nella distribuzione continua, il software viene rilasciato sui server di produzione continuamente con automazione. Il codice supera fasi come la compilazione del codice sorgente, la convalida, la revisione, il confezionamento dell'applicazione e l'esecuzione di unit test e test di integrazione.
Il codice viene quindi distribuito sui server di test quando viene eseguito il test di accettazione dell'utente. Il software verrà distribuito sui server di produzione per il rilascio del software. Leggi l'integrazione continua con jenkins.
Consegna continua vs. distribuzione continua
La distribuzione continua e la distribuzione continua sono due fasi cruciali di un SDLC in cui la distribuzione continua non viene distribuita alla produzione per eventuali modifiche. Lo sviluppatore deve assicurarsi che il codice sia sempre distribuibile e distribuirlo quando necessario.
Credito di immagine
La distribuzione continua richiede che ogni modifica venga distribuita automaticamente, senza alcun arbitrato umano.
Nel diagramma precedente, al termine delle fasi di integrazione continua, l'applicazione creata viene automaticamente distribuita sui server di produzione, che non è altro che una distribuzione costante.
Oppure, se è richiesta l'approvazione umana per distribuire la versione più recente per automatizzare tutto, stiamo eseguendo una consegna continua.
A causa di questa differenza fondamentale, ci sono state diverse implicazioni che hanno reso ogni processo adatto a circostanze diverse.
Jenkins
Jenkins è uno strumento open source che accelera il processo software attraverso un server di automazione utilizzato per creare e testare continuamente progetti software, consentendo un ambiente CI/CD per gli sviluppatori. È scritto in Java quindi davvero portatile.
Jenkins ha migliaia di plugin e integrazioni. Quindi, è adatto per grandi progetti che richiedono molta personalizzazione. Supporta strumenti di controllo della versione come Git, Maven, Mercurial e Subversion.
Un esempio pratico di distribuzione Jenkins
Ora che abbiamo appreso che tipo di strumento Jenkins è e può essere applicato per un processo di sviluppo software per la distribuzione continua, vediamo ora come funziona in un ambiente di produzione.
Innanzitutto, Jenkins viene impostato su un server e viene aggiunto il progetto di un client per la compilazione e il test. Il client può quindi scaricare l'applicazione che è stata sottoposta a test. La distribuzione delle risorse del progetto in una nuova posizione sul server può essere complicata.

Per questo, in via preliminare, supponiamo che un progetto client sia impostato su Jenkins, collegato al tuo sistema di controllo della versione.
Passaggio 1: creazione di un articolo Jenkins
Dal menu principale, seleziona "Nuovo elemento" e assegnagli un nome. Esporta i file dal progetto client in una cartella del server.
Passaggio 2: creazione di un'azione post-compilazione
Vai al progetto client e seleziona configura. Ora, crea un'azione post-compilazione e scegli "archivia artefatti" dal menu a discesa. Aggiungi i tipi di file da archiviare ed esportare.
Successivamente, aggiungi un'altra azione post-compilazione, "Crea altro progetto" e inserisci l'elemento di costruzione creato in precedenza.
Archivio
Passaggio 3: installazione del plug-in "Copia artefatto"
Nel terzo passaggio, installerai il "plug-in Copy Artifact" di Jenkins.
Vai a "Nome progetto" per configurare e aggiungere un passaggio di compilazione. Quando il plug-in Copia artefatti è installato, vedrai l'opzione "copia artefatti da un altro progetto". Designare la cartella in cui copiare gli artefatti e impostare il percorso della posizione.
Imposta la posizione su “var/www/clients/..” . Questo creerà una nuova cartella sul server. Specificare il percorso con un indirizzo HTTP(!).
Salvataggio del progetto
Passaggio 4: esecuzione del test
Dopo le fasi primarie, ora è il momento di testare l'applicazione.
Per questo, avvia una build dal progetto client. Ciò richiederà una nuova build. Controllare la cartella di distribuzione sul server. Qui vedrai i file distribuiti.
Ma, anche dopo tutte le azioni, la build non è riuscita e hai ricevuto un errore "FileException".
Come mai?
Possibili ragioni possono essere:
- Jenkins non dispone delle autorizzazioni per la scrittura nella cartella e non è in grado di distribuire i file.
- Collega SSH al server.
- Controlla le autorizzazioni della cartella di output.
- Lo saprai, abbiamo affrontato un problema.
Eseguire i seguenti passaggi per risolvere questo problema:
- Aggiungi Jenkins a un gruppo, qui, il gruppo "www-data".
- Modifica della proprietà della cartella di output nel gruppo 'www-data' con il comando sudo chown – R : client 'www – data'.
- Consenti l'accesso in scrittura alla cartella con il comando sudo chmod .
- Riavviare il server e vedere l'applicazione distribuita
Quali vantaggi offre Jenkins?
- Jenkins è uno strumento open source e fornisce un eccellente supporto della comunità.
- Jenkins è relativamente facile da installare.
- Jenkins ha oltre 1000 plugin. Se un plug-in non è disponibile, puoi codificarlo facilmente.
- Jenkins è gratuito.
- Jenkins è costruito con Java; quindi, portatile su tutte le principali piattaforme.
Leggi anche: Idee e argomenti del progetto Jenkins

Ultime parole
Jenkins è un robusto strumento di automazione scritto in Java che è stato ampiamente utilizzato per l'integrazione continua. Con Jenkins, è più facile creare e testare progetti software continuamente con ciò che è scritto. È lo strumento definitivo per fornire il tuo software sempre integrandosi con un gran numero di tecnologie di test e distribuzione.
Sviluppo software di apprendimento – DevOps con upGrad
upGrad offre il programma Executive PG in Software Development - Specializzazione in DevOps in cui imparerai a fornire applicazioni e servizi a una velocità molto elevata nell'organizzazione. La facoltà di upGrad ti insegnerà ogni dettaglio di DevOps e perché impararlo renderà una carriera redditizia per te.
Diploma PG di upGrad in specializzazione in sviluppo software nei punti salienti del programma DevOps:
Questo corso online esteso di 12 mesi offre le seguenti funzionalità:
- Sessioni online informate con lezioni dal vivo
- Accedi gratuitamente ai preziosi contenuti di Data Science e Machine Learning
- Lavorando su 7+ progetti e incarichi dal vivo
- Imparare dieci linguaggi e strumenti di programmazione
- Garanzia di collocamento garantito
- Supporto professionale a 360° con assistenza al lavoro