Integrazione Git di Jenkins: utile per ogni professionista DevOps



Questo blog discute sull'integrazione di Git con Jenkins. Discute anche i vantaggi dell'integrazione di Git con Jenkins insieme alla demo.

è certamente incompleto senza Jenkins. Jenkins insieme a Git è una meravigliosa combinazione. Quindi in questo articolo parlerò dell'integrazione Git di Jenkins e dei suoi vantaggi. I suggerimenti che tratteremo sono i seguenti:

Quindi iniziamo con il nostro primo argomento.





Cos'è Git - Perché Git È venuto all'esistenza?

Sappiamo tutti che 'la necessità è la madre di tutte le invenzioni'. Allo stesso modo, Git è emerso per soddisfare alcune necessità che gli sviluppatori hanno dovuto affrontare prima di Git. Quindi, facciamo un passo indietro per imparare tutto sui sistemi di controllo della versione (VCS) e su come Git è nato.

Controllo della versione è la gestione delle modifiche a documenti, programmi per computer, siti Web di grandi dimensioni e altre raccolte di informazioni.



Esistono due tipi di VCS:

  • Sistema di controllo della versione centralizzato (CVCS)

  • Sistema di controllo della versione distribuito (DVCS)



VCS centralizzato

Un sistema di controllo della versione centralizzato (CVCS) utilizza un server centrale per archiviare tutti i file e consente la collaborazione del team. Funziona su un unico repository a cui gli utenti possono accedere direttamente a un server centrale.

Fare riferimento al diagramma seguente per avere un'idea migliore di CVCS:

che cos'è un certificato post-laurea

Il repository nel diagramma sopra indica un server centrale che potrebbe essere locale o remoto che è direttamente connesso a ciascuna delle workstation del programmatore.

Ogni programmatore può estrarre o aggiornare le loro postazioni di lavoro con i dati presenti nel repository. Possono anche apportare modifiche ai dati o commettere al repository. Ogni operazione viene eseguita direttamente sul repository.

Anche se sembra abbastanza conveniente mantenere un unico repository, presenta alcuni grossi svantaggi. Alcuni di loro sono:

  • Non è disponibile localmente, il che significa che devi sempre essere connesso a una rete per eseguire qualsiasi azione.

  • Poiché tutto è centralizzato, in ogni caso il crash o il danneggiamento del server centrale comporterà la perdita di tutti i dati del progetto.

È qui che Distributed VCS risolve il problema.

VCS distribuito

Questi sistemi non si basano necessariamente su un server centrale per memorizzare tutte le versioni di un file di progetto.In Distributed VCS, ogni collaboratore ha una copia locale o 'clone' del repository principale. Qui ognuno mantiene un proprio repository locale che contiene tutti i file e i metadati presenti nel repository principale.

Lo capirai meglio facendo riferimento allo schema seguente:

Come puoi vedere nel diagramma sopra, ogni programmatore mantiene un repository locale da solo, che in realtà è la copia o il clone del repository centrale sul proprio disco rigido. Possono eseguire il commit e aggiornare il loro repository locale senza alcuna interferenza.

Possono aggiornare i propri archivi locali con nuovi dati dal server centrale mediante un'operazione chiamata ' Tirare 'E influiscono sulle modifiche al repository principale mediante un'operazione chiamata' spingere 'Dal loro repository locale.

Ora proviamo a conoscere la definizione di Git.

  • Git è uno strumento di controllo della versione distribuito che supporta flussi di lavoro non lineari distribuiti fornendo la garanzia dei dati per lo sviluppo di software di qualità. Strumenti come Git consentono la comunicazione tra lo sviluppo e il team operativo.

  • Normalmente quando stai sviluppando un grande progetto hai un numero enorme di collaboratori. Quindi è molto importante avere una comunicazione tra i collaboratori mentre si apportano modifiche al progetto.

  • I messaggi di commit in Git svolgono un ruolo molto importante nella comunicazione tra il team. A parte la comunicazione, il motivo più importante per utilizzare Git è che hai sempre con te una versione stabile del codice.

  • Quindi, Git gioca un ruolo fondamentale nel successo in DevOps.

Cos'è Jenkins?

Jenkins è uno strumento di automazione open source scritto in Java con plug-in creati per scopi di integrazione continua. Jenkins viene utilizzato per creare e testare continuamente i tuoi progetti software, rendendo più facile per gli sviluppatori integrare le modifiche al progetto e rendendo più facile per gli utenti ottenere una nuova build. Consente inoltre di fornire continuamente il software integrandolo con un gran numero di tecnologie di test e distribuzione.

Con Jenkins, le organizzazioni possono accelerare il processo di sviluppo del software attraverso l'automazione. Jenkins integra i processi del ciclo di vita dello sviluppo di tutti i tipi, inclusi build, document, test, package, stage, deploy, analisi statica e molto altro.

Jenkins raggiunge l'integrazione continua con l'aiuto dei plugin. I plugin consentono l'integrazione di varie fasi DevOps. Se vuoi integrare uno strumento particolare, devi installare i plugin per quello strumento. Ad esempio Git, progetto Maven 2, Amazon EC2, editore HTML, ecc.

I vantaggi di Jenkins includono:

  • È uno strumento open source con un ottimo supporto da parte della comunità.

  • Troppo facile da installare.

  • Ha oltre 1000 plugin per facilitare il tuo lavoro. Se un plugin non esiste, puoi codificarlo e condividerlo con la comunità.

  • È gratuito.

  • È costruito con Java e quindi è portabile su tutte le principali piattaforme.

Ora sai come Jenkins supera le tradizionali carenze dell'SDLC. La tabella seguente mostra il confronto tra 'Prima e Dopo Jenkins'.

Prima di JenkinsDopo Jenkins
L'intero codice sorgente è stato creato e poi testato. Individuare e correggere i bug in caso di errore di compilazione e test era difficile e richiedeva tempo, il che a sua volta rallenta il processo di consegna del software.Ogni commit effettuato nel codice sorgente viene creato e testato. Quindi, invece di controllare l'intero codice sorgente, gli sviluppatori devono solo concentrarsi su un particolare commit. Ciò porta a frequenti nuovi rilasci di software.
Gli sviluppatori devono attendere i risultati dei testGli sviluppatori conoscono il risultato del test di ogni commit effettuato nel codice sorgente durante la corsa.
L'intero processo è manualeHai solo bisogno dieseguire il commit delle modifiche al codice sorgente e Jenkins automatizzerà il resto del processo per te.

Perché Jenkins e Git vengono usati insieme?

Come discusso prima, Partire è un gestore del controllo del codice sorgente. È qui che mantieni il codice sorgente per tenere traccia di tutte le modifiche al codice che si verificano nel tempo e per basare le versioni quando sono pronte per il rilascio.

Jenkins , d'altra parte, è una soluzione di integrazione continua. È concepito per automatizzare la maggior parte delle attività che uno sviluppatore deve svolgere durante lo sviluppo di una nuova applicazione (controlli di qualità del codice, creazione, archiviazione di artefatti di build, test di integrazione, distribuzione in vari ambienti, ecc.) Senza una soluzione CI, uno sviluppatore deve dedicare molto tempo a queste attività ripetitive non produttive.

java per esempi di programmi in loop

Vantaggi:

  • Git e Jenkins sono entrambi molto potenti, ma da un grande potere derivano grandi responsabilità. È abbastanza comune giustificare una quantità non necessaria di complicazione in una pipeline di build semplicemente perché puoi.
  • Sebbene Jenkins abbia molti trucchi nella manica, è facile sfruttare le funzionalità di Git, poiché rende la gestione del rilascio e il rilevamento dei bug è notevolmente più semplice col tempo.
  • Possiamo farlo prestando attenzione alle versioni del codice che creiamo e contrassegnandole in modo appropriato. Questo mantiene informazioni relative al rilascio vicine al codice , invece di fare affidamento sui numeri di build di Jenkins o altri moniker.
  • Protezione dei rami Git riduce il rischio di errore umano e automatizzare il maggior numero di attività possibile riduce la frequenza con cui dobbiamo infastidire (o aspettare) quegli umani.

Esempio:

Prendiamo l'esempio di una nuova funzionalità in un'applicazione web. Uno sviluppatore verrà identificato e assegnato all'attività, prende la base di codice esistente dal controllo del codice sorgente, ad esempio Git, apporta le sue modifiche, esegue test di unità, garantisce manualmente la qualità del codice e ricontrolla il nuovo codice in Git.

Quindi deve creare il codice, distribuirlo nell'istanza di integrazione, eseguire il test di integrazione e, una volta che la modifica sembra soddisfacente, sollevare una richiesta per la distribuzione in produzione. Ora, se solo avessimo un seguace che si occupasse di queste sezioni di test, costruzione, controlli di qualità e distribuzione, il povero sviluppatore avrebbe potuto concentrarsi meglio su quelle cose in cui è davvero bravo: implementare e migliorare la logica della funzionalità.

Questo servitore è Jenkins. Agisce come un orchestrator per eseguire tutte queste attività una volta che la modifica è stata archiviata nel controllo del codice sorgente (Git) e quindi fornisce un rapido feedback allo sviluppatore se le modifiche apportate sono sufficienti per la distribuzione in produzione o meno.È estremamente flessibile, open source e ha un sacco di plugin che possono fare quasi tutto ciò che desideri.

Demo

Qui vedremo come integrare Git con Jenkins. Ci sono 5 passaggi che devi seguire:

1. Crea un programma di esempio:

Puoi creare qualsiasi programma di esempio che desideri come Java o Python o qualsiasi altro programma. Qui scriveremo un semplice Programma Python che stampa Hello, World!

2. Crea un lavoro Jenkins:

  • Qui prima devi avviare Jenkins utilizzando il prompt dei comandi.

  • Per questo, devi prima accedere alla posizione di Jenkins sul tuo sistema e utilizzare il comando java -jar jenkins.war

  • Dopo aver eseguito questo comando, apri il browser web e vai alla home page di Jenkins utilizzando il link localhost: 8080 . Questo è il numero di porta predefinito.

  • Apri la home page di Jenkins di inserendo il nome utente e la password.

  • Per creare un progetto fare clic su Nuovo oggetto e inserisci il file Nome del progetto e seleziona Progetto Freestyle . Fare clic su OK.

3. Aggiungi questo programma a Github:

  • Apri git bash sul tuo sistema. Navigare alla posizione del programma. Inizializza un repository vuoto utilizzando il comando git init .

  • Usa il comando git add. per aggiungere il file all'area di staging dalla directory di lavoro.

  • Ora aggiungi il file al repository locale usando il comando git commit -m 'file demo.py aggiunto' .

  • Adesso devi spingere questo file nel repository remoto. Per farlo vai al tuo account GitHub e crea un nuovo repository pubblico. Ora copia la posizione di questo repository e vai al terminale git bash. Digita qui il comando git remoto aggiungi origine . Poiché ora ti sei connesso al repository remoto, ora puoi inserire il tuo codice lì usando il comando git push -u origin master. Per verificarlo vai all'account GitHub e aggiorna la pagina. Vedrai il file aggiunto lì.

4. Aggiungi il plug-in Git in Jenkins:

  • Sulla home page di Jenkins vai a Gestisci Jenkins .

  • Quindi fare clic su Gestisci plugin . Qui controlla ottenuto il plugin Git nella sezione installata. Se non è disponibile qui cercalo nella sezione disponibile e scaricalo.

5. Configura il lavoro Jenkins per attivare la build:

  • Vai al progetto in Jenkins che abbiamo creato nel passaggio 2. Qui nella sezione Gestione del codice sorgente, seleziona git e immettere il collegamento del repository pubblico creato al passaggio 3. Successivamente nel file Sezione Trigger build , clicca su Opzione Poll SCM . Qui nella parte Schedule, devi inserire cinque asterischi separati da uno spazio. Questa non è altro che la sintassi cron per il tuo lavoro. Ciò significa che Jenkins verificherà ogni minuto eventuali modifiche nel codice sorgente e se ci sono modifiche attiverà la build di Jenkins.

  • Clicca su Applicare e poi via Salva . Quindi nella home page del progetto fare clic su Costruisci ora . Questo eseguirà il progetto e nell'output della console, puoi vedere il tuo programma in uscita lo stato del tuo lavoro Jenkins. Se tutto va bene, verrà visualizzato come Successo .

Quindi è così che viene eseguita l'integrazione Git di Jenkins. Con questo, siamo arrivati ​​alla fine di questo articolo su Jenkins Git Integration. Spero che questo articolo ti sia piaciuto.

Ora che hai capito cosa Jenkins Git Integration è, controlla questo da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione sulla certificazione DevOps Edureka aiuta gli studenti a capire cos'è DevOps e acquisire esperienza in vari processi e strumenti DevOps come Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack e GIT per l'automazione di più passaggi in SDLC.

Hai domande per noi? Per favore menzionalo nella sezione commenti e ti risponderemo