Che cos'è Jenkins?
- Jenkins è uno strumento di automazione a integrazione continua (open source) che viene installato sul server in cui viene eseguita la generazione. L'integrazione continua si riferisce a un processo in cui gli sviluppatori eseguono il commit del loro codice in un repository comunemente creato non appena completano lo sviluppo.
- Nel processo CI / CD si ha anche un aumento delle spese generali e quindi abbiamo Jeline in pipeline per mantenere gli utenti e le autorizzazioni taggate su di loro. Lo stesso vale per i progetti in aumento.
- Una volta che l'edificio aumenta, aumenta la necessità corrispondente di creare agenti di prova insieme alla loro manutenzione.
Definizione di Jenkins -
- La definizione fornita per Jenkins da Jenkins.io è la seguente:
"Jenkins è un server di automazione autonomo e open source che può essere utilizzato per automatizzare tutti i tipi di attività legate alla costruzione, al collaudo, alla consegna o alla distribuzione di software".
- Quindi, quando viene introdotto il concetto di integrazione continua o di implementazione continua, allora entrano in scena strumenti come Jenkins e gli ambienti. Ma qui parleremmo solo di Jenkins.
Capire Jenkins -
- La pipeline di integrazione continua è un insieme di lavori sequenziali o paralleli, questi lavori sono progettati per eseguire un insieme di compiti configurati mediante l'interfaccia della GUI.
- Poiché è diventato difficile mantenere il numero crescente di progetti, costruire, costruire revisioni e copie, viene introdotto il concetto di pipeline Jenkins. Questa pipeline si chiama jenkinsfile.
- Jenkins supporta anche la finestra mobile e le reti mobili come le tecnologie in cui vengono eseguiti i microservizi.
- A volte compaiono alcuni tipi di problemi come la lentezza dovuta all'enorme quantità di registri generati.
- Jenkins può comportare un elevato utilizzo della CPU, proporzionale al numero di utenti che accedono a Jenkins.
- Jenkins è verticale (richiede l'upscaling dell'hardware) e scalabile orizzontalmente (richiede più master Jenkins).
- Si vede che avere un singolo master Jenkins è piacevole, ma il compromesso deve essere impostato tra la disponibilità e la facilità di gestione, poiché nel caso in cui il singolo master si abbassi, si fermerà il business.
- Gli schiavi Jenkins contribuiscono allo stesso modo ai test insieme all'edificio, Jenkins fornisce il concetto di test paralleli che velocizzano anche la pipeline.
- Viene fornita l'alta disponibilità insieme alla gestione del failover con sistemi primari e secondari.
Come funziona Jenkins -
Prima di iniziare a lavorare con Jenkins ci sono alcuni prerequisiti che devono essere soddisfatti.
L'hardware consigliato è il seguente:
- RAM> = 1 GB
- Spazio su disco> = 50 GB sarebbe sufficiente.
I prerequisiti software sono i seguenti:
- Windows / Linux (preferibilmente)
- JDK 8
- I contenitori Web conformi alla servlet 3.1 devono essere presenti.
Esistono due architetture in cui possiamo realizzare il progetto:
- Architettura master-slave
- Architettura master-master
- Siamo in grado di impostare i nodi slave dalla pagina "Gestisci nodi". Quindi specificare i nodi e i loro nomi, quindi impostare le proprietà dei nodi, associare gli slave ai master e quindi avviare i nodi slave.
- Ci sono alcune tecnologie di base che devono esserci ci sono -
- Gestore pacchetti nodo e GIT
- Eclipse IDE e Maven
- Banca dati
- Junit o selenio come strumenti di test per test automatici
- Qualsiasi ambiente come Docker (preferibilmente) farebbe.
Funziona in tre fasi: azioni di pre-costruzione, azioni di costruzione e azioni post-costruzione
Nelle azioni PreBuild: esistono minimizzatori JS per ridurre al minimo e comprimere il codice prima di inserirlo nella build, questo viene fatto utilizzando plug-in pre-build. Insieme a questo generatore di formiche può essere invocato nei casi richiesti, possono essere eseguiti batch di finestre, comandi di shell e possono essere invocate destinazioni maven per fornire i file di configurazione.
I plug-in pre-compilati eseguono push del codice, polling, compilazione, impacchettamento e pubblicazione.
Nella fase Azioni di costruzione: il codice inviato a questa fase dalla fase precedente viene compilato e testato.
Nella fase Post Build: qui i codici vengono archiviati nei formati distribuibili e, infine, vengono inviati.
Perché dovremmo usare Jenkins -
- Compatibile per distribuire i microservizi con kubernetes e docker
- La prossima era dell'applicazione riguarderebbe solo lo sviluppo basato su microservizi, poiché la necessità di scalabilità e disponibilità si presenta per determinati servizi solo negli scenari di applicazione massimi. Quindi le distribuzioni e i servizi possono essere spinti in modo automatizzato con Jenkins, devi solo dargli script di shell nell'input e può fare il resto del compito per te.
- La pipeline è supportata.
Cosa puoi fare con Jenkins -
- Creare un processo in due architetture come indicato sopra.
- Se vuoi un solo master, puoi seguire questo approccio, se devi abbinare i vincoli di disponibilità, puoi andare con molti master.
- Esistono molti plug-in open source per gestire più lavori in modo automatizzato.
- Le applicazioni monolitiche o basate su microservizi sono ben supportate.
Vantaggi di Jenkins -
- È un server open source e di integrazione continua in natura.
- Jenkins ora trasporta pipeline.
- L'ambiente di consegna è ora fornito da qualsiasi lingua.
- Il processo di consegna del prodotto diventa più veloce e quindi segue il modello agile in stretta collaborazione.
- Jenkins è uno strumento CI / CD.
- Vengono fornite funzionalità come il controllo degli accessi in base al ruolo.
- Jenkins è scalabile, pertanto è possibile soddisfare i problemi di disponibilità e scalabilità.
- I team distribuiti possono funzionare ed è facile da gestire ora.
- Il supporto container è lì.
- Il server LDAP è parte integrante della sua architettura.
- Anche Jenkins 2.0 è retrocompatibile.
- Le pagine di configurazione della pagina di lavoro sono state create in modo improvvisato con Jenkins 2.0
Perché abbiamo bisogno di Jenkins -
- Per processo CI / CD
- Questi processi possono essere progettati in modo automatizzato, i programmatori eseguono il commit del codice, la compilazione con le nuove revisioni corrispondenti viene effettuata con un solo clic (eseguendo gli script forniti).
- È ben supportato da plugin open source e strumenti di reportistica come Ant, Maven, Gradle, BitBucket, NodeJs, ecc.
Chi è il pubblico giusto per imparare Jenkins -
- Chiunque nel ruolo di DevOps adorerebbe incorporare questo strumento per automatizzare il processo di costruzione.
- Gli sviluppatori web alle prime armi che cercano una carriera come DevOps devono sapere come funziona questo strumento e come possiamo configurare il processo di creazione della build.
In che modo questa tecnologia ti aiuterà nella crescita della carriera -
- Questo strumento si è evoluto continuamente con il passare del tempo e le nuove versioni hanno prodotto il supporto dell'architettura di microservizi, questa è l'architettura da seguire in tutti i progetti su larga scala come Netflix, tutto questo verrà gestito con Jenkins nel processo di costruzione.
Conclusione -
Jenkins è uno strumento CI / CD, open-source, compatibile con vari plugin, semplifica la vita quando la consegna del software deve essere eseguita su base agile.
Articoli consigliati
Questa è stata una guida a ciò che è Jenkins. Qui abbiamo discusso su come funziona, i vantaggi e la crescita della carriera di Jenkins. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -
- Come installare Jenkins
- Comandi Maven
- Alternative JIRA
- Che cos'è il selenio?
- Jenkins vs Hudson