Integracija Jenkins Git - koristno za vsakega DevOps Professional



Ta blog govori o integraciji Gita z Jenkinsom. Obravnava tudi prednosti integracije Gita z Jenkinsom skupaj z demo.

je zagotovo nepopolna brez Jenkinsa. Jenkins je skupaj z Gitom čudovita kombinacija. V tem članku bom govoril o integraciji Jenkins Git in njenih prednostih. Nasveti, ki jih bomo pokrivali, so naslednji:

Začnimo torej z našo prvo temo.





Kaj je Git - Zakaj Git Prišel v obstoj?

Vsi vemo, da je nujnost mati vseh izumov. Podobno se je pojavil Git, ki je izpolnil nekatere potrebe, s katerimi so se razvijalci soočali pred Gitom. Torej, naredimo korak nazaj, če želimo izvedeti vse o sistemih za nadzor različic (VCS) in o tem, kako je Git nastal.

Nadzor različic je upravljanje sprememb dokumentov, računalniških programov, velikih spletnih strani in drugega zbiranja informacij.



Obstajata dve vrsti VCS:

  • Centralizirani sistem za nadzor različic (CVCS)

  • Distribuirani sistem za nadzor različic (DVCS)



Centralizirani VCS

Centralni sistem za nadzor različic (CVCS) uporablja centralni strežnik za shranjevanje vseh datotek in omogoča skupinsko sodelovanje. Deluje na enem samem repozitoriju, do katerega lahko uporabniki neposredno dostopajo do osrednjega strežnika.

Za boljšo predstavo o CVCS si oglejte spodnji diagram:

Skladišče v zgornjem diagramu označuje osrednji strežnik, ki je lahko lokalni ali oddaljeni, ki je neposredno povezan z vsako delovno postajo programerja.

Vsak programer lahko izvleče oz nadgradnja njihove delovne postaje s podatki, ki so v repozitoriju. Prav tako lahko spremenijo podatke oz zavezati v odlagališče. Vsaka operacija se izvede neposredno na odlagališču.

Čeprav se zdi zelo priročno vzdrževati eno skladišče, ima nekaj večjih pomanjkljivosti. Nekateri med njimi so:

  • To ni lokalno dostopno, kar pomeni, da morate biti vedno povezani v omrežje, da izvedete kakršno koli dejanje.

  • Ker je vse centralizirano, bo v vsakem primeru, ko se bo osrednji strežnik zrušil ali poškodovan, izgubil celotne podatke projekta.

Tukaj težavo reši Distributed VCS.

Porazdeljeni VCS

Ti sistemi se za shranjevanje vseh različic projektne datoteke ne zanašajo nujno na osrednji strežnik.V Distributed VCS ima vsak sodelavec lokalno kopijo ali 'klon' glavnega repozitorija. Tu ima vsak svoj lokalni repozitorij, ki vsebuje vse datoteke in metapodatke v glavnem repozitoriju.

Bolje ga boste razumeli s sklicevanjem na spodnji diagram:

Kot lahko vidite na zgornjem diagramu, vsak programer sam vzdržuje lokalni repozitorij, ki je dejansko kopija ali klon osrednjega repozitorija na trdem disku. Svoj lokalni repozitorij lahko prevzamejo in posodobijo brez vmešavanja.

Svojo lokalno shrambo lahko posodobijo z novimi podatki iz osrednjega strežnika z operacijo, imenovano » potegnite 'In vplivajo na spremembe glavnega repozitorija z operacijo, imenovano' potisnite ”Iz njihovega lokalnega skladišča.

Zdaj pa poskusimo vedeti o definiciji Git.

  • Git je porazdeljeno orodje za nadzor različic, ki podpira porazdeljene nelinearne delovne tokove z zagotavljanjem podatkov za razvoj kakovostne programske opreme. Orodja, kot je Git, omogočajo komunikacijo med razvojno in operacijsko skupino.

  • Ko razvijate velik projekt, imate običajno veliko sodelavcev. Zato je zelo pomembno, da med spremembami v projektu komuniciramo med sodelavci.

  • Sporočila predanih sporočil v Gitu igrajo zelo pomembno vlogo pri komunikaciji med ekipo. Poleg komunikacije je najpomembnejši razlog za uporabo Gita ta, da imate s seboj vedno stabilno različico kode.

  • Zato ima Git ključno vlogo pri uspehu na DevOpsu.

Kaj je Jenkins?

Jenkins je odprtokodno orodje za avtomatizacijo, napisano v Javi, z vtičniki za neprekinjeno integracijo. Jenkins se nenehno gradi in preizkuša vaše programske projekte, s čimer razvijalcem olajša vključevanje sprememb v projekt in uporabnikom olajša pridobivanje nove gradnje. Omogoča vam tudi nenehno dostavo programske opreme z integracijo z velikim številom tehnologij za testiranje in uvajanje.

Z Jenkinsom lahko organizacije z avtomatizacijo pospešijo postopek razvoja programske opreme. Jenkins vključuje procese življenjskega cikla vseh vrst, vključno z gradnjo, dokumentiranjem, preskusom, paketom, fazo, uvajanjem, statično analizo in še veliko več.

Jenkins neprekinjeno integracijo doseže s pomočjo vtičnikov. Vtičniki omogočajo integracijo različnih stopenj DevOps. Če želite integrirati določeno orodje, morate namestiti vtičnike za to orodje. Na primer Git, projekt Maven 2, Amazon EC2, založnik HTML itd.

Prednosti Jenkinsa vključujejo:

  • Je odprtokodno orodje z veliko podporo skupnosti.

  • Preprosta namestitev.

  • Ima 1000+ vtičnikov, ki vam olajšajo delo. Če vtičnik ne obstaja, ga lahko kodirate in delite s skupnostjo.

  • Brezplačno.

  • Zgrajen je z Javo in je zato prenosljiv na vse glavne platforme.

Zdaj veste, kako Jenkins premaguje tradicionalne pomanjkljivosti SDLC. Spodnja tabela prikazuje primerjavo med 'Pred in po Jenkinsu'.

Pred JenkinsomPo Jenkinsu
Celotna izvorna koda je bila zgrajena in nato preizkušena. Iskanje in odpravljanje napak v primeru okvare gradnje in preizkusa je bilo težko in dolgotrajno, kar posledično upočasni postopek dostave programske opreme.Vsak prevzem v izvorni kodi je zgrajen in preizkušen. Namesto preverjanja celotne izvorne kode se morajo razvijalci osredotočiti le na določeno odobritev. To vodi do pogostih izdaj nove programske opreme.
Razvijalci morajo počakati na rezultate testovRazvijalci poznajo testne rezultate vsakega izvajanja v izvorni kodi med izvajanjem.
Celoten postopek je ročenSamo treba jeizvedite spremembe izvorne kode in Jenkins bo za vas avtomatiziral preostali postopek.

Zakaj se Jenkins in Git uporabljata skupaj?

Kot smo že omenili, Pojdi je upravitelj nadzora virov. Tam hranite izvorno kodo za sledenje vsem spremembam kode, ki se zgodijo skozi čas, in za osnovno različico, ko so pripravljene za izdajo.

Jenkins , po drugi strani pa je neprekinjena integracijska rešitev. Zasnovan je za avtomatizacijo večine nalog, ki jih mora razvijalec opraviti med razvojem nove aplikacije (preverjanje kakovosti kode, gradnja, arhiviranje artefaktov gradnje, integracijsko testiranje, uvajanje v različna okolja itd.) Brez rešitve CI razvijalec mora porabiti veliko časa za opravljanje teh ponavljajočih se neproduktivnih nalog.

Prednosti:

  • Git in Jenkins sta zelo močna, toda z veliko močjo prihaja velika odgovornost. Precej pogosto je upravičiti nepotrebno količino zaplet v gradbenem cevovodu preprosto zato, ker lahko.
  • Čeprav ima Jenkins v rokavu veliko lepih trikov, je funkcije Gita enostavno izkoristiti, saj omogoča upravljanje izdaje in sledenje napakam bistveno lažje čez čas.
  • To lahko storimo tako, da pazimo na različice kode, ki jih sestavljamo, in jih ustrezno označimo. To ohranja informacije o izdaji blizu kode , v nasprotju z zanašanjem na številke zgradbe Jenkins ali druga imena.
  • Zaščita vej Git zmanjšuje tveganje za človeške napake , in avtomatizacija čim večjega števila nalog zmanjša, kako pogosto moramo te ljudi moti (ali čakati).

Primer:

Vzemimo primer nove funkcije v spletni aplikaciji. Razvijalec bo prepoznan in dodeljen nalogi, vzame obstoječo kodno bazo iz izvorne kontrole - recimo, Git, izvede svoje spremembe, izvede enotno testiranje, ročno zagotovi kakovost kode in preveri novo kodo nazaj v Git.

Nato mora zgraditi kodo, jo razporediti v primerek integracije, zagnati integracijsko testiranje in ko se zdi, da je sprememba zadovoljiva, sprožiti zahtevo za uvedbo produkcije. Zdaj, če bi le imeli minjona, ki bi poskrbel za to testiranje, gradnjo, preverjanje kakovosti in odseke za uvajanje, bi se slabi razvijalec lahko bolj osredotočil na tiste stvari, v katerih je res dober - izvajanje in izboljšanje logike funkcije.

Ta sluga je Jenkins. Ko je sprememba preverjena v nadzoru vira (Git), deluje kot orkestrator, da zažene vse te dejavnosti in tako hitro posreduje povratne informacije razvijalcu, ali so spremembe, ki jih je naredil, dovolj dobre za uvajanje produkcije ali ne.Je izredno prilagodljiv, odprtokoden in vsebuje veliko vtičnikov, ki lahko naredijo skoraj vse, kar si želite.

Predstavitev

Tu bomo videli, kako integrirati Git z Jenkinsom. Upoštevati morate pet korakov:

1. Ustvarite vzorčni program:

Ustvarite lahko kateri koli vzorec programa, ki ga želite, na primer Java ali Python ali kateri koli drug program. Tukaj bomo napisali preprosto Python program ki se natisne Zdravo, svet!

2. Ustvarite Jenkinsovo delovno mesto:

  • Tukaj najprej morate začni Jenkins z uporabo ukaznega poziva.

  • Za to se morate najprej pomakniti do lokacije Jenkins v vašem sistemu in uporabiti ukaz java -jar jenkins.war

  • Po zagonu tega ukaza odprite spletni brskalnik in s povezavo pojdite na Jenkinsovo domačo stran localhost: 8080 . To je privzeta številka vrat.

    java sort arraylist celih števil
  • Odprite Jenkinsovo domačo stran avtorja vnos uporabniškega imena in gesla.

  • Za ustvarjanje projekta kliknite Nov izdelek in vnesite Ime Projekta in izberite Projekt prostega sloga . Kliknite V redu.

3. Dodajte ta program v Github:

  • Odpri git bash v vašem sistemu. Krmarite na mesto vašega programa. S pomočjo ukaza inicializirajte prazno repozitorij git init .

  • Uporabite ukaz git add. če želite datoteko dodati v delovno področje iz delovnega imenika.

  • Zdaj dodajte datoteko v lokalni repozitorij z ukazom git commit -m “dodana je datoteka demo.py” .

  • Zdaj moraš potisnite to datoteko v oddaljeno repozitorij. Za to pojdite na svoj račun GitHub in ustvarite novo javno skladišče. Zdaj kopirajte lokacijo tega repozitorija in pojdite na terminal git bash. Tu vnesite ukaz git remote dodaj izvor . Ker ste se zdaj povezali z oddaljenim skladiščem, lahko zdaj s pomočjo ukaza tja potisnete svojo kodo git push -u izvorni mojster. Če želite to preveriti, pojdite na račun GitHub in osvežite stran. Videli boste tam dodano datoteko.

4. Dodajte vtičnik Git v Jenkins:

  • Na Jenkinsovi domači strani pojdite na Upravljajte Jenkinsa .

  • Naslednji klik na Upravljanje vtičnikov . Tukaj preverite, ali je v nameščenem oddelku nameščen vtičnik Git. Če tukaj ni na voljo, ga poiščite v razdelku, ki je na voljo, in ga prenesite.

5. Konfigurirajte Jenkinsovo nalogo, da sproži gradnjo:

  • Pojdite na projekt v Jenkinsu, ki smo ga ustvarili v koraku 2. Tu v razdelku Upravljanje izvorne kode, izberite git in vnesite povezavo do javnega repozitorija, ki ste ga ustvarili v koraku 3. Nato v Odsek Build Triggers , kliknite na Možnost ankete SCM . Tukaj v delu Razpored morate vnesti pet zvezdic, ločenih s presledkom. To ni nič drugega kot sintaksa cron za vaše delo. To pomeni, da bo Jenkins vsako minuto preverjal morebitne spremembe izvorne kode in če bo prišlo do kakšne spremembe, bo sprožil gradnjo Jenkinsa.

  • Kliknite na Prijavite se in nato naprej Shrani . Nato na domači strani projekta kliknite Zgradite zdaj . S tem boste zagnali projekt, v izhodu konzole pa boste videli, kako izhod vašega programa prikazuje vaše delo v Jenkinsu. Če je vse v redu, bo prikazano kot Uspeh .

Tako je narejena integracija Jenkins Git. S tem smo prišli do konca tega članka o integraciji Jenkins Git. Upam, da ste uživali v tem članku.

Zdaj, ko ste že razumeli kaj Jenkins Git integracija je, preverite to Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Tečaj Edureka DevOps Certification Training pomaga učencem, da razumejo, kaj je DevOps, in pridobijo strokovno znanje v različnih procesih in orodjih DevOps, kot so Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack in GIT za avtomatizacijo več korakov v SDLC.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili