Mi az a Jenkins?
A Jenkins egy nyílt forráskódú folyamatos integrációs szerver, amely képes összehangolni azokat a műveleteket, amelyek segítenek a folyamatos integrációs folyamat (és nem csak) automatizált megvalósításában.
A Jenkins ingyenes, és teljes egészében Java nyelven íródott. A Jenkins egy világszerte széles körben használt alkalmazás, amely körülbelül 300 ezer telepítést tartalmaz és napról napra növekszik.
Ez egy szerver alapú alkalmazás, és olyan webszervert igényel, mint az Apache Tomcat. A Jenkins annyira népszerűvé vált, hogy a projekt kidolgozása során felmerülő ismételt feladatokat figyeli. Például, ha a csapata projektet fejleszt, a Jenkins folyamatosan teszteli a projekt felépítését és megmutatja a hibákat a fejlesztés korai szakaszában.
A Jenkins használatával a szoftvercégek felgyorsíthatják szoftverfejlesztési folyamataikat, mivel a Jenkins gyors ütemben automatizálhatja az összeállítást és a tesztelést. A Jenkins támogatja a szoftver teljes fejlesztési életciklusát a szoftver felépítésétől, tesztelésétől, dokumentálásáig, telepítéséig és a szoftverfejlesztés életciklusának egyéb szakaszaitól.
Ebben az oktatóanyagban megtanulja
- Mi az a Jenkins?
- Mi a folyamatos integráció?
- Jenkin története
- Miért használja a folyamatos integrációt a Jenkins-szel?
- A folyamatos integráció valós esettanulmánya
- A Jenkins használatának előnyei
- A Jenkins használatának hátrányai
Mi a folyamatos integráció?
A kódintézkedés utáni folyamatos integráció során a szoftvert azonnal felépítik és tesztelik. Egy nagy projektben, sok fejlesztővel, a nap folyamán sokszor vállalnak kötelezettséget. Minden egyes végrehajtási kódot felépítenek és tesztelnek. Ha a teszt sikeres, a build telepítését tesztelik. Ha a telepítés sikeres, akkor a kódot a gyártásig továbbítják. Ez a véglegesítés, összeállítás, tesztelés és telepítés folyamatos folyamat, ezért a folyamatos integráció / telepítés nevet viseli.
A Continuous Integration Pipeline erőteljes eszköz, amely egy sor eszközt tervezett fogadó , monitor , fordítási és teszt kódot vagy kód változás, mint például:
- Folyamatos integrációs szerver (Jenkins, Bamboo, CruiseControl, TeamCity és mások)
- Forrásvezérlő eszköz (pl. CVS, SVN, GIT, Mercurial, Perforce, ClearCase és mások)
- Építési eszköz (Make, ANT, Maven, Ivy, Gradle és mások)
- Automatizálási tesztelési keretrendszer (szelén, Appium, TestComplete, UFT és mások)
Jenkin története
- Kohsuke Kawaguchi, a Java fejlesztője, a SUN Microsystemsnél dolgozik, unta a kód felépítését és a hibák ismételt javítását. 2004-ben létrehozott egy Hudson nevű automatizálási kiszolgálót, amely automatizálja az építési és tesztelési feladatokat.
- 2011-ben a Sun Microsystems tulajdonában álló Oracle-nek vitája támadt a Hudson nyílt forráskódú közösségével, ezért elágaztak Hudsonért és átnevezték Jenkins-nek.
- Hudson és Jenkins továbbra is függetlenül működtek. De rövid idő alatt Jenkins rengeteg projektet és közreműködőt szerzett, míg Hudson csak 32 projektnél maradt. Az idő múlásával Jenkins népszerűbbé vált, és Hudsont már nem tartják fenn.
Miért használja a folyamatos integrációt a Jenkins-szel?
Egyesek azt gondolhatják, hogy a szoftver régimódi fejlesztési módja a jobb. A következő példával ismerjük meg a Jenkins CI előnyeit
Képzeljük el, hogy körülbelül 10 fejlesztő dolgozik, akik megosztott adattáron dolgoznak. Egyes fejlesztők 25 nap alatt teljesítik feladatukat, mások 30 napot vesznek igénybe.
Jenkins előtt | Jenkins után |
---|---|
Miután az összes fejlesztő elvégezte a hozzárendelt kódolási feladatokat, a kódot egyszerre végezték el. Később a Build tesztelésre és telepítésre kerül. A kód elkötelezett, és a tesztciklus nagyon ritka volt, és sok nap után egyetlen felépítés történt. | A kód felépül és tesztel, amint a fejlesztő elkötelezi a kódot. Jenkin a nap folyamán sokszor készít és tesztel kódot. Ha az összeállítás sikeres, akkor Jenkins telepíti a forrást a tesztkiszolgálóra, és értesíti a telepítési csapatot. Ha az összeállítás sikertelen, akkor Jenkins értesíti a hibákat a fejlesztői csapatról. |
Mivel a kódot egyszerre építették fel, egyes fejlesztőknek meg kell várniuk, amíg a többi fejlesztő befejezi a kódolást, hogy ellenőrizzék az összeállításukat | A kód azonnal felépül, miután bármelyik fejlesztő elkötelezte magát. |
Nem könnyű feladat elkülöníteni, észlelni és kijavítani a hibákat többszörös végrehajtásnál. | Mivel a kód egyetlen fejlesztő minden egyes elkötelezettsége után épül fel, könnyen felismerhető, hogy kinek a kódja okozta a meghibásodást |
A kód összeállítása és tesztelése teljesen manuális, így sok esély van a meghibásodásra. | Automatizált építési és tesztelési folyamat, időmegtakarítás és a hibák csökkentése. |
A kód telepítése az összes hiba kijavítása és tesztelése után megtörténik. | A kód minden sikeres összeállítás és teszt után telepítésre kerül. |
A fejlesztési ciklus lassú | A fejlesztési ciklus gyors. Az új funkciók könnyebben elérhetők a felhasználók számára. Növeli a profitot. |
A folyamatos integráció valós esettanulmánya
Biztos vagyok benne, hogy mindannyian ismeritek a régi Nokia telefont. A Nokia az éjszakai felépítés nevű eljárást hajtotta végre. Miután a nap folyamán különféle fejlesztők többször elkötelezték magukat, a szoftver minden este épült. Mivel a szoftvert naponta csak egyszer építették, óriási fájdalom a hibák elkülönítése, azonosítása és kijavítása egy nagy kódbázisban.
Később elfogadták a folyamatos integráció megközelítést. A szoftvert építették és tesztelték, amint a fejlesztő elkötelezte a kódot. Ha hibát észlel, az adott fejlesztő gyorsan kijavíthatja a hibát.
Jenkins bővítmények
Alapértelmezés szerint a Jenkins korlátozott számú szolgáltatással rendelkezik. Ha integrálni szeretné Jenkins telepítését olyan verziókezelő eszközökkel, mint a Git, akkor telepítenie kell a Githez kapcsolódó bővítményeket. Valójában az olyan eszközökhöz való integrációhoz, mint a Maven, az Amazon EC2, telepítenie kell a megfelelő bővítményeket a Jenkins-be.
A Jenkins használatának előnyei
- A Jenkins-t a nagyon nyitott közösség irányítja. Minden hónapban nyilvános megbeszéléseket tartanak, és a nyilvánosság részéről hozzájárulnak a Jenkins projekt fejlesztéséhez.
- Eddig körülbelül 280 jegy zárva van, és a projekt háromhavonta stabil kiadást tesz közzé.
- A technika növekedésével a Jenkins is növekszik. A Jenkins eddig mintegy 320 plugint tett közzé a pluginok adatbázisában. A beépülő modulokkal a Jenkins még erősebbé és funkciógazdagabbá válik.
- A Jenkins támogatja a felhőalapú architektúrát is, így felhőalapú platformokon telepítheti a Jenkins-t.
- A Jenkins népszerűvé válásának oka az, hogy egy fejlesztő hozta létre a fejlesztők számára.
A Jenkins használatának hátrányai
Bár a Jenkins nagyon hatékony eszköz, vannak hibái.
- A kezelőfelülete elavult és nem felhasználóbarát a jelenlegi felhasználói felület trendekhez képest.
- Bár a Jenkins-t sok fejlesztő szereti, nem könnyű fenntartani, mert a Jenkins egy szerveren fut, és bizonyos ismeretekre van szüksége a szerver adminisztrátoraként a tevékenységének figyelemmel kíséréséhez.
- Az egyik oka annak, hogy sokan nem alkalmazzák a Jenkins alkalmazást, a Jenkins telepítésének és konfigurálásának nehézségei okozzák.
- Néhány folyamatos beállításváltozás miatt a folyamatos integrációk rendszeresen megszakadnak. A folyamatos integráció szünetel, ezért némi fejlesztői figyelmet igényel.
Következtetés:
- A Folyamatos integráció során a kód elkötelezettsége után a szoftvert azonnal felépítik és tesztelik
- A Jenkins egy nyílt forráskódú folyamatos integrációs szerver, amely képes egy akciólánc összehangolására
- A Jenkins előtt, amikor az összes fejlesztő elvégezte a hozzárendelt kódolási feladatokat, egyszerre használták a kódjukat. Később a Build tesztelésre és telepítésre kerül.
- A Jenkins elkészítése után a kód elkészül, és tesztelje, amint a Fejlesztő elkötelezi a kódot. Jenkin a nap folyamán sokszor elkészíti és teszteli a kódot
- Alapértelmezés szerint a Jenkins korlátozott számú szolgáltatással rendelkezik. Ha integrálni szeretné a Jenkins telepítését olyan verziókezelő eszközökkel, mint a Git, akkor telepítenie kell a Githez kapcsolódó bővítményeket
- A Jenkins legnagyobb előnye, hogy azt a közösséget irányítja, amely nyilvános találkozókat tart és a nyilvánosság részéről veszi figyelembe a Jenkins projektek fejlesztését
- A Jenkin legnagyobb hátránya, hogy a kezelőfelülete elavult és nem felhasználóbarát a jelenlegi felhasználói felület trendekhez képest.