Kas yra Jenkinsas? Nuolatinės integracijos (PI) įrankis

Turinys:

Anonim

Kas yra Jenkinsas?

„Jenkins“ yra atviro kodo nuolatinės integracijos serveris, galintis organizuoti veiksmų grandinę, padedančią automatiškai pasiekti nuolatinės integracijos procesą (ir ne tik).

Jenkins yra nemokama ir visiškai parašyta „Java“ kalba. „Jenkins“ yra plačiai naudojama programa visame pasaulyje, kurioje įdiegta apie 300 tūkst. Įrenginių ir kuri auga kiekvieną dieną.

Tai yra serverio programa, kuriai reikalingas žiniatinklio serveris, pvz., „Apache Tomcat“. Priežastis, kodėl „Jenkins“ išpopuliarėjo, yra tai, kad ji stebi pakartotines užduotis, kylančias kuriant projektą. Pavyzdžiui, jei jūsų komanda kuria projektą, „Jenkins“ nuolat tikrins jūsų projekto kūrimą ir parodys klaidas ankstyvose jūsų kūrimo stadijose.

Naudodamos „Jenkins“ programinės įrangos kompanijos gali paspartinti savo programinės įrangos kūrimo procesą, nes „Jenkins“ gali greitai automatizuoti kūrimą ir testavimą. „Jenkins“ palaiko visą programinės įrangos kūrimo gyvavimo ciklą nuo programinės įrangos kūrimo, testavimo, dokumentavimo, diegimo ir kitų programinės įrangos kūrimo gyvavimo ciklo etapų.

Šioje pamokoje sužinosite

  • Kas yra Jenkinsas?
  • Kas yra nuolatinė integracija?
  • Jenkin istorija
  • Kodėl verta naudoti nuolatinę integraciją su Jenkins?
  • Realaus pasaulio nuolatinės integracijos pavyzdys
  • „Jenkins“ naudojimo pranašumai
  • Jenkins naudojimo trūkumai

Kas yra nuolatinė integracija?

Nuolatinėje integracijoje po kodo priskyrimo programinė įranga nedelsiant sukuriama ir išbandoma. Dideliame projekte, kuriame yra daug kūrėjų, įsipareigojimai prisiimami daug kartų per dieną. Su kiekvienu įsipareigojimų kodu yra sukurtas ir išbandytas. Jei bandymas bus išlaikytas, versijos diegimas bus išbandytas. Jei diegimas yra sėkmingas, kodas perduodamas gamybai. Šis įsipareigojimas, kūrimas, testavimas ir diegimas yra nenutrūkstamas procesas, taigi ir nuolatinės integracijos / diegimo pavadinimas.

Nepertraukiamo integravimo vamzdynas yra galingas instrumentas, kurį sudaro įrankių rinkinys, skirtas priglobti , stebėti , kaupti ir išbandyti kodą ar kodo pakeitimus, pvz .:

  • Nepertraukiamo integravimo serveris („Jenkins“, „Bamboo“, „CruiseControl“, „TeamCity“ ir kt.)
  • Šaltinio valdymo įrankis (pvz., CVS, SVN, GIT, Mercurial, Perforce, ClearCase ir kt.)
  • Sukūrimo įrankis („Make“, ANT, „Maven“, „Ivy“, „Gradle“ ir kiti)
  • Automatikos testavimo sistema („Selenium“, „Appium“, „TestComplete“, UFT ir kt.)

Jenkin istorija

  • „Java“ kūrėjas Kohsuke Kawaguchi, dirbantis „SUN Microsystems“, buvo pavargęs kurti kodą ir pakartotinai taisyti klaidas. 2004 m. Sukūrė automatikos serverį „Hudson“, kuris automatizuoja kūrimo ir bandymo užduotis.
  • 2011 m. „Oracle“, kuriai priklausė „Sun Microsystems“, kilo ginčas su „Hudson“ atvirojo kodo bendruomene, todėl jie išsišakojo ir pavadino Jenkins.
  • Ir Hudsonas, ir Jenkinsas toliau dirbo savarankiškai. Tačiau per trumpą laiką Jenkinsas įsigijo daug projektų ir bendraautorių, o Hudsonas liko tik su 32 projektais. Laikui bėgant Jenkinsas išpopuliarėjo, o Hudsonas nebėra išlaikomas.

Kodėl verta naudoti nuolatinę integraciją su Jenkins?

Kai kurie žmonės gali pagalvoti, kad senoviškas programinės įrangos kūrimo būdas yra geresnis būdas. Supraskime KI su Jenkins privalumus pateikdami šį pavyzdį

Įsivaizduokime, kad yra apie 10 kūrėjų, kurie dirba bendroje saugykloje. Kai kurie kūrėjai atlieka savo užduotį per 25 dienas, o kiti užtrunka 30 dienų.

Prieš Jenkinsą Po Jenkins
Kai visi kūrėjai atliko paskirtas kodavimo užduotis, jie vienu metu vykdė savo kodą. Vėliau „Build“ yra išbandytas ir įdiegtas. Sukurtas kodas, o bandymų ciklas buvo labai retas, o po kelių dienų buvo atliktas vienas kūrimas. Kodas sukuriamas ir išbandomas, kai tik kūrėjas nustato kodą. Jenkinas sukurs ir išbandys kodą daug kartų per dieną. Jei komponavimas bus sėkmingas, Jenkinsas įdiegs šaltinį į bandymo serverį ir praneš apie tai diegimo komandai. Jei sukūrimas nepavyks, Jenkins praneš klaidas kūrėjų komandai.
Kadangi kodas buvo sukurtas vienu metu, kai kuriems kūrėjams reikės palaukti, kol kiti kūrėjai baigs koduoti, kad patikrintų jų sukūrimą Kodas sukuriamas iškart po to, kai kuris nors kūrėjas įsipareigoja.
Išskirti, aptikti ir ištaisyti kelių įvykdytų klaidų užduotis nėra lengva. Kadangi kodas yra sukurtas po kiekvieno vieno kūrėjo įsipareigojimo, lengva nustatyti, kieno kodas sukėlė sukurtą gedimą
Kodo sudarymo ir testavimo procesas yra visiškai rankinis, todėl yra daug nesėkmės galimybių. Automatizuotas kūrimo ir bandymo procesas taupo laiką ir sumažina defektus.
Kodas diegiamas ištaisius ir išbandžius visas klaidas. Kodas diegiamas po kiekvieno sėkmingo kūrimo ir bandymo.
Kūrimo ciklas yra lėtas Kūrimo ciklas yra greitas. Naujos funkcijos yra lengviau prieinamos vartotojams. Padidina pelną.

Realaus pasaulio nuolatinės integracijos pavyzdys

Aš tikiu, kad jūs visi žinote seną telefoną „Nokia“. „Nokia“ panaudojo procedūrą, vadinamą naktiniu kūrimu. Po to, kai dieną kelis kartus įsipareigojo įvairūs kūrėjai, programinė įranga buvo kuriama kiekvieną vakarą. Kadangi programinė įranga buvo sukurta tik kartą per dieną, didžiulį skausmą išskirti, nustatyti ir ištaisyti klaidas didelėje kodų bazėje.

Vėliau jie pasirinko nuolatinės integracijos metodą. Programinė įranga buvo sukurta ir išbandyta, kai tik kūrėjas paskyrė kodą. Aptikus klaidą, atitinkamas kūrėjas gali greitai pašalinti defektą.

„Jenkins“ papildiniai

Pagal numatytuosius nustatymus „Jenkins“ turi ribotą funkcijų rinkinį. Jei norite integruoti „Jenkins“ diegimą su versijų valdymo įrankiais, tokiais kaip „Git“, turite įdiegti su „Git“ susijusius papildinius. Tiesą sakant, norint integruoti su tokiais įrankiais kaip „Maven“, „Amazon EC2“, turite įdiegti atitinkamus papildinius savo „Jenkins“.

Įskiepių integracija Jenkins

„Jenkins“ naudojimo pranašumai

  • Jenkins valdo labai atvira bendruomenė. Kiekvieną mėnesį jie rengia viešuosius susitikimus ir priima visuomenės indėlį kuriant „Jenkins“ projektą.
  • Kol kas uždaryta apie 280 bilietų, o projektas kas tris mėnesius skelbia stabilų leidimą.
  • Augant technologijoms, auga ir Jenkinsas. Iki šiol „Jenkins“ įskiepių duomenų bazėje paskelbta apie 320 papildinių. Su papildiniais Jenkins tampa dar galingesnis ir funkcionalesnis.
  • „Jenkins“ taip pat palaiko debesų technologiją, kad „Jenkins“ galėtumėte diegti debesų platformose.
  • Priežastis, kodėl „Jenkins“ išpopuliarėjo, yra tai, kad ją kūrėjai sukūrė kūrėjams.

Jenkins naudojimo trūkumai

Nors „Jenkins“ yra labai galingas įrankis, jis turi trūkumų.

  • Jo sąsaja yra pasenusi ir nėra patogi vartotojui, palyginti su dabartinėmis vartotojo sąsajos tendencijomis.
  • Nors „Jenkins“ mėgsta daugelis kūrėjų, jį išlaikyti nėra taip lengva, nes „Jenkins“ veikia serveryje ir reikalauja tam tikrų serverio administratoriaus įgūdžių, kad galėtų stebėti jo veiklą.
  • Viena iš priežasčių, kodėl daugelis žmonių neįdiegia „Jenkins“, yra dėl sunkumų diegiant ir konfigūruojant „Jenkins“.
  • Nuolatinė integracija reguliariai nutrūksta dėl kai kurių nedidelių parametrų pakeitimų. Nuolatinė integracija bus pristabdyta, todėl reikia tam tikro kūrėjo dėmesio.

Išvada:

  • Vykdant nuolatinę integraciją, po kodo priskyrimo programinė įranga nedelsiant sukuriama ir išbandoma
  • „Jenkins“ yra atviro kodo nuolatinės integracijos serveris, galintis organizuoti veiksmų grandinę
  • Prieš „Jenkins“, kai visi kūrėjai atliko paskirtas kodavimo užduotis, jie vienu metu vykdė savo kodą. Vėliau „Build“ yra išbandytas ir įdiegtas.
  • Sukūrus „Jenkins“ kodą, jis bus išbandytas, kai tik kūrėjas patvirtins kodą. Jenkin sukurs ir išbandys kodą daug kartų per dieną
  • Pagal numatytuosius nustatymus „Jenkins“ turi ribotą funkcijų rinkinį. Jei norite integruoti „Jenkins“ diegimą su versijų valdymo įrankiais, tokiais kaip „Git“, turite įdiegti su „Git“ susijusius papildinius
  • Didžiausi „Jenkins“ pliusai yra tai, kad jį valdo bendruomenė, kuri rengia viešuosius susitikimus ir kuria visuomenės indėlį kuriant „Jenkins“ projektus
  • Didžiausias „Jenkin“ trūkumas yra tas, kad jo sąsaja yra pasenusi ir nėra patogi vartotojui, palyginti su dabartinėmis vartotojo sąsajos tendencijomis.