Jenkins Git -integraatio - hyödyllinen jokaiselle DevOps Professionalille



Tässä blogissa käsitellään Gitin integrointia Jenkinsin kanssa. Siinä käsitellään myös Gitin integroinnin etuja Jenkinsin kanssa esittelyn kanssa.

on varmasti epätäydellinen ilman Jenkinsiä. Jenkins yhdessä Gitin kanssa on upea yhdistelmä. Joten tässä artikkelissa puhun Jenkins Git Integrationista ja sen eduista. Käsittelemämme vihjeet ovat seuraavat:

Aloitetaan siis ensimmäisestä aiheesta.



Mikä on Git - miksi Git Tuli olemassaoloon?

Me kaikki tiedämme, että 'välttämättömyys on kaikkien keksintöjen äiti'. Samoin Git ilmaantui täyttämään tietyt tarpeet, joita kehittäjät kohtaivat ennen Gitiä. Joten ottakaamme askel taaksepäin oppiaksemme kaikki versionhallintajärjestelmistä (VCS) ja siitä, miten Git syntyi.

Versionhallinta on asiakirjojen, tietokoneohjelmien, suurten verkkosivustojen ja muun tiedonkeruun muutosten hallinta.



VCS: tä on kahta tyyppiä:

  • Keskitetty versionhallintajärjestelmä (CVCS)

  • Hajautettu versionhallintajärjestelmä (DVCS)



Keskitetty VCS

Keskitetty versionhallintajärjestelmä (CVCS) käyttää keskuspalvelinta kaikkien tiedostojen tallentamiseen ja mahdollistaa tiimin yhteistyön. Se toimii yhdessä arkistossa, johon käyttäjät voivat käyttää suoraan keskuspalvelinta.

Katso alla olevasta kaaviosta parempi käsitys CVCS: stä:

Yllä olevan kaavion arkisto osoittaa keskuspalvelimen, joka voi olla paikallinen tai etäyhteys ja joka on kytketty suoraan jokaisen ohjelmoijan työasemaan.

Jokainen ohjelmoija voi poimia tai päivittää työasemat ja arkistossa olevat tiedot. He voivat myös tehdä muutoksia tietoihin tai tehdä arkistoon. Jokainen toimenpide suoritetaan suoraan arkistoon.

Vaikka näyttää olevan melko kätevää ylläpitää yhtä arkistoa, sillä on joitain merkittäviä haittoja. Jotkut niistä ovat:

  • Se ei ole paikallisesti käytettävissä, joten sinun on aina oltava yhteydessä verkkoon, jotta voit suorittaa minkä tahansa toiminnon.

  • Koska kaikki on keskitetty, joka tapauksessa keskuspalvelimen kaatuminen tai vioittuminen johtaa projektin kaikkien tietojen menettämiseen.

    heittää kaksinkertainen int

Tällöin hajautettu VCS ratkaisee ongelman.

Hajautettu VCS

Nämä järjestelmät eivät välttämättä luota keskuspalvelimeen kaikkien projektitiedostojen versioiden tallentamiseksi.Jaetussa VCS: ssä jokaisella avustajalla on paikallinen kopio tai 'klooni' päätietovarastosta. Täällä jokainen ylläpitää omaa paikallista arkistoa, joka sisältää kaikki päätietovarastossa olevat tiedostot ja metatiedot.

Ymmärrät sen paremmin viittaamalla alla olevaan kaavioon:

Kuten yllä olevasta kaaviosta näet, jokainen ohjelmoija ylläpitää paikallista tietovarastoa yksin, mikä on itse asiassa heidän kiintolevynsä olevan keskitetyn arkiston kopio tai klooni. He voivat sitouttaa ja päivittää paikallisen arkistonsa ilman häiriöitä.

He voivat päivittää paikalliset arkistot uusilla tiedoilla keskuspalvelimelta toiminnolla nimeltä Vedä 'Ja vaikuttavat päätietovaraston muutoksiin toiminnolla nimeltä työntää ”Heidän paikallisesta arkistostaan.

Yritetään nyt tietää Gitin määritelmästä.

  • Git on hajautettu versionhallintatyökalu, joka tukee hajautettuja epälineaarisia työnkulkuja tarjoamalla tietojen varmuuden laadukkaiden ohjelmistojen kehittämiseksi. Gitin kaltaiset työkalut mahdollistavat viestinnän kehitystyön ja operatiivisen ryhmän välillä.

  • Normaalisti, kun kehität suurta projektia, sinulla on valtava määrä yhteistyökumppaneita. Joten on erittäin tärkeää olla vuorovaikutuksessa yhteistyökumppaneiden kanssa muutettaessa projektia.

  • Gitin sitoutumisviesteillä on erittäin tärkeä rooli kommunikoinnissa joukkueen kesken. Viestinnän lisäksi tärkein syy Gitin käyttöön on, että sinulla on aina vakaa versio koodista mukanasi.

  • Siksi Gitillä on tärkeä rooli menestymisessä DevOpsissa.

Mikä on Jenkins?

Jenkins on Java-ohjelmassa kirjoitettu avoimen lähdekoodin automaatiotyökalu, joka sisältää jatkuvaa integraatiota varten rakennettuja laajennuksia. Jenkinsia käytetään jatkuvasti kehittämään ja testaamaan ohjelmistoprojekteja, mikä helpottaa kehittäjien integrointia projektiin ja helpottaa käyttäjien uutta koontiversiota. Sen avulla voit myös toimittaa ohjelmistoja jatkuvasti integroimalla suuren määrän testaus- ja käyttöönottotekniikoita.

Jenkinsin avulla organisaatiot voivat nopeuttaa ohjelmistokehitysprosessia automaation avulla. Jenkins integroi kaikenlaisia ​​kehityksen elinkaariprosesseja, mukaan lukien koontiversio, dokumentointi, testi, paketti, vaihe, käyttöönotto, staattinen analyysi ja paljon muuta.

Jenkins saavuttaa jatkuvan integraation laajennusten avulla. Laajennukset mahdollistavat eri DevOps-vaiheiden integroinnin. Jos haluat integroida tietyn työkalun, sinun on asennettava kyseisen työkalun laajennukset. Esimerkiksi Git, Maven 2 -projekti, Amazon EC2, HTML-julkaisija jne.

Jenkinsin etuja ovat:

  • Se on avoimen lähdekoodin työkalu, jolla on suuri yhteisön tuki.

  • Liian helppo asentaa.

  • Siinä on yli 1000 laajennusta työn helpottamiseksi. Jos laajennusta ei ole, voit koodata sen ja jakaa sen yhteisön kanssa.

  • Se on maksutonta.

    miten ohittaa viittaus java
  • Se on rakennettu Java: lla ja siten se on kannettava kaikille tärkeimmille alustoille.

Tiedät nyt, kuinka Jenkins voittaa perinteiset SDLC-puutteet. Alla olevassa taulukossa on vertailu ”Ennen ja jälkeen Jenkinsin”.

Ennen JenkinsiäJenkinsin jälkeen
Koko lähdekoodi rakennettiin ja testattiin sitten. Virheiden löytäminen ja korjaaminen rakennus- ja testivikojen sattuessa oli vaikeaa ja aikaa vievää, mikä puolestaan ​​hidastaa ohjelmiston toimitusta.Jokainen lähdekoodissa tehty sitoutuminen on rakennettu ja testattu. Joten koko lähdekoodin tarkistamisen sijaan kehittäjien on keskityttävä vain tiettyyn sitoutumiseen. Tämä johtaa usein uusiin ohjelmistojulkaisuihin.
Kehittäjien on odotettava testituloksiaKehittäjät tietävät jokaisen suorituksen testituloksen lähdekoodissa ajon aikana.
Koko prosessi on manuaalinenSinun tarvitsee vaintehdä muutoksia lähdekoodiin ja Jenkins automatisoi loppuprosessin puolestasi.

Miksi Jenkinsiä ja Gitiä käytetään yhdessä?

Kuten aiemmin keskusteltiin, Mennä on lähteen hallinnan johtaja. Siellä säilytät lähdekoodisi kaikkien ajan myötä tapahtuvien koodimuutosten seuraamiseksi ja versioiden perustason luomiseksi, kun ne ovat valmiita julkaisua varten.

Jenkins on toisaalta jatkuva integraatioratkaisu. Se on suunniteltu automatisoimaan suurin osa tehtävistä, jotka kehittäjän on tehtävä kehitettäessä uutta sovellusta (koodin laatutarkistukset, rakennus, rakennuksen artefaktien arkistointi, integraatiotestaus, käyttöönotto eri ympäristöihin jne.) Ilman CI-ratkaisua kehittäjä täytyy viettää paljon aikaa näiden toistuvien ei-tuottavien tehtävien suorittamiseen.

Edut:

  • Git ja Jenkins ovat molemmat erittäin voimakkaita, mutta suurella voimalla on suuri vastuu. On melko yleistä perustella tarpeeton määrä komplikaatio rakennusputkessa yksinkertaisesti siksi, että voit.
  • Vaikka Jenkinsillä on paljon hienoja temppuja hihassaan, Gitin ominaisuuksia on helppo hyödyntää, koska se tekee julkaisujen hallinnasta ja vianetsintä huomattavasti helpompaa ajan myötä.
  • Voimme tehdä tämän olemalla varovaisia ​​rakentamissamme koodiversioissa ja merkitsemällä ne asianmukaisesti. Tämä pitää paikkansa julkaisua koskevat tiedot lähellä koodia , toisin kuin luottaa Jenkinsin rakennenumeroihin tai muihin monikkoihin.
  • Suojaa Git-haaroja vähentää inhimillisten virheiden riskiä , ja mahdollisimman monien tehtävien automatisointi vähentää sitä, kuinka usein meidän on tunkeuduttava (tai odotettava) näitä ihmisiä.

Esimerkki:

Otetaan esimerkki uudesta ominaisuudesta verkkosovelluksessa. Kehittäjä tunnistetaan ja osoitetaan tehtävälle, hän ottaa nykyisen koodipohjan lähdeohjaimelta - sano, Git, tekee muutokset, suorittaa yksikötestauksen, varmistaa koodin laadun manuaalisesti ja tarkistaa uuden koodin takaisin Gitiin.

Sitten hänen on rakennettava koodi, otettava se käyttöön integraatioesimerkissä, suoritettava integraatiotestaus ja kun muutos näyttää tyydyttävältä, on esitettävä tuotekehityspyyntö. Jos meillä vain olisi minion hoitamaan tätä testausta, rakentamista, laatutarkistuksia ja käyttöönotto-osia, huono kehittäjä olisi voinut keskittyä paremmin niihin asioihin, joissa hän todella osaa - ominaisuuden logiikan toteuttamiseen ja parantamiseen.

Tämä kääpiö on Jenkins. Se toimii orkesterina kaikkien näiden toimintojen suorittamiseksi, kun muutos tarkistetaan lähteen hallintaan (Git), ja antaa siten kehittäjälle nopean palautteen siitä, ovatko tekemät muutokset riittävät tuotannon käyttöönottoon vai eivät.Se on erittäin joustava, avoimen lähdekoodin ja siinä on paljon laajennuksia, jotka voivat tehdä melkein mitä haluat.

Demo

Täällä näemme kuinka integroida Git Jenkinsin kanssa. Sinun on noudatettava 5 vaihetta:

1. Luo näyteohjelma:

Voit luoda minkä tahansa haluamasi esimerkkiohjelman, kuten Java tai Python tai minkä tahansa muun ohjelman. Tässä kirjoitamme yksinkertaisen Python-ohjelma joka tulostaa Hei, maailma!

2. Luo Jenkins-työ:

  • Täältä sinun täytyy ensin aloita Jenkins käyttämällä komentokehotetta.

  • Tätä varten sinun on ensin navigoitava järjestelmän Jenkins-sijaintiin ja käytettävä komentoa java -jar jenkins.war

  • Kun olet suorittanut tämän komennon, avaa selain ja siirry Jenkinsin kotisivulle linkin avulla paikallinen isäntä: 8080 . Tämä on oletusportin numero.

  • Avaa Jenkinsin kotisivu syöttämällä käyttäjänimi ja salasana.

  • Luo projekti napsauttamalla Uusi kohde ja kirjoita projektin nimi ja valitse Freestyle-projekti . Napsauta OK.

3. Lisää tämä ohjelma Githubiin:

  • Avaa git bash järjestelmässäsi. Navigoida ohjelman sijaintiin. Alusta tyhjä arkisto komennolla git init .

  • Käytä komentoa git lisää. lisätäksesi tiedoston työasemahakemistoalueelle.

  • Lisää nyt tiedosto paikalliseen arkistoon komennolla git sitoutu -m “demo.py-tiedosto lisätty” .

  • Nyt sinun täytyy työntää tämän tiedoston etätietovarastoon. Tätä varten siirry GitHub-tilillesi ja luo uusi julkinen arkisto. Kopioi nyt tämän arkiston sijainti ja siirry git bash -terminaaliin. Kirjoita komento tähän git kauko lisätä alkuperä . Koska olet nyt muodostanut yhteyden etätietovarastoon, voit nyt työntää koodisi sinne komennolla git push -u alkuperämaster. Vahvista tämä siirtymällä GitHub-tiliin ja päivittämällä sivu. Näet siellä lisätyn tiedoston.

4. Lisää Git-laajennus Jenkinsiin:

  • Siirry Jenkinsin kotisivulla osoitteeseen Hallitse Jenkinsia .

  • Napsauta sitten Hallitse laajennuksia . Täällä tarkista, että Git-laajennus on asennetussa osiossa. Jos se ei ole käytettävissä täällä, etsi se käytettävissä olevasta osiosta ja lataa se.

5. Määritä Jenkins-työ käynnistämään koontiversio:

  • Siirry Jenkins-projektiin, jonka loimme vaiheessa 2. Tässä lähdekoodin hallinta -osiossa valitse git ja kirjoita vaiheessa 3 luomasi julkisen arkiston linkki. Seuraava Koontitriggerit-osio , Klikkaa Poll SCM -vaihtoehto . Tässä Aikataulu-osassa sinun on syötettävä viisi tähtiä, jotka on erotettu välilyönnillä. Tämä ei ole muuta kuin cron-syntaksia työhösi. Tämä tarkoittaa, että Jenkins tarkistaa lähdekoodin muutokset joka minuutti ja jos muutoksia tapahtuu, se käynnistää Jenkins-rakennuksen.

  • Klikkaa Käytä ja sitten eteenpäin Tallentaa . Napsauta seuraavaksi projektisi kotisivulla Rakenna nyt . Tämä suorittaa projektin ja konsolilähdössä näet ohjelmalähdön Jenkins-työn tilan. Jos kaikki on kunnossa, se näkyy muodossa Menestys .

Joten näin tehdään Jenkins Git -integraatio. Tämän avulla olemme päässeet tämän Jenkins Git Integration -artikkelin loppuun. Toivottavasti olet nauttinut tästä artikkelista.

Nyt kun olet ymmärtänyt mitä Jenkins Git -integraatio on, tarkista tämä Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edureka DevOps -sertifiointikoulutuskurssi auttaa oppijoita ymmärtämään, mikä on DevOps, ja hankkimaan asiantuntemusta erilaisista DevOps-prosesseista ja työkaluista, kuten Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack ja GIT SDLC: n useiden vaiheiden automatisoimiseksi.

Onko sinulla kysymys meille? Mainitse se kommenttiosassa ja palaamme sinuun