Wat is Jenkins?

  • Jenkins is een continue integratie-automatiseringstool (open source) die wordt geïnstalleerd op de server waarop wordt gebouwd. Continue integratie verwijst naar een proces waarbij ontwikkelaars hun code vastleggen in een algemeen gemaakte repository zodra ze de ontwikkeling hebben voltooid.
  • In het CI / CD-proces resulteert dit ook in verhoogde overhead en daarom hebben we pijpleidingen in Jenkins om de gebruikers en rechten die aan hen zijn getagd te onderhouden. Hetzelfde geldt voor toenemende projecten.
  • Zodra het gebouw toeneemt, neemt de overeenkomstige behoefte toe om testagenten samen met hun onderhoud te creëren.

Definitie van Jenkins -

  • De definitie voor Jenkins door Jenkins.io is als volgt -

"Jenkins is een onafhankelijke, open-source automatiseringsserver die kan worden gebruikt voor het automatiseren van allerlei taken met betrekking tot het bouwen, testen en leveren of implementeren van software".

  • Dus wanneer het concept van continue integratie of continue implementatie wordt geïntroduceerd, komen tools zoals Jenkins en cirkels in beeld. Maar hier zouden we alleen over Jenkins praten.

Jenkins begrijpen -

  • Continue integratiepijplijn is een reeks opeenvolgende of parallelle taken, deze taken zijn ontworpen om een ​​reeks taken uit te voeren die worden geconfigureerd met behulp van de GUI-interface.
  • Omdat het moeilijk werd om het toenemende aantal projecten te handhaven, te bouwen, revisies en kopieën te maken, werd het concept van de Jenkins-pijplijn geïntroduceerd. Deze pijpleiding wordt jenkinsbestand genoemd.
  • Jenkins ondersteunt ook de docker en kubernetes zoals technologieën waarop microservices worden uitgevoerd.
  • Soms verschijnen er bepaalde problemen, zoals traagheid vanwege het enorme aantal logs dat wordt gegenereerd.
  • Jenkins kan leiden tot een hoog CPU-gebruik, evenredig met het aantal gebruikers dat toegang heeft tot de Jenkins.
  • Jenkins is verticaal (vereist opschaling van hardware) en horizontaal schaalbaar (vereist meerdere Jenkins-masters).
  • Het is te zien dat het fijn is om een ​​enkele Jenkins-master te hebben, maar de afweging moet worden gemaakt tussen de beschikbaarheid en het gebruiksgemak, want in het geval dat de enkele master uitvalt, zal het de business stoppen.
  • Jenkins-slaven dragen in gelijke mate bij aan het testen samen met het gebouw, Jenkins biedt het concept van parallelle testen die ook de pijplijn sneller maken.
  • Hoge beschikbaarheid wordt geboden in combinatie met failover-afhandeling met primaire en secundaire systemen.

Hoe Jenkins werkt -

Voordat u met Jenkins begint te werken, zijn er bepaalde voorwaarden waaraan moet worden voldaan.

De aanbevolen hardware is als volgt -

  1. RAM> = 1 GB
  2. Drive Space> = 50 GB zou voldoende zijn.

De software-vereisten zijn als volgt-

  1. Windows / Linux (bij voorkeur)
  2. JDK 8
  3. Servlet 3.1-conforme webcontainers moeten aanwezig zijn.

Er zijn twee architecturen waarin we het ontwerp kunnen maken -

  1. Meester-slavenarchitectuur
  2. Master-master architectuur
  • We kunnen de slave-knooppunten instellen vanaf de pagina "Nodes beheren". Geef vervolgens de knooppunten en hun namen op, stel vervolgens de eigenschappen van knooppunten in, koppel slaven aan meesters en start vervolgens de slavenknooppunten.
  • Er zijn bepaalde basistechnologieën die er zullen zijn -
  1. Node pakketbeheerder en GIT
  2. Eclipse IDE en Maven
  3. Database
  4. Junit of seleniumachtige testtools voor geautomatiseerd testen
  5. Elke omgeving zoals Docker (bij voorkeur) zou doen.

Het werkt in drie fasen - Prebuild-acties, Build-acties en Post-build-acties

In de PreBuild-acties - Er zijn JS-minimalizers om de code te minimaliseren en te comprimeren voordat deze in de build wordt geplaatst, dit gebeurt met pre-build plug-ins. Samen met deze mierenbouwer kan in vereiste gevallen worden opgeroepen, vensterbatches, shell-opdrachten worden uitgevoerd en maven-doelen kunnen worden opgeroepen om de configuratiebestanden te leveren.

De voorgebouwde plug-ins doen code push, polling, compileren, verpakken en publiceren.

In de fase Build-acties - de code die in deze fase uit de vorige fase is ingediend, wordt gecompileerd en getest.

In de Post Build-fase - hier worden codes gearchiveerd naar de inzetbare formaten en ten slotte worden ze gepusht.

Waarom zullen we Jenkins gebruiken -

  • Compatibel om de microservices te implementeren met kubernetes en docker
  • Het volgende applicatietijdperk zou alleen bestaan ​​uit op microservices gebaseerde ontwikkeling, omdat de behoefte aan schaalbaarheid en beschikbaarheid voor bepaalde services alleen ontstaat in maximale applicatiescenario's. Dus de implementaties en services kunnen op een geautomatiseerde manier worden gepusht met Jenkins, u hoeft alleen shell-scripts in de invoer te geven en het kan de rest van de taak voor u doen.
  • De pijplijn wordt ondersteund.

Wat kunt u doen met Jenkins -

  • Maak een proces in twee architecturen zoals hierboven vermeld.
  • Als u slechts één master wilt, kunt u die aanpak volgen, als u de beschikbaarheidsbeperkingen moet matchen, kunt u met veel masters werken.
  • Er zijn veel open-source plug-ins om meerdere taken op een geautomatiseerde manier af te handelen.
  • Op monolithische of op microservices gebaseerde toepassingen worden goed ondersteund.

Voordelen van Jenkins -

  1. Het is een open source en continue integratieserver van nature.
  2. Jenkins voert nu een pijpleiding.
  3. De bezorgomgeving wordt nu vanuit elke taal geleverd.
  4. Het productleveringsproces wordt sneller en volgt daardoor het agile model in nauwe samenhang.
  5. Jenkins is een CI / CD-tool.
  6. Functies zoals op rollen gebaseerd toegangsbeheer worden geboden.
  7. Jenkins is schaalbaar waardoor problemen met beschikbaarheid en schaalbaarheid kunnen worden opgelost.
  8. Gedistribueerde teams kunnen werken en het is nu eenvoudig te beheren.
  9. Containerondersteuning is er.
  10. De LDAP-server is een integraal onderdeel van de architectuur.
  11. Jenkins 2.0 is ook achterwaarts compatibel.
  12. Configuratiepagina's voor opdrachtpagina's zijn op een geïmproviseerde manier opgekomen met Jenkins 2.0

Waarom hebben we Jenkins nodig -

  • Voor CI / CD-proces
  • Deze processen kunnen op een geautomatiseerde manier worden ontworpen, codeerders plegen de code, bouwen met bijbehorende nieuwe revisies worden gemaakt met slechts een klik (uitvoeren van de gegeven scripts).
  • Wordt goed ondersteund door open-source plug-ins en rapportagetools zoals Ant, Maven, Gradle, BitBucket, NodeJs, etc.

Wie is het juiste publiek om Jenkins te leren -

  • Iedereen in de rol van DevOps zou deze tool graag willen gebruiken voor het automatiseren van het bouwproces.
  • De beginnende webontwikkelaars die op zoek zijn naar een carrière als DevOps zullen weten hoe deze tool werkt en hoe we het build-creatieproces kunnen configureren.

Hoe deze technologie u helpt bij de groei van uw carrière -

  • Deze tool is continu met de tijd geëvolueerd en nieuwe versies hebben ondersteuning voor architectuur van microservices bedacht, dit is de architectuur die moet worden gevolgd in alle grootschalige projecten zoals Netflix, dit alles zal worden behandeld met Jenkins in het bouwproces.

Conclusie -

Jenkins is een CI / CD-tool, open-source, compatibel met verschillende plug-ins, maakt het leven gemakkelijk wanneer softwarelevering op een agile basis moet worden uitgevoerd.

Aanbevolen artikelen

Dit is een gids geweest voor wat Jenkins is. Hier hebben we besproken hoe het werkt, voordelen en de carrièregroei van Jenkins. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Hoe Jenkins te installeren
  2. Maven Commands
  3. JIRA-alternatieven
  4. Wat is Selenium?
  5. Jenkins vs Hudson