Jenkins Git-integratie - nuttig voor elke DevOps-professional



Deze blog gaat over de integratie van Git met Jenkins. Het bespreekt ook de voordelen van het integreren van Git met Jenkins samen met demo.

is zeker niet compleet zonder Jenkins. Jenkins is samen met Git een prachtige combinatie. Dus in dit artikel zal ik het hebben over Jenkins Git Integration en de voordelen ervan. De tips die we gaan behandelen zijn als volgt:

Dus laten we beginnen met ons eerste onderwerp.





Wat is Git - Waarom Git In het bestaan ​​gekomen?

We weten allemaal: 'Noodzaak is de moeder van alle uitvindingen'. Op dezelfde manier kwam Git tevoorschijn om bepaalde behoeften te vervullen waarmee de ontwikkelaars vóór Git te maken kregen. Dus laten we een stap terug doen om alles te leren over versiebeheersystemen (VCS) en hoe Git is ontstaan.

Versiebeheer is het beheer van wijzigingen in documenten, computerprogramma's, grote websites en andere verzameling van informatie.



Er zijn twee soorten VCS:

  • Gecentraliseerd versiebeheersysteem (CVCS)

  • Gedistribueerd versiebeheersysteem (DVCS)



Gecentraliseerde VCS

Een gecentraliseerd versiebeheersysteem (CVCS) gebruikt een centrale server om alle bestanden op te slaan en maakt teamsamenwerking mogelijk. Het werkt op een enkele opslagplaats waar gebruikers rechtstreeks toegang hebben tot een centrale server.

Raadpleeg het onderstaande diagram om een ​​beter idee te krijgen van CVCS:

De repository in het bovenstaande diagram geeft een centrale server aan die lokaal of op afstand kan zijn en die rechtstreeks is verbonden met elk van de werkstations van de programmeur.

Elke programmeur kan of bijwerken hun werkstations met de gegevens die in de repository aanwezig zijn. Ze kunnen ook wijzigingen aanbrengen in de gegevens of plegen naar de repository. Elke bewerking wordt rechtstreeks op de repository uitgevoerd.

Hoewel het redelijk handig lijkt om een ​​enkele repository te onderhouden, heeft het een aantal grote nadelen. Sommige ervan zijn:

  • Het is niet lokaal beschikbaar, wat betekent dat u altijd verbinding moet hebben met een netwerk om iets te kunnen doen.

  • Omdat alles gecentraliseerd is, zal in elk geval dat de centrale server crasht of beschadigd raakt, de volledige gegevens van het project verloren gaan.

Dit is waar Distributed VCS het probleem oplost.

Gedistribueerde VCS

Deze systemen zijn niet noodzakelijkerwijs afhankelijk van een centrale server om alle versies van een projectbestand op te slaan.In Distributed VCS heeft elke bijdrager een lokale kopie of 'kloon' van de hoofdrepository. Hier onderhoudt iedereen een eigen lokale repository die alle bestanden en metadata bevat die aanwezig zijn in de hoofdrepository.

U zult het beter begrijpen door te verwijzen naar het onderstaande diagram:

Zoals je in het bovenstaande diagram kunt zien, onderhoudt elke programmeur zelf een lokale repository, die in feite de kopie of kloon is van de centrale repository op zijn harde schijf. Ze kunnen hun lokale repository vastleggen en bijwerken zonder enige tussenkomst.

Ze kunnen hun lokale opslagplaatsen bijwerken met nieuwe gegevens van de centrale server door een bewerking genaamd ' Trekken 'En beïnvloeden wijzigingen in de hoofdrepository door een bewerking genaamd' Duwen ”Uit hun lokale repository.

Laten we nu proberen te weten wat de definitie van Git is.

  • Git is een gedistribueerde versiebeheertool die gedistribueerde niet-lineaire workflows ondersteunt door gegevensverzekering te bieden voor het ontwikkelen van kwaliteitssoftware. Tools zoals Git maken communicatie mogelijk tussen het ontwikkelingsteam en het operationele team.

  • Als u een groot project ontwikkelt, heeft u normaal gesproken een groot aantal medewerkers. Het is dus erg belangrijk om communicatie tussen de medewerkers te hebben tijdens het aanbrengen van wijzigingen in het project.

  • Commit-berichten in Git spelen een zeer belangrijke rol bij de communicatie tussen het team. Afgezien van communicatie, is de belangrijkste reden om Git te gebruiken dat je altijd een stabiele versie van de code bij je hebt.

  • Daarom speelt Git een cruciale rol bij het slagen bij DevOps.

Wat is Jenkins?

Jenkins is een open-source automatiseringstool geschreven in Java met plug-ins die zijn gebouwd voor continue integratiedoeleinden. Jenkins wordt gebruikt om uw softwareprojecten continu te bouwen en te testen, waardoor het gemakkelijker wordt voor ontwikkelaars om wijzigingen in het project te integreren en het voor gebruikers gemakkelijker wordt om een ​​nieuwe build te verkrijgen. Het stelt u ook in staat uw software continu te leveren door deze te integreren met een groot aantal test- en implementatietechnologieën.

Met Jenkins kunnen organisaties het softwareontwikkelingsproces versnellen door middel van automatisering. Jenkins integreert allerlei soorten ontwikkelingslevenscyclusprocessen, inclusief build, document, test, package, stage, deploy, statische analyse en nog veel meer.

Jenkins bereikt continue integratie met behulp van plug-ins. Plug-ins maken de integratie van verschillende DevOps-fasen mogelijk. Als u een bepaalde tool wilt integreren, moet u de plug-ins voor die tool installeren. Bijvoorbeeld Git, Maven 2-project, Amazon EC2, HTML-uitgever, etc.

Voordelen van Jenkins zijn onder meer:

  • Het is een open-source tool met geweldige community-ondersteuning.

  • Te gemakkelijk te installeren.

  • Het heeft meer dan 1000 plug-ins om uw werk te vergemakkelijken. Als een plug-in niet bestaat, kunt u deze coderen en delen met de community.

  • Het is gratis.

  • Het is gebouwd met Java en daarom is het draagbaar naar alle grote platforms.

U weet nu hoe Jenkins de traditionele SDLC-tekortkomingen overwint. De onderstaande tabel toont de vergelijking tussen 'Before en After Jenkins'.

Voordat JenkinsNa Jenkins
De volledige broncode is gebouwd en vervolgens getest. Het opsporen en oplossen van bugs in het geval van een mislukte build en test was moeilijk en tijdrovend, wat op zijn beurt het softwareleveringsproces vertraagt.Elke commit in de broncode wordt gebouwd en getest. Dus in plaats van de volledige broncode te controleren, hoeven ontwikkelaars zich alleen te concentreren op een bepaalde commit. Dit leidt tot frequente nieuwe softwareversies.
Ontwikkelaars moeten wachten op testresultatenOntwikkelaars kennen het testresultaat van elke commit die tijdens de uitvoering in de broncode wordt gemaakt.
Het hele proces is handmatigJe hoeft alleen maarvoer wijzigingen in de broncode uit en Jenkins zal de rest van het proces voor u automatiseren.

Waarom worden Jenkins en Git samen gebruikt?

Zoals eerder besproken, Gaan is een source control manager. Dat is waar u uw broncode bewaart voor het volgen van alle codewijzigingen die in de loop van de tijd plaatsvinden en om de versies te baseren wanneer ze klaar zijn voor release.

Jenkins aan de andere kant is het een oplossing voor continue integratie. Het is ontworpen om de meeste taken te automatiseren die een ontwikkelaar moet uitvoeren tijdens het ontwikkelen van een nieuwe applicatie (kwaliteitscontroles van de code, bouwen, archiveren van build-artefacten, integratietesten, implementatie in verschillende omgevingen, enz.) Zonder een CI-oplossing kan een ontwikkelaar moet veel tijd besteden aan het uitvoeren van deze repetitieve niet-productieve taken.

Voordelen:

  • Git en Jenkins zijn allebei erg krachtig, maar met grote kracht komt grote verantwoordelijkheid. Het is vrij gebruikelijk om een ​​onnodige hoeveelheid complicatie in een build-pijplijn gewoon omdat je het kunt.
  • Hoewel Jenkins veel handige trucs in petto heeft, is het gemakkelijk om de functies van Git te gebruiken, omdat het releasebeheer en het bijhouden van bugs aanzienlijk eenvoudiger na verloop van tijd.
  • We kunnen dit doen door voorzichtig te zijn met de versies van de code die we bouwen en ze op de juiste manier te taggen. Dit houdt release-gerelateerde informatie dicht bij de code , in tegenstelling tot het vertrouwen op Jenkins build-nummers of andere monikers.
  • Git-branches beschermen vermindert het risico op menselijke fouten , en door zoveel mogelijk taken te automatiseren, hoeven we die mensen minder vaak lastig te vallen (of op te wachten).

Voorbeeld:

Laten we het voorbeeld nemen van een nieuwe functie in een webtoepassing. Een ontwikkelaar zal worden geïdentificeerd en toegewezen aan de taak, hij neemt de bestaande codebase van de broncontrole - zeg Git, brengt zijn wijzigingen aan, voert eenheidstests uit, zorgt voor de codekwaliteit handmatig en controleert de nieuwe code terug in Git.

Vervolgens moet hij de code bouwen, deze implementeren in een integratie-instantie, integratietests uitvoeren en zodra de wijziging bevredigend lijkt, een verzoek indienen voor productie-implementatie. Als we nu maar een hand hadden gehad om te zorgen voor deze test-, bouw-, kwaliteitscontroles en implementatiesecties, had de arme ontwikkelaar zich beter kunnen concentreren op die dingen waar hij echt goed in is: de logica van de functie implementeren en verbeteren.

Deze minion is Jenkins. Het fungeert als een orkestrator om al deze activiteiten uit te voeren zodra de wijziging is ingecheckt in source control (Git) en geeft zo snel feedback aan de ontwikkelaar of de wijzigingen die hij heeft aangebracht goed genoeg zijn voor productie-implementatie of niet.Het is een extreem flexibele, open-source en heeft een heleboel plug-ins die bijna alles kunnen doen wat je maar wilt.

Demo

Hier zullen we zien hoe we Git kunnen integreren met Jenkins. Er zijn 5 stappen die u moet volgen:

1. Maak een voorbeeldprogramma:

U kunt elk voorbeeldprogramma maken dat u wilt, zoals Java of Python of een ander programma. Hier zullen we een eenvoudig schrijven Python-programma die Hallo, Wereld!

2. Maak een Jenkins-taak:

  • Hier moet je eerst start Jenkins met behulp van de opdrachtprompt.

  • Daarvoor moet u eerst naar de Jenkins-locatie op uw systeem navigeren en de opdracht gebruiken java -jar jenkins.war

  • Open na het uitvoeren van deze opdracht de webbrowser en ga met de link naar de startpagina van Jenkins localhost: 8080 . Dit is het standaard poortnummer.

  • Open de startpagina van Jenkins op het invoeren van de gebruikersnaam en het wachtwoord.

  • Om een ​​project aan te maken klikt u op Nieuw item en voer het Naam van het project en selecteer Freestyle-project . Klik op OK.

3. Voeg dit programma toe aan Github:

  • Open git bash op uw systeem. Navigeren naar de locatie van je programma. Initialiseer een lege repository met de opdracht git init .

  • Gebruik het commando git add. om het bestand vanuit de werkmap toe te voegen aan het staging-gebied.

  • Voeg nu het bestand toe aan de lokale repository met behulp van de opdracht git commit -m “demo.py bestand toegevoegd” .

    hoe php windows 10 te installeren
  • Nu moet je Duwen dit bestand naar de externe repository. Ga hiervoor naar uw GitHub-account en maak een nieuwe openbare repository aan. Kopieer nu de locatie van deze repository en ga naar git bash terminal. Typ hier het commando git remote add origin . Omdat je nu verbinding hebt gemaakt met de externe repository, kun je nu je code daarheen pushen met behulp van het commando git push -u oorsprong master. Om dit te verifiëren, ga naar GitHub-account en vernieuw de pagina. U ziet het bestand daar toegevoegd.

4. Voeg Git-plug-in toe in Jenkins:

  • Ga op de homepage van Jenkins naar Beheer Jenkins .

  • Klik vervolgens op Beheer plug-ins . Controleer hier de Git-plug-in in de geïnstalleerde sectie. Als het hier niet beschikbaar is, zoek het dan in het beschikbare gedeelte en download het.

5. Configureer de Jenkins-taak om de build te activeren:

  • Ga naar het project in Jenkins dat we in stap 2 hebben gemaakt. Hier in de sectie Broncodebeheer, selecteer git en voer de link in van de openbare repository die u in stap 3 hebt gemaakt. Volgende in het Build Triggers sectie , Klik op Poll SCM-optie . Hier in het Schedule-gedeelte moet u vijf sterretjes invoeren, gescheiden door een spatie. Dit is niets anders dan cron-syntaxis voor uw taak. Dit betekent dat Jenkins elke minuut controleert of er wijzigingen in de broncode zijn en als er een wijziging is, wordt de Jenkins-build geactiveerd.

  • Klik op Van toepassing zijn en dan verder Sparen . Klik vervolgens op de startpagina van uw project op Bouw nu . Hiermee wordt het project uitgevoerd en in de console-uitvoer kunt u zien dat uw programma de status van uw Jenkins-taak uitvoert. Als alles in orde is, wordt weergegeven als Succes .

Dus dit is hoe Jenkins Git Integration wordt gedaan. Hiermee zijn we aan het einde gekomen van dit artikel over Jenkins Git Integration. Ik hoop dat je dit artikel leuk vond.

Nu je hebt begrepen wat Jenkins Git-integratie is, kijk hier eens naar door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De Edureka DevOps Certification Training-cursus helpt leerlingen te begrijpen wat DevOps is en expertise op te doen in verschillende DevOps-processen en -tools zoals Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack en GIT voor het automatiseren van meerdere stappen in SDLC.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op