Mi az a Jenkins? Miért érdemes a folyamatos integrációs (CI) eszközt használni?
Mi az a Jenkins?
Jenkins egy nyílt forráskódú Continuous Integration szerver Java a folyamatos integrációs folyamat automatizált módon történő megvalósítása érdekében. A Jenkins támogatja a szoftverek teljes fejlesztési életciklusát, a szoftverfejlesztéstől, teszteléstől, dokumentálástól, telepítéstől és a szoftverfejlesztési életciklus egyéb szakaszaitól kezdve.
A Jenkins egy világszerte széles körben használt alkalmazás, amely körülbelül 300 XNUMX telepítéssel rendelkezik, és napról napra növekszik. A Jenkins használatával a szoftvercégek felgyorsíthatják szoftverfejlesztési folyamatukat, mivel a Jenkins gyors ütemben automatizálhatja az összeállítást és a tesztelést.
Ez egy szerver alapú alkalmazás, és olyan webszerverre van szükség, mint az Apache Tomcat. A Jenkins szoftver azért vált ilyen népszerűvé, mert figyeli a projektek fejlesztése során felmerülő ismétlődő feladatokat. Például, ha csapata egy projektet fejleszt, a Jenkins folyamatosan teszteli a projekt összeállításait, és megmutatja a hibákat a fejlesztés korai szakaszában.
Mi az a folyamatos integráció?
Folyamatos integráció egy olyan folyamat, amelynek során többszörösen integrálják a több fejlesztőtől származó kódmódosításokat egyetlen projektbe. A szoftvert a kód véglegesítése után azonnal teszteljük. Minden kód véglegesítéskor a kód összeállításra és tesztelésre kerül. Ha a teszt sikeres, a rendszer teszteli a build telepítését. Ha a központi telepítés sikeres, a kód elküldésre kerül az éles verzióra.
Ez a véglegesítés, összeállítás, tesztelés és üzembe helyezés folyamatos folyamat, és innen ered a folyamatos integráció/telepítés elnevezés.
Hogyan működik a Jenkins?
A Jenkins egy szerver alapú alkalmazás, és olyan webszerverre van szükség, mint az Apache Tomcat, hogy különböző platformokon futhasson, mint pl. WindowsLinux, macOS, Unix stb. A Jenkins használatához folyamatokat kell létrehozni, amelyek egy sor lépésből állnak, amelyeket a Jenkins szerver megtesz. A Jenkins Continuous Integration Pipeline egy hatékony eszköz, amely egy sor eszközből áll, amelyet arra terveztek vendéglátó, monitor, összeállít és a teszt kód, vagy kódmódosítások, 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őeszköz (Make, ANT, Maven, Ivy, Gradleés mások)
- Automatizálási tesztelési keretrendszer (Selenium, Appium, TestComplete, UFT és mások)
Jenkin története
- Kohsuke Kawaguchi, a Java A SUN Microsystems-nél dolgozó fejlesztő belefáradt a kódkészítésbe és a hibák ismétlődő javításába. 2004-ben létrehozott egy Hudson nevű automatizálási szervert, amely automatizálja az építési és tesztelési feladatokat.
- A 2011, Oracle aki a Sun Microsystems tulajdonosa, vitába szállt a Hudson nyílt forráskódú közösségével, ezért elágazták a Hudsont, és átnevezték Jenkinsre.
- Hudson és Jenkins továbbra is függetlenül működött. De rövid időn belül Jenkins sok projektet és közreműködőt szerzett, míg Hudson csak 32 projekttel maradt. Idővel Jenkins népszerűbbé vált, és Hudsont már nem tartják karban.
Miért használja a folyamatos integrációt a Jenkins-szel?
Egyesek azt gondolhatják, hogy a szoftverfejlesztés régimódi módja a jobb módszer. Nézzük meg a CI Jenkins előnyeit a következő példával
Képzeljük el, hogy körülbelül 10 fejlesztő dolgozik a megosztott adattár. Egyes fejlesztők 25 nap alatt végzik el a feladatukat, míg mások 30 napot vesznek igénybe.
Jenkins előtt | Jenkins után |
---|---|
Miután az összes Fejlesztő elvégezte a rájuk rendelt kódolási feladatokat, egyidejűleg véglegesítette a kódját. Later, A Build tesztelése és telepítése megtörtént.
A kód véglegesítése megtörtént, és a tesztciklus nagyon ritka volt, és sok nap után egyetlen build készült. |
A kód elkészítése és tesztelése azonnal megtörténik, amint a fejlesztő véglegesíti a kódot. A Jenkin a nap folyamán sokszor elkészíti és teszteli a kódot
Ha a felépítés sikeres, a Jenkins telepíti a forrást a tesztkiszolgálóra, és értesíti a telepítési csapatot. Ha a build sikertelen, a Jenkins értesíti a hibákat a fejlesztői csapatnak. |
Mivel a kód egyszerre készült, egyes fejlesztőknek meg kell várniuk, amíg más fejlesztők befejezik a kódolást, hogy ellenőrizzék a felépítésüket. | A kód közvetlenül a Fejlesztői commit után készül. |
Nem könnyű feladat elkülöníteni, észlelni és kijavítani a hibákat több véglegesítés esetén. | Mivel a kódot egyetlen fejlesztő minden commit után készíti el, könnyen megállapítható, hogy kinek a kódja okozta a beépített kudarcot. |
Code build és tesztfolyamat teljesen manuálisak, így sok a meghibásodás esélye. | Automatizált építési és tesztelési folyamat, amely időt takarít meg és csökkenti a hibákat. |
A kód az összes hiba kijavítása és tesztelése után kerül telepítésre. | A kód minden sikeres felépítés és tesztelés után kerül telepítésre. |
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 tisztában vannak a régi Nokia telefonnal. A Nokia korábban bevezette az éjszakai összeépítés nevű eljárást. A különböző fejlesztők napközbeni többszöri véglegesítése után a szoftver minden este elkészült. Mivel a szoftvert naponta csak egyszer készítették el, óriási fájdalom a nagy kódbázisban található hibák elkülönítése, azonosítása és kijavítása.
Later, a Continuous Integration megközelítést alkalmazták. A szoftver megépítése és tesztelése azonnal megtörtént, amint egy fejlesztő kódot fogadott el. Ha bármilyen hibát észlel, a megfelelő fejlesztő gyorsan kijavíthatja a hibát.
Jenkins Plugins
Alapértelmezés szerint a Jenkins korlátozott funkciókkal rendelkezik. Ha a Jenkins-telepítést olyan verzióvezérlő eszközökkel szeretné integrálni, mint a Git, akkor telepítenie kell a Githez kapcsolódó bővítményeket. Valójában az olyan eszközökkel való integrációhoz, mint a Maven, Amazon EC2, telepítenie kell a megfelelő bővítményeket a Jenkins-be.
A Jenkins használatának előnyei
- Jenkinst a közösség irányítja, amely nagyon nyitott. Minden hónapban nyilvános találkozókat tartanak, és kikérik a nyilvánosság véleményét a Jenkins projekt fejlesztéséhez.
- Eddig körülbelül 280 jegyet zártak le, és a projekt háromhavonta stabil kiadást tesz közzé.
- A technológia fejlődésével a Jenkins is növekszik. A Jenkins eddig körülbelül 320 bővítményt tett közzé a plugin-adatbázisában. A beépülő modulokkal a Jenkins még erősebbé és funkciókban gazdagabbá válik.
- A Jenkins eszköz támogatja a felhőalapú architektúrát is, így telepítheti a Jenkinst felhő alapú platformokon.
- A Jenkins azért lett népszerű, mert egy fejlesztő készítette a fejlesztőknek.
A Jenkins használatának hátrányai
Bár a Jenkins nagyon erős eszköz, vannak hibái.
- A felület elavult, és a jelenlegi felhasználói felületi trendekhez képest nem felhasználóbarát.
- Bár a Jenkinst sok fejlesztő szereti, nem olyan egyszerű karbantartani, mert a Jenkins szerveren fut, és bizonyos készségekre van szüksége szerveradminisztrátorként, hogy figyelemmel kísérje tevékenységét.
- Az egyik ok, amiért sokan nem implementálják a Jenkinst, a Jenkins telepítési és konfigurálási nehézségei miatt van.
- A folyamatos integráció rendszeresen megszakad néhány apró beállítási változtatás miatt. A folyamatos integráció szünetel, ezért némi fejlesztői figyelmet igényel.
Következtetés
- Folyamatos integráció esetén a kód véglegesítése után a szoftver azonnal megépül és tesztelésre kerül
- Jenkins egy szoftverprojektben a folyamatos integráció műveleti láncának megszervezésére használta
- Jenkins előtt, amikor az összes Fejlesztő elvégezte a rájuk rendelt kódolási feladatokat, egy időben végezték el a kódjukat. Later, A Build tesztelése és telepítése megtörtént.
- A Jenkins után a kód összeállításra kerül és tesztelésre kerül, amint a fejlesztő véglegesíti a kódot. A Jenkin a nap folyamán sokszor elkészíti és teszteli a kódot
- Alapértelmezés szerint a Jenkins korlátozott funkciókkal rendelkezik. Ha a Jenkins-telepítést olyan verzióvezérlő eszközökkel szeretné integrálni, mint a Git, akkor telepítenie kell a Githez kapcsolódó bővítményeket. Szintén ellenőrizze A legjobb Jenkins alternatív eszközök
- A Jenkins legnagyobb előnye, hogy a közösség irányítja, amely nyilvános találkozókat tart, és a nyilvánosságtól kéri a Jenkins projektek fejlesztését.
- A Jenkins legnagyobb hátránya, hogy a felülete elavult, és a jelenlegi felhasználói felületi trendekhez képest nem felhasználóbarát. Ha más lehetőségeket fontolgat, amelyek korszerűbb felhasználói élményt kínálhatnak, érdemes lehet néhányat megvizsgálni legjobb folyamatos integrációs eszközök rendelkezésre álló.