Jenkins Git integracija - korisno za svakog stručnjaka za DevOps



Ovaj blog govori o integraciji Gita s Jenkinsom. Također se raspravlja o prednostima integracije Gita s Jenkinsom zajedno s demoom.

je zasigurno nepotpun bez Jenkinsa. Jenkins je zajedno s Gitom prekrasna kombinacija. Tako ću u ovom članku govoriti o Jenkins Git integraciji i njezinim prednostima. Naputci koje ćemo pokriti su sljedeći:

Počnimo s našom prvom temom.





Što je Git - Zašto Git Ušli u postojanje?

Svi znamo 'Nužnost je majka svih izuma'. Slično tome, Git se pojavio kako bi ispunio određene potrebe s kojima su se programeri suočavali prije Gita. Dakle, vratimo se korak unatrag da bismo saznali sve o sustavima za kontrolu verzija (VCS) i kako je Git nastao.

Kontrola verzija je upravljanje promjenama na dokumentima, računalnim programima, velikim web mjestima i ostalim zbirkama podataka.



Postoje dvije vrste VCS-a:

  • Centralizirani sustav za upravljanje verzijama (CVCS)

  • Distribuirani sustav kontrole verzija (DVCS)



Centralizirani VCS

Centralizirani sustav kontrole verzija (CVCS) koristi središnji poslužitelj za pohranu svih datoteka i omogućuje timsku suradnju. Radi na jednom spremištu kojem korisnici mogu izravno pristupiti središnjem poslužitelju.

Pogledajte donji dijagram da biste dobili bolju ideju o CVCS-u:

Spremište u gornjem dijagramu označava središnji poslužitelj koji može biti lokalni ili udaljeni i koji je izravno povezan sa svakom radnom stanicom programera.

Svaki programer može izdvojiti ili Ažuriraj njihove radne stanice s podacima koji su prisutni u spremištu. Također mogu izvršiti izmjene podataka ili počiniti u spremište. Svaka se operacija izvodi izravno na spremištu.

Iako se čini prilično prikladnim za održavanje jednog spremišta, on ima neke velike nedostatke. Neki od njih su:

  • To nije lokalno dostupno, što znači da uvijek trebate biti povezani s mrežom da biste izvršili bilo koju radnju.

  • Budući da je sve centralizirano, u svakom slučaju pada ili oštećenja središnjeg poslužitelja rezultirat će gubitkom cjelokupnih podataka projekta.

Tu distribuirani VCS rješava problem.

što znači prolazno u javi

Distribuirani VCS

Ti se sustavi ne moraju nužno oslanjati na središnji poslužitelj za pohranu svih verzija projektne datoteke.U distribuiranom VCS-u svaki suradnik ima lokalnu kopiju ili 'klon' glavnog spremišta. Ovdje svatko održava svoj vlastiti lokalni repozitorij koji sadrži sve datoteke i metapodatke prisutne u glavnom repozitoriju.

To ćete bolje razumjeti pozivanjem na donji dijagram:

Kao što možete vidjeti na gornjem dijagramu, svaki programer samostalno održava lokalno spremište, što je zapravo kopija ili klon središnjeg spremišta na njihovom tvrdom disku. Oni mogu urezivati ​​i ažurirati svoje lokalno spremište bez ikakvih smetnji.

Oni mogu ažurirati svoja lokalna spremišta novim podacima sa središnjeg poslužitelja operacijom koja se naziva „ Vuci 'I utječu na promjene u glavnom spremištu operacijom nazvanom' gurnuti ”Iz njihovog lokalnog spremišta.

Pokušajmo sada znati o definiciji Gita.

  • Git je alat za distribuciju distribuiranih verzija koji podržava distribuirane nelinearne tijekove rada pružajući sigurnost podataka za razvoj kvalitetnog softvera. Alati poput Gita omogućuju komunikaciju između razvojnog i operativnog tima.

  • Kad razvijate veliki projekt, obično imate ogroman broj suradnika. Stoga je vrlo važno imati komunikaciju između suradnika tijekom uvođenja promjena u projekt.

  • Poruke predavanja u Gitu igraju vrlo važnu ulogu u komunikaciji među timom. Osim komunikacije, najvažniji razlog korištenja Gita je taj što uz sebe uvijek imate stabilnu verziju koda.

  • Stoga Git igra vitalnu ulogu u uspjehu na DevOpsu.

Što je Jenkins?

Jenkins je alat za automatizaciju otvorenog koda napisan na Javi s dodacima izrađenim za potrebe kontinuirane integracije. Jenkins se koristi za kontinuirano stvaranje i testiranje vaših softverskih projekata, što olakšava razvojnim programerima integraciju promjena u projekt, a korisnicima olakšava dobivanje nove građe. Također vam omogućuje kontinuiranu isporuku softvera integriranjem s velikim brojem tehnologija za testiranje i postavljanje.

S Jenkinsom organizacije mogu ubrzati proces razvoja softvera automatizacijom. Jenkins integrira razvojne procese životnog ciklusa svih vrsta, uključujući izradu, dokumentiranje, testiranje, pakiranje, fazu, implementaciju, statičku analizu i još mnogo toga.

Jenkins postiže kontinuiranu integraciju uz pomoć dodataka. Dodaci omogućuju integraciju različitih faza DevOpsa. Ako želite integrirati određeni alat, morate instalirati dodatke za taj alat. Na primjer, Git, Maven 2 projekt, Amazon EC2, HTML izdavač itd.

za što se koriste nagios

Prednosti Jenkinsa uključuju:

  • To je alat otvorenog koda s velikom podrškom zajednice.

  • Prejednostavna za instalaciju.

  • Ima 1000+ dodataka za olakšavanje vašeg rada. Ako dodatak ne postoji, možete ga kodirati i podijeliti sa zajednicom.

  • Besplatno je.

  • Izgrađen je s Javom i stoga je prenosiv na sve glavne platforme.

Sada znate kako Jenkins prevladava tradicionalne SDLC nedostatke. Tablica u nastavku prikazuje usporedbu između 'Prije i poslije Jenkinsa'.

Prije JenkinsaNakon Jenkinsa
Izgrađen je i potom testiran cijeli izvorni kod. Lociranje i ispravljanje pogrešaka u slučaju neuspjeha izrade i testa bilo je teško i dugotrajno, što zauzvrat usporava proces isporuke softvera.Svako predavanje izvršeno u izvornom kodu je izgrađeno i testirano. Dakle, umjesto provjere cijelog izvornog koda, programeri se trebaju usredotočiti samo na određeni predaj. To dovodi do čestih novih izdanja softvera.
Programeri moraju pričekati rezultate ispitivanjaProgrameri znaju rezultat testiranja svakog izvršavanja u izvornom kodu u pokretu.
Cijeli postupak je ručanSamo trebateizvršite promjene u izvornom kodu i Jenkins će za vas automatizirati ostatak postupka.

Zašto se Jenkins i Git koriste zajedno?

Kao što je ranije spomenuto, Ići je upravitelj kontrole izvora. Tu čuvate izvorni kôd za praćenje svih promjena koda koji se događaju s vremenom i za uspostavljanje verzija kada budu spremne za objavljivanje.

Jenkins , s druge strane, rješenje je za kontinuiranu integraciju. Osmišljen je za automatizaciju većine zadataka koje programer mora obaviti tijekom razvijanja nove aplikacije (provjere kvalitete koda, izrada, arhiviranje artefakata gradnje, integracijsko testiranje, postavljanje u različita okruženja, itd.) Bez CI rješenja, programer mora potrošiti puno vremena radeći ove ponavljajuće neproduktivne zadatke.

Prednosti:

  • Git i Jenkins obojica su vrlo moćni, ali s velikom moći dolazi i velika odgovornost. Prilično je uobičajeno opravdati nepotrebnu količinu komplikacija u izgradnji cjevovoda jednostavno zato što možeš.
  • Iako Jenkins u rukavu ima puno urednih trikova, lako je iskoristiti značajke Gita, jer čini upravljanje izdanjima i praćenje grešaka znatno lakše tijekom vremena.
  • To možemo učiniti opreznim verzijama koda koje izrađujemo i odgovarajućim označavanjem. Ovo zadržava informacije vezane uz izdanje bliske kodu , za razliku od oslanjanja na Jenkinsove brojeve izrade ili druge nadimake.
  • Zaštita Git grana smanjuje rizik od ljudskih pogrešaka , a automatizacija što većeg broja zadataka smanjuje koliko često moramo gnjaviti (ili čekati) te ljude.

Primjer:

Uzmimo primjer nove značajke u web aplikaciji. Programer će biti identificiran i dodijeljen zadatku, on preuzima postojeću bazu kodova iz kontrole izvora - recimo, Git, unosi promjene, provodi jedinstveno testiranje, ručno osigurava kvalitetu koda i vraća novi kôd natrag u Git.

Zatim mora izgraditi kôd, implementirati ga u instancu integracije, pokrenuti integracijsko testiranje i nakon što se čini da je promjena zadovoljavajuća, podnijeti zahtjev za implementaciju produkcije. Sad, da barem imamo miniona koji će se pobrinuti za ovo testiranje, izgradnju, provjeru kvalitete i odjeljke za implementaciju, siromašni programer mogao bi se bolje usredotočiti na stvari u kojima je stvarno dobar - implementiranje i poboljšanje logike značajke.

Ovaj je poslužitelj Jenkins. Djeluje kao orkestrator za pokretanje svih ovih aktivnosti nakon što se promjena provjeri u nadzoru izvora (Git) i na taj način daje brzu povratnu informaciju programeru jesu li promjene koje je napravio dovoljno dobre za implementaciju proizvodnje ili ne.Izuzetno je fleksibilan, otvorenog koda i ima mnoštvo dodataka koji mogu učiniti gotovo sve što poželite.

Demo

Ovdje ćemo vidjeti kako integrirati Git s Jenkinsom. Postoji 5 koraka koje morate slijediti:

postavljanje pomrčine za javu

1. Stvorite uzorak programa:

Možete stvoriti bilo koji ogledni program koji želite, poput Jave ili Pythona ili bilo kojeg drugog programa. Ovdje ćemo napisati jednostavan Python program koji ispisuje Hello, World!

2. Stvorite Jenkinsov posao:

  • Ovdje prvo trebate započni Jenkins pomoću naredbenog retka.

  • Za to prvo trebate prijeći na mjesto Jenkins na vašem sustavu i upotrijebiti naredbu java -jar jenkins.rat

  • Nakon pokretanja ove naredbe otvorite web preglednik i idite na Jenkinsovu početnu stranicu pomoću veze lokalnihost: 8080 . Ovo je zadani broj porta.

  • Otvorite Jenkinsovu početnu stranicu unos korisničkog imena i lozinke.

  • Za stvaranje projekta kliknite na Nova stvar i unesite naziv projekta i odaberite Projekt slobodnog stila . Kliknite U redu.

3. Dodajte ovaj program u Github:

  • Otvori git bash na vašem sustavu. Navigacija na mjesto vašeg programa. Inicijalizirajte prazno spremište pomoću naredbe git init .

  • Koristite naredbu git dodaj. da biste datoteku dodali u upravno područje iz radnog imenika.

  • Sada dodajte datoteku u lokalno spremište pomoću naredbe git commit -m “dodana je datoteka demo.py” .

  • Sad moraš gurnuti ovu datoteku na udaljeno spremište. Za to idite na svoj GitHub račun i stvorite novo javno spremište. Sada kopirajte mjesto ovog spremišta i idite na git bash terminal. Ovdje upišite naredbu git remote dodaj podrijetlo . Budući da ste se sada povezali s udaljenim spremištem, sada tu možete gurnuti svoj kod pomoću naredbe git push -u master podrijetla. Da biste to provjerili, idite na GitHub račun i osvježite stranicu. Vidjet ćete tamo dodanu datoteku.

4. Dodajte dodatak Git u Jenkins:

  • Na Jenkinsovoj početnoj stranici idite na Upravljajte Jenkinsom .

  • Sljedeći klik na Upravljanje dodacima . Ovdje provjerite je li Git dodatak u instaliranom odjeljku. Ako ovdje nije dostupan, potražite ga u dostupnom odjeljku i preuzmite.

5. Konfigurirajte Jenkinsov posao za pokretanje gradnje:

  • Idite na projekt u Jenkinsu koji smo kreirali u koraku 2. Ovdje, u odjeljku Upravljanje izvornim kodom, odaberite git i unesite vezu javnog spremišta koje ste stvorili u koraku 3. Sljedeće u Odjeljak Izgradnja okidača , kliknite na Opcija SCM ankete . Ovdje u dijelu Raspored morate unijeti pet zvjezdica odvojenih razmakom. Ovo nije ništa drugo do cron sintaksa za vaš posao. To znači da će Jenkins svake minute provjeravati bilo kakve promjene u izvornom kodu, a ako dođe do bilo kakve promjene, to će pokrenuti Jenkinsovu izgradnju.

  • Kliknite na Prijavite se a zatim dalje Uštedjeti . Sljedeće na početnoj stranici vašeg projekta kliknite na Izgradi odmah . Ovo će pokrenuti projekt, a na izlazu konzole možete vidjeti izlaz vašeg programa status vašeg Jenkinsovog posla. Ako je sve u redu, prikazat će se kao Uspjeh .

Dakle, ovako se radi Jenkins Git integracija. Ovim smo došli do kraja ovog članka o integraciji Jenkins Git. Nadam se da ste uživali u ovom članku.

Sad kad ste shvatili što Jenkins Git integracija je, pogledajte ovo Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edureka DevOps certifikacijski tečaj pomaže učenicima da shvate što je DevOps i steknu stručnost u raznim DevOps procesima i alatima kao što su Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack i GIT za automatizaciju više koraka u SDLC-u.

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se