Mis on Jenkins?
Jenkins on avatud lähtekoodiga pideva integreerimise server, mis suudab korraldada tegevuste ahelat, mis aitab automatiseeritud viisil (ja mitte ainult) saavutada pideva integreerimise protsessi.
Jenkins on tasuta ja kirjutatud täielikult Java keeles. Jenkins on kogu maailmas laialdaselt kasutatav rakendus, millel on umbes 300 000 installatsiooni ja mis kasvab iga päevaga.
See on serveripõhine rakendus ja vajab sellist veebiserverit nagu Apache Tomcat. Põhjus, miks Jenkins nii populaarseks sai, on projekti väljatöötamisel tekkivate korduvate ülesannete jälgimine. Näiteks kui teie meeskond töötab välja projekti, testib Jenkins teie projekti ehitamist pidevalt ja näitab teile vigu teie arengu varases staadiumis.
Jenkinsit kasutades saavad tarkvaraettevõtted oma tarkvaraarendusprotsessi kiirendada, kuna Jenkins saab ehitamist ja testimist kiirelt automatiseerida. Jenkins toetab tarkvara täielikku arendustsüklit alates tarkvara loomisest, testimisest, dokumenteerimisest, juurutamisest ja muudest tarkvaraarenduse elutsükli etappidest.
Selles õpetuses saate teada
- Mis on Jenkins?
- Mis on pidev integratsioon?
- Jenkin ajalugu
- Miks kasutada Jenkinsiga pidevat integreerimist?
- Tegeliku maailma pideva integratsiooni juhtumiuuring
- Jenkinsi kasutamise eelised
- Jenkinsi kasutamise puudused
Mis on pidev integratsioon?
Pidevas integreerimises pärast koodi sidumist ehitatakse ja testitakse tarkvara kohe. Suures projektis, kus on palju arendajaid, tehakse kohustusi päeva jooksul mitu korda. Iga pühendumiskood ehitatakse ja testitakse. Kui test on edukalt läbitud, testitakse koontsiooni juurutamiseks. Kui juurutamine on edukas, lükatakse kood tootmisprotsessi. See sidumine, loomine, testimine ja juurutamine on pidev protsess ja sellest ka pidev integreerimine / juurutamine.
Pideva integreerimise torujuhe on võimas instrument, mis koosneb tööriistakomplektist, mis on mõeldud koodi või koodimuudatuste majutamiseks , jälgimiseks , kompileerimiseks ja testimiseks , näiteks:
- Pidev integreerimisserver (Jenkins, Bamboo, CruiseControl, TeamCity ja teised)
- Allikate juhtimise tööriist (nt CVS, SVN, GIT, Mercurial, Perforce, ClearCase jt)
- Ehitamise tööriist (Mark, ANT, Maven, Ivy, Gradle ja teised)
- Automaatika testimise raamistik (seleen, Appium, TestComplete, UFT ja teised)
Jenkin ajalugu
- Java-arendaja Kohsuke Kawaguchi, kes töötab ettevõttes SUN Microsystems, oli väsinud koodi ülesehitamisest ja vigade korduvast parandamisest. 2004. aastal lõi automaatikaserveri nimega Hudson, mis automatiseerib ülesehituse ja testimise ülesandeid.
- 2011. aastal tekkis Sun Microsystemsile kuuluval Oracleil vaidlus Hudsoni avatud lähtekoodiga kogukonnaga, nii et nad haarasid Hudsoni ja nimetasid selle ümber Jenkinsiks.
- Nii Hudson kui ka Jenkins jätkasid iseseisvat tegevust. Kuid lühikese aja jooksul omandas Jenkins palju projekte ja kaasautoreid, samas kui Hudson jäi vaid 32 projekti juurde. Aja jooksul muutus Jenkins populaarsemaks ja Hudsonit enam ei hooldata.
Miks kasutada Jenkinsiga pidevat integreerimist?
Mõni inimene võib arvata, et vanamoodne tarkvara arendamise viis on parem viis. Mõistame järgmise näite abil JIKINSiga CI eeliseid
Kujutagem ette, et jagatud hoidla kallal töötab umbes 10 arendajat. Mõni arendaja täidab oma ülesande 25 päeva jooksul, teine võtab aga 30 päeva.
Enne Jenkinsit | Pärast Jenkinsit |
---|---|
Kui kõik arendajad olid määratud kodeerimisülesanded täitnud, kasutasid nad koodi korraga. Hiljem testitakse ja juurutatakse Build. Kood lubas ehitada ja testtsükkel oli väga haruldane ning mitme päeva pärast tehti üks ehitis. | Kood koostatakse ja testitakse kohe, kui arendaja koodi omistab. Jenkin ehitab ja testib koodi mitu korda päeva jooksul. Kui koostamine on edukas, juurutab Jenkins allika testiserverisse ja teavitab juurutusmeeskonda. Kui ehitamine ebaõnnestub, teavitab Jenkins vigadest arendajatiimi. |
Kuna kood ehitati korraga, peaksid mõned arendajad nende ehituse kontrollimiseks ootama, kuni teised arendajad kodeerimise lõpetavad | Kood ehitatakse kohe pärast seda, kui mõni arendaja on lubanud. |
Mitme toimingu korral pole vigade eraldamine, tuvastamine ja parandamine lihtne ülesanne. | Kuna kood ehitatakse pärast iga arendaja igat pühendumist, on lihtne tuvastada, kelle kood põhjustas ehitise tõrke |
Koodi koostamine ja testimine on täiesti käsitsi, seega on ebaõnnestumiseks palju võimalusi. | Automatiseeritud ehitus- ja testimisprotsess säästab ajastust ja vähendab defekte. |
Kood juurutatakse, kui kõik vead on parandatud ja testitud. | Kood juurutatakse pärast igat edukat ehitamist ja testimist. |
Arengutsükkel on aeglane | Arengutsükkel on kiire. Uued funktsioonid on kasutajatele hõlpsamini kättesaadavad. Suurendab kasumit. |
Tegeliku maailma pideva integratsiooni juhtumiuuring
Olen kindel, et kõik olete teadlikud vanast telefonist Nokia. Nokia kasutas protseduuri, mida nimetatakse öiseks ehitamiseks. Pärast seda, kui päeval on erinevad arendajad mitu korda pühendunud, ehitati tarkvara igal õhtul. Kuna tarkvara ehitati vaid üks kord päevas, on tohutu piin vigu isoleerida, tuvastada ja parandada suures koodibaasis.
Hiljem võtsid nad kasutusele pideva integratsiooni lähenemise. Tarkvara ehitati ja testiti kohe, kui arendaja koodi sisestas. Vea avastamisel saab vastav arendaja defekti kiiresti parandada.
Jenkinsi pistikprogrammid
Vaikimisi on Jenkinsil piiratud funktsioonide komplekt. Kui soovite oma Jenkinsi installi integreerida versioonihaldustööriistadega nagu Git, peate installima Gitiga seotud pistikprogrammid. Tegelikult peate selliste tööriistadega nagu Maven ja Amazon EC2 integreerimiseks oma Jenkinsisse installima vastavad pistikprogrammid.

Jenkinsi kasutamise eelised
- Jenkinsit haldab väga avatud kogukond. Igal kuul korraldavad nad avalikke koosolekuid ja võtavad avalikkusest osa Jenkinsi projekti arendamiseks.
- Siiani on suletud umbes 280 piletit ja projekt avaldab stabiilse väljaande iga kolme kuu tagant.
- Tehnoloogia kasvades kasvab ka Jenkins. Siiani on Jenkins oma pistikprogrammide andmebaasis avaldanud umbes 320 pistikprogrammi. Pistikprogrammide abil muutub Jenkins veelgi võimsamaks ja funktsiooniderikkamaks.
- Jenkins toetab ka pilvepõhist arhitektuuri, et saaksite Jenkinsit juurutada pilvepõhistel platvormidel.
- Jenkinsi populaarseks saamise põhjus on see, et selle lõi arendaja arendajatele.
Jenkinsi kasutamise puudused
Kuigi Jenkins on väga võimas tööriist, on sellel oma vead.
- Selle liides on aegunud ja pole kasutajasõbralik võrreldes praeguste kasutajaliidese suundumustega.
- Kuigi Jenkinsit armastavad paljud arendajad, pole selle hooldamine nii lihtne, sest Jenkins töötab serveris ja nõuab selle aktiivsuse jälgimiseks serveri administraatorina teatud oskusi.
- Üks põhjus, miks paljud inimesed Jenkinsit ei rakenda, tuleneb raskustest Jenkinsi installimisel ja konfigureerimisel.
- Pidev integreerimine katkeb regulaarselt mõningate väikeste seadistuste muudatuste tõttu. Pidev integreerimine peatatakse ja nõuab seetõttu arendaja tähelepanu.
Järeldus:
- Pidevas integreerimises ehitatakse ja testitakse tarkvara pärast koodi sidumist kohe
- Jenkins on avatud lähtekoodiga pideva integratsiooni server, mis on võimeline korraldama tegevuste ahelat
- Enne Jenkinsit, kui kõik arendajad olid määratud kodeerimisülesanded täitnud, kasutasid nad koodi kõik korraga. Hiljem testitakse ja juurutatakse Build.
- Pärast Jenkinsit on kood üles ehitatud ja testige kohe, kui arendaja koodi kinnitab. Jenkin ehitab ja testib koodi mitu korda päeva jooksul
- Vaikimisi on Jenkinsil piiratud funktsioonide komplekt. Kui soovite oma Jenkinsi installi integreerida versioonihaldustööriistadega nagu Git, peate installima Gitiga seotud pistikprogrammid
- Jenkinsi suurimad plussid on see, et seda haldab kogukond, kes korraldab avalikke koosolekuid ja võtab avalikkusest kaasa Jenkinsi projektide arendamist
- Jenkini suurim viga on see, et selle liides on aegunud ja pole kasutajasõbralik võrreldes praeguste kasutajaliidese suundumustega.