Pagsasama ni Jenkins Git - Kapaki-pakinabang para sa Bawat Propesyonal ng DevOps



Tinalakay ng blog na ito ang tungkol sa pagsasama ng Git kay Jenkins. Tinalakay din nito ang mga pakinabang ng pagsasama ng Git kay Jenkins kasama ang demo.

ay tiyak na hindi kumpleto nang wala si Jenkins. Si Jenkins kasama si Git ay isang kahanga-hangang kumbinasyon. Kaya sa artikulong ito, pag-uusapan ko ang tungkol sa Jenkins Git Integration at mga pakinabang nito. Ang mga pahiwatig na tatalakayin namin ay ang mga sumusunod:

Kaya't magsimula tayo sa ating unang paksa.





Ano ang Git - Bakit Git Dumating sa Umiiral?

Alam nating lahat na 'Ang pangangailangan ay ina ng lahat ng mga imbensyon'. Katulad nito, lumitaw si Git upang matupad ang ilang mga kinakailangang hinarap ng mga developer bago ang Git. Kaya, kumuha tayo ng isang hakbang pabalik upang malaman ang lahat tungkol sa Mga Sistema ng Control ng Bersyon (VCS) at kung paano nagkaroon ng Git.

Pagkontrol sa Bersyon ay ang pamamahala ng mga pagbabago sa mga dokumento, programa sa computer, malalaking website at iba pang koleksyon ng impormasyon.



Mayroong dalawang uri ng VCS:

  • Centralized Version Control System (CVCS)

  • Ipinamahaging Bersyon Control System (DVCS)



Sentralisadong VCS

Ang isang sentralisadong bersyon ng control system (CVCS) ay gumagamit ng isang gitnang server upang maiimbak ang lahat ng mga file at nagbibigay-daan sa pakikipagtulungan ng koponan. Gumagana ito sa isang solong imbakan kung saan ang mga gumagamit ay maaaring direktang ma-access ang isang gitnang server.

Mangyaring mag-refer sa diagram sa ibaba upang makakuha ng isang mas mahusay na ideya ng CVCS:

Ang repository sa diagram sa itaas ay nagpapahiwatig ng isang gitnang server na maaaring lokal o remote na direktang konektado sa bawat isa sa mga workstation ng programmer.

Ang bawat programmer ay maaaring kumuha o pag-update ang kanilang mga workstation na may data na naroroon sa lalagyan. Maaari rin silang gumawa ng mga pagbabago sa data o mangako sa imbakan. Ang bawat operasyon ay ginaganap nang direkta sa lalagyan.

Kahit na tila medyo maginhawa upang mapanatili ang isang solong imbakan, mayroon itong ilang pangunahing mga sagabal. Ang ilan sa kanila ay:

  • Hindi ito magagamit sa lokal na nangangahulugang palagi kang kailangang maikonekta sa isang network upang maisagawa ang anumang pagkilos.

  • Dahil ang lahat ay sentralisado, sa anumang kaso ng gitnang server na nag-crash o nasira ay magreresulta sa pagkawala ng buong data ng proyekto.

Dito malulutas ng Distribution VCS ang problema.

Ipinamahagi ang VCS

Ang mga sistemang ito ay hindi kinakailangang umaasa sa isang gitnang server upang maiimbak ang lahat ng mga bersyon ng isang file ng proyekto.Sa Ipinamahaging VCS, ang bawat nag-ambag ay mayroong isang lokal na kopya o 'clone' ng pangunahing lalagyan. Dito pinapanatili ng bawat isa ang kanilang lokal na lalagyan na naglalaman ng lahat ng mga file at metadata na naroroon sa pangunahing lalagyan.

Mas mauunawaan mo ito sa pamamagitan ng pagtukoy sa diagram sa ibaba:

Tulad ng nakikita mo sa diagram sa itaas, ang bawat programmer ay nagpapanatili ng isang lokal na imbakan sa sarili nitong, na talagang ang kopya o clone ng gitnang lalagyan sa kanilang hard drive. Maaari silang gumawa at mag-update ng kanilang lokal na imbakan nang walang anumang pagkagambala.

Maaari nilang i-update ang kanilang mga lokal na repository na may bagong data mula sa gitnang server sa pamamagitan ng isang operasyon na tinatawag na ' hilahin 'At nakakaapekto sa mga pagbabago sa pangunahing lalagyan ng isang operasyon na tinatawag na' itulak ”Mula sa kanilang lokal na repository.

Subukan nating malaman ngayon ang tungkol sa kahulugan ng Git.

  • Ang Git ay isang ipinamamahagi na tool sa pagkontrol sa bersyon na sumusuporta sa naipamahagi na mga di-linear na daloy ng trabaho sa pamamagitan ng pagbibigay ng katiyakan ng data para sa pagbuo ng kalidad ng software. Ang mga tool tulad ng Git ay nagbibigay-daan sa komunikasyon sa pagitan ng pag-unlad at ng koponan ng pagpapatakbo.

  • Karaniwan kapag bumubuo ka ng isang malaking proyekto mayroon kang isang malaking bilang ng mga tagatulong. Kaya't napakahalaga na magkaroon ng komunikasyon sa pagitan ng mga nagtutulungan habang gumagawa ng mga pagbabago sa proyekto.

  • Ang mga pangako na mensahe sa Git ay may mahalagang papel sa pakikipag-usap sa koponan. Bukod sa komunikasyon, ang pinakamahalagang dahilan upang magamit ang Git ay palagi kang mayroong isang matatag na bersyon ng code sa iyo.

  • Samakatuwid, si Git ay may mahalagang papel sa pagtagumpay sa DevOps.

Ano si Jenkins?

Ang Jenkins ay isang open-source na tool sa pag-aautomat na nakasulat sa Java na may mga plugin na itinayo para sa Patuloy na mga layunin ng pagsasama. Ginamit ang Jenkins upang buuin at subukan ang iyong mga proyekto sa software na patuloy na ginagawang madali para sa mga developer na isama ang mga pagbabago sa proyekto, at ginagawang madali para sa mga gumagamit na makakuha ng isang sariwang build. Pinapayagan ka rin nitong patuloy na maihatid ang iyong software sa pamamagitan ng pagsasama sa isang malaking bilang ng mga teknolohiya sa pagsubok at paglawak.

Sa pamamagitan ni Jenkins, maaaring mapabilis ng mga samahan ang proseso ng pag-unlad ng software sa pamamagitan ng pag-aautomat. Isinasama ni Jenkins ang mga proseso ng pag-ikot ng buhay ng lahat ng mga uri, kabilang ang pagbuo, dokumento, pagsubok, pakete, yugto, pag-deploy, static na pagtatasa at marami pa.

Nakamit ni Jenkins ang Patuloy na Pagsasama sa tulong ng mga plugin. Pinapayagan ng mga plugin ang pagsasama ng iba't ibang mga yugto ng DevOps. Kung nais mong isama ang isang partikular na tool, kailangan mong i-install ang mga plugin para sa tool na iyon. Halimbawa ng Git, Maven 2 na proyekto, Amazon EC2, HTML publisher, atbp.

Kabilang sa mga kalamangan ni Jenkins ang:

  • Ito ay isang tool na bukas na mapagkukunan na may mahusay na suporta sa pamayanan.

  • Napakadaling i-install.

  • Mayroon itong 1000+ na mga plugin upang magaan ang iyong trabaho. Kung walang isang plugin, maaari mo itong i-code at ibahagi ito sa komunidad.

  • Ito ay walang gastos.

  • Ito ay binuo gamit ang Java at samakatuwid, ito ay portable sa lahat ng mga pangunahing platform.

Alam mo na ngayon kung paano tinalo ng Jenkins ang tradisyunal na mga pagkukulang ng SDLC. Ipinapakita ng talahanayan sa ibaba ang paghahambing sa pagitan ng 'Bago at Pagkatapos ng Jenkins'.

Bago si JenkinsPagkatapos ni Jenkins
Ang buong source code ay itinayo at pagkatapos ay nasubukan. Ang paghanap at pag-aayos ng mga bug sa kaganapan ng pagbuo at pagkabigo sa pagsubok ay mahirap at gugugol ng oras, na magpapabagal sa proseso ng paghahatid ng software.Ang bawat komit na ginawa sa source code ay binuo at nasubok. Kaya, sa halip na suriin ang buong mga developer ng code ng mapagkukunan ay kailangan lamang tumuon sa isang partikular na pagbibigay. Humahantong ito sa madalas na mga bagong paglabas ng software.
Kailangang maghintay ang mga developer para sa mga resulta sa pagsubokAlam ng mga developer ang resulta ng pagsubok ng bawat komit na ginawa sa source code sa pagtakbo.
Manwal ang buong prosesoKailangan mo langgumawa ng mga pagbabago sa source code at i-automate ni Jenkins ang natitirang proseso para sa iyo.

Bakit ginamit magkasama sina Jenkins at Git?

Tulad ng tinalakay kanina, Punta ka na ay isang manager ng mapagkukunan ng mapagkukunan. Iyon ang pinapanatili mo ang iyong source code para sa pagsubaybay sa lahat ng mga pagbabago sa code na nangyayari sa paglipas ng panahon at upang baseline ang mga bersyon kapag handa na silang palayain.

Jenkins , sa kabilang banda, ay isang tuloy-tuloy na solusyon sa pagsasama. Ito ay idinisenyo upang awtomatiko ang karamihan ng mga gawain na dapat gawin ng isang developer habang bumubuo ng isang bagong aplikasyon (mga pagsusuri sa kalidad ng code, pagbuo, pag-archive ng mga build ng artifact, pagsubok sa pagsasama, pag-deploy sa iba't ibang mga kapaligiran, atbp.) Nang walang solusyon sa CI, isang developer kailangang gumugol ng maraming oras sa paggawa ng mga paulit-ulit na hindi gawaing gawaing ito.

Mga kalamangan:

  • Sina Git at Jenkins ay parehong napakalakas, ngunit may malaking lakas ay nagmumula sa malaking responsibilidad. Ito ay medyo karaniwan upang bigyang-katwiran ang isang hindi kinakailangang halaga ng komplikasyon sa isang build pipeline simpleng dahil kaya mo.
  • Habang si Jenkins ay may maraming mga maayos na trick up ang kanyang manggas, madali itong masulit ang mga tampok ng Git, dahil ginagawa itong pamamahala sa paglabas at mas madali ang pagsubaybay sa bug sa paglipas ng panahon.
  • Magagawa natin ito sa pamamagitan ng pag-iingat tungkol sa mga bersyon ng code na nabubuo at nai-tag namin ang mga ito nang naaangkop. Pinapanatili nito impormasyong nauugnay sa paglabas malapit sa code , taliwas sa pag-asa sa mga numero ng bumuo ng Jenkins o iba pang mga moniker.
  • Pagprotekta sa mga sanga ng Git binabawasan ang panganib ng error ng tao , at ang pag-automate ng maraming mga gawain hangga't maaari ay binabawasan kung gaano tayo kadalas na pester (o maghintay) sa mga taong iyon.

Halimbawa:

Gawin nating halimbawa ang isang bagong tampok sa isang web application. Ang isang developer ay makikilala at itatalaga sa gawain, kinukuha niya ang umiiral na codebase mula sa pagkontrol ng Pinagmulan - sabihin, Git, gumagawa ng kanyang mga pagbabago, isinasagawa ang pagsubok ng yunit, tinitiyak ang kalidad ng code nang manu-mano at suriin muli ang bagong code sa Git.

dinamikong paglalaan ng memorya sa c ++

Pagkatapos ay kailangan niyang itayo ang code, i-deploy ito sa halimbawa ng pagsasama, patakbuhin ang pagsubok sa pagsasama at sa sandaling ang kasiya-siya ay mukhang kasiya-siya, itaas ang isang kahilingan para sa pag-deploy ng produksyon. Ngayon, kung mayroon lamang kaming isang minion upang pangalagaan ang pagsubok, pagbuo, mga pagsusuri sa kalidad at pag-deploy na seksyon na ito ay maaaring mas nakatutok sa mahihirap na nag-develop sa bagay na talagang mahusay siya sa pagpapatupad at pagpapabuti ng lohika ng tampok.

Ang minion na ito ay si Jenkins. Gumaganap ito bilang isang orkestra upang patakbuhin ang lahat ng mga aktibidad na ito sa sandaling ang pagbabago ay nasuri sa mapagkukunan ng kontrol (Git) at sa gayon ay nagbibigay ng mabilis na puna sa developer kung ang mga pagbabagong nagawa niya ay sapat na mabuti para sa paglawak ng produksyon o hindi.Ito ay isang lubos na kakayahang umangkop, bukas na mapagkukunan at may isang toneladang mga plugin na maaaring gawin ang halos anumang nais mong gawin.

Demo

Dito makikita natin kung paano isama ang Git kay Jenkins. Mayroong 5 mga hakbang na dapat mong sundin:

1. Lumikha ng isang Sample na programa:

Maaari kang lumikha ng anumang sample na programa na nais mo tulad ng Java o Python o anumang iba pang programa. Dito magsusulat kami ng isang simple Programa ng sawa na naka-print Kumusta, Mundo!

2. Lumikha ng isang trabaho ni Jenkins:

  • Dito mo muna kailangan simulan mo si Jenkins gamit ang prompt ng utos.

  • Para doon, kailangan mo munang mag-navigate sa lokasyon ng Jenkins sa iyong system at gamitin ang utos java -jar jenkins.war

  • Matapos patakbuhin ang utos na ito, buksan ang web browser at pumunta sa home page ni Jenkins gamit ang link localhost: 8080 . Ito ang default na numero ng port.

  • Buksan ang home page ni Jenkins sa pamamagitan ng pagpasok ng username at password.

  • Para sa paglikha ng isang proyekto mag-click sa Bagong Item at ipasok ang Pangalan ng proyekto at piliin Proyekto ng freestyle . Mag-click sa OK.

3. Idagdag ang program na ito sa Github:

  • Buksan ang git bash sa iyong system. Mag-navigate sa lokasyon ng iyong programa. Simulan ang isang walang laman na lalagyan gamit ang utos git init .

  • Gumamit ng utos git idagdag. upang idagdag ang file sa lugar ng pagtatanghal ng takbo mula sa gumaganang direktoryo.

  • Idagdag ngayon ang file sa lokal na lalagyan gamit ang utos git commit -m 'idinagdag ang demo.py file' .

  • Ngayon kailangan mo na itulak ang file na ito sa remote na imbakan. Para sa paggawa nito, pumunta sa iyong GitHub account at lumikha ng isang bagong pampublikong imbakan. Ngayon kopyahin ang lokasyon ng lalagyan na ito at pumunta sa git bash terminal. Dito i-type ang utos git remote idagdag ang pinagmulan . Dahil ngayon ay nakakonekta ka sa remote na imbakan, maaari mo nang itulak ang iyong code doon gamit ang utos git push -u pinagmulan master. Upang ma-verify ito, pumunta sa GitHub account at i-refresh ang pahina. Makikita mo ang file na idinagdag doon.

4. Magdagdag ng Git Plugin sa Jenkins:

  • Sa homepage ni Jenkins pumunta sa Pamahalaan si Jenkins .

  • Susunod na pag-click sa Pamahalaan ang Mga Plugin . Narito ang tseke nakuha ang plugin ng Git sa naka-install na seksyon. Kung hindi ito magagamit dito hanapin ito sa magagamit na seksyon at i-download ito.

5. I-configure ang trabaho ni Jenkins upang ma-trigger ang pagbuo:

  • Pumunta sa proyekto sa Jenkins na nilikha namin sa hakbang 2. Dito sa seksyon ng Pamamahala ng Source Code, piliin ang git at ipasok ang link ng pampublikong repository na iyong nilikha sa hakbang 3. Susunod sa Bumuo ng seksyong Mga Trigger , mag-click sa Pagpipilian sa Poll SCM . Dito sa bahagi ng Iskedyul, kailangan mong ipasok ang limang mga asterisk na pinaghihiwalay ng puwang. Ito ay walang iba kundi ang cron syntax para sa iyong trabaho. Nangangahulugan ito na susuriin ni Jenkins ang anumang mga pagbabago sa source code bawat minuto at kung mayroong anumang pagbabago maa-trigger nito ang pagbuo ng Jenkins.

  • Mag-click sa Mag-apply at pagkatapos ay sa Magtipid . Susunod sa iyong home page ng proyekto mag-click sa Bumuo Ngayon . Patakbuhin nito ang proyekto at sa output ng console, makikita mo ang iyong program na naglalabas ng katayuan ng iyong trabaho sa Jenkins. Kung ang lahat ay tama pagkatapos ay ipapakita ito bilang Tagumpay .

Kaya't kung paano ito tapos ng Jenkins Git Integration. Sa pamamagitan nito, nakarating kami sa dulo ng artikulong ito sa Jenkins Git Integration. Inaasahan kong nasiyahan ka sa artikulong ito.

Ngayon na naintindihan mo na kung ano Pagsasama ni Jenkins Git ay, suriin ito ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa Edureka DevOps Certification Training ay tumutulong sa mga nag-aaral na maunawaan kung ano ang DevOps at makakuha ng kadalubhasaan sa iba't ibang mga proseso at tool ng DevOps tulad ng Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack at GIT para sa pag-automate ng maraming mga hakbang sa SDLC.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento at babalikan ka namin