Mikä on JenkinsMiksi käyttää jatkuvan integraation (CI) työkalua?
⚡ Älykäs yhteenveto
Jenkins on avoimen lähdekoodin automaatiopalvelin, joka rakentaa ja testaa koodia aina, kun kehittäjä tekee commitin, muuttaen jatkuvan integraation yöllisestä tehtävästä prosessiksi, joka toimii jatkuvasti koko työpäivän ajan.
Mikä on Jenkins?
Jenkins on avoimen lähdekoodin jatkuvan integroinnin palvelin Java toimintoketjun organisoimiseksi jatkuvan integroinnin prosessin automatisoimiseksi. Jenkins tukee ohjelmiston koko kehityssykliä rakentamisesta, testaamisesta, dokumentoinnista, käyttöönotosta ja muista ohjelmistokehityksen elinkaaren vaiheista.
Jenkins on laajalti käytetty sovellus ympäri maailmaa, ja sillä on satojatuhansia asennuksia, joiden määrä kasvaa päivä päivältä. Käyttämällä Jenkinsohjelmistoyritykset voivat nopeuttaa ohjelmistokehitysprosessiaan, koska Jenkins voi automatisoida rakentamisen ja testaamisen nopeasti.
Se on palvelinpohjainen sovellus ja vaatii web-palvelimen, kuten Apache Tomcatin. Syy tähän on Jenkins ohjelmistosta tuli niin suosittu, että se pystyy valvomaan projektin kehityksen aikana esiin nousevia toistuvia tehtäviä. Esimerkiksi, jos tiimisi kehittääping projekti, Jenkins testaa projektisi rakennuksia jatkuvasti ja näyttää virheet kehitysvaiheen alkuvaiheessa.
Huomautus: WAR:n käyttöönotto Apache Tomcat toimii edelleen, mutta nykyisissä versioissa on upotettu servlet-säilö, joten Jenkins toimii normaalisti itsenäisesti. 2.555.x LTS -linja vaatii Java 21.
Mitä jatkuva integrointi on?
Jatkuva integraatio on prosessi, jossa useiden kehittäjien koodimuutokset integroidaan yhteen projektiin monta kertaa. Ohjelmisto testataan välittömästi koodin vahvistamisen jälkeen. Jokaisen koodin vahvistuksen yhteydessä koodi rakennetaan ja testataan. Jos testi läpäistään, koontiversio testataan käyttöönottoa varten. Jos käyttöönotto onnistuu, koodi lähetetään tuotantoon.
Tämä sitoutuminen, rakentaminen, testaus ja käyttöönotto on jatkuva prosessi, ja siitä syystä nimi jatkuva integrointi/käyttöönotto.
Miten Jenkins toimii?
Jenkins on palvelinpohjainen sovellus ja vaatii toimiakseen web-palvelimen, kuten Apache Tomcatin, useilla alustoilla, kuten Windows, Linux, macOS, Unix jne. Käytettäväksi Jenkins, sinun on luotava putkistoja, jotka ovat sarja vaiheita, jotka a Jenkins palvelin ottaa. Jenkins Jatkuvan integraation prosessi on tehokas työkalu, joka koostuu joukosta työkaluja, jotka on suunniteltu isännöimään, valvomaan, kääntämään ja testaamaan koodia tai koodimuutoksia, kuten:
- Jatkuvan integraation palvelin (Jenkins, Bamboo, CruiseControl, TeamCityja muut)
- Versioiden hallintatyökalu (esim. CVS, SVN, GIT, Mercurial, Perforce, ClearCase ja muut)
- Rakennustyökalu (Make, ANT, Maven, Ivy, Gradleja muut)
- Automaatiotestauskehys (Selenium, Appium, TestComplete, UFTja muut)
Nykyisissä versioissa nuo vaiheet sijaitsevat Jenkinstiedosto committoitiin koodin viereen. Jenkins Ohjain lukee tiedoston ja luovuttaa jokaisen vaiheen agentille, joka on kone, joka itse asiassa suorittaa työn.
Jenkins Historia
- Kohsuke Kawaguchi, a Java SUN Microsystemsillä työskentelevä kehittäjä oli kyllästynyt koodin rakentamiseen ja toistuvien virheiden korjaamiseen. Vuonna 2004 loi automaatiopalvelimen nimeltä Hudson, joka automatisoi rakennus- ja testaustehtävät.
- Vuonna 2011, Oracle Sun Microsystemsin omistajalla oli riita Hudsonin avoimen lähdekoodin yhteisön kanssa, joten he jakoivat Hudsonin haarauman ja nimesivät sen uudelleen nimellä Jenkins.
- Sekä Hudson että Jenkins jatkoi toimintaansa itsenäisesti. Mutta lyhyessä ajassa Jenkins hankki paljon projekteja ja avustajia, kun taas Hudsonilla oli enää vain 32 projektia. Ajan myötä Jenkins tuli suositummaksi, eikä Hudsonia enää ylläpidetä.
Miksi käyttää jatkuvaa integraatiota Jenkins?
Jotkut saattavat ajatella, että vanhanaikainen kehitystapaping ohjelmisto on parempi tapa. Ymmärretään CI:n edut Jenkins seuraavan esimerkin avulla
Kuvitellaan, että noin 10 kehittäjää työskentelee jaetun repositorion parissa. Jotkut kehittäjät suorittavat tehtävänsä 25 päivässä, kun taas toiset käyttävät siihen 30 päivää.
| Ennen Jenkins | Jälkeen Jenkins |
|---|---|
|
Kun kaikki kehittäjät olivat suorittaneet heille määrätyt koodaustehtävät, heillä oli tapana sitoa koodinsa samaan aikaan. Later, Build on testattu ja otettu käyttöön. Code commit koottu, ja testisykli oli hyvin harvinainen, ja yksi koonti tehtiin useiden päivien kuluttua. |
Koodi rakennetaan ja testataan heti, kun kehittäjä on tehnyt koodin. Jenkins rakentaa ja testaa koodia monta kertaa päivän aikana Jos rakentaminen onnistuu, niin Jenkins asentaa lähdekoodin testipalvelimelle ja ilmoittaa siitä käyttöönottotiimille. Jos rakentaminen epäonnistuu, niin Jenkins ilmoittaa virheistä kehittäjätiimille. |
| Koska koodi rakennettiin kerralla, joidenkin kehittäjien on odotettava, kunnes muut kehittäjät lopettavat koodauksen tarkistaakseen koontiversionsa | Koodi luodaan heti minkä tahansa kehittäjän sitoutumisen jälkeen. |
| Ei ole helppo tehtävä eristää, havaita ja korjata virheitä useissa toimituksissa. | Koska koodi rakennetaan jokaisen yksittäisen kehittäjän tekemän commitin jälkeen, on helppo havaita, kenen koodi aiheutti koonnin epäonnistumisen. |
| Code rakentaa ja testiprosessi ovat täysin manuaalisia, joten epäonnistumisen mahdollisuus on paljon. | Automatisoitu rakennus- ja testausprosessi säästää aikaa ja vähentää vikoja. |
| Koodi otetaan käyttöön, kun kaikki virheet on korjattu ja testattu. | Koodi otetaan käyttöön jokaisen onnistuneen rakentamisen ja testin jälkeen. |
| Kehityssykli on hidas | Kehityssykli on nopea. Uudet ominaisuudet ovat entistä helpommin käyttäjien saatavilla. Lisää voittoja. |
Tosimaailman tapaustutkimus jatkuvasta integraatiosta
Olen varma, että kaikki olette tietoisia vanhasta Nokia-puhelimesta. Nokia otti käyttöön menettelyn, jota kutsutaan nimellä nightly build. Kun useat eri kehittäjät ovat tehneet päivän aikana useita sitoumuksia, ohjelmisto kehitettiin joka ilta. Koska ohjelmisto rakennettiin vain kerran päivässä, on valtava tuska eristää, tunnistaa ja korjata virheet suuressa koodikannassa.
Later, he omaksuivat jatkuvan integraation lähestymistavan, joka on esitetty alla. Ohjelmisto rakennettiin ja testattiin heti, kun kehittäjä teki koodin. Jos virheitä havaitaan, kehittäjä voi korjata ne nopeasti.
Jenkins plugins
Oletusarvoisesti Jenkins sisältää rajoitetun määrän ominaisuuksia. Jos haluat integroida Jenkins asennuksen versionhallintatyökaluilla, kuten Gitillä, sinun on asennettava Gitiin liittyviä laajennuksia. Itse asiassa integrointia varten työkalujen, kuten Mavenin, kanssa Amazon EC2:ssa sinun on asennettava vastaavat laajennukset laitteeseesi. Jenkins, kuten alla oleva laajennusten hallintaohjelma näyttää.
Käytön edut Jenkins
- Jenkins yhteisö, joka on erittäin avoin, hallinnoi sitä. Joka kuukausi he pitävät julkisia kokouksia ja ottavat vastaan yleisön näkemyksiä hankkeen kehittämiseksi. Jenkins projekti.
- Projekti noudattaa ennustettavaa julkaisurytmiä: uusi pitkäaikaisen tuen perustaso valitaan kahdentoista viikon välein, ja sen jälkeen sille julkaistaan aikataulun mukaiset korjauspäivitykset.
- Teknologian kehittyessä myös JenkinsLiitännäisten tietokannassa on nyt yli kaksituhatta liitännäistä. Liitännäisten avulla Jenkins tulee entistä tehokkaammaksi ja ominaisuuksiltaan rikkaammaksi.
- Jenkins työkalu tukee myös pilvipohjaista arkkitehtuuria, joten voit ottaa käyttöön Jenkins pilvipohjaisilla alustoilla.
- Syy, miksi Jenkins tuli suosituksi siksi, että sen loi kehittäjä kehittäjille.
Käytön haitat Jenkins
Vaikka Jenkins on erittäin tehokas työkalu, sillä on omat heikkoutensa.
- Sen käyttöliittymä on vanhentunut eikä käyttäjäystävällinen verrattuna nykyisiin käyttöliittymätrendeihin, vaikka viimeaikaiset julkaisut ovat modernisoineet suurta osaa näytön suunnittelusta.
- Vaikka Jenkins on monien kehittäjien rakastama, sitä ei ole helppo ylläpitää, koska Jenkins toimii palvelimella ja vaatii palvelimen järjestelmänvalvojalta jonkin verran taitoja toiminnan seuraamiseen.
- Yksi syy siihen, miksi monet ihmiset eivät toteuta Jenkins johtuu sen asennuksen ja konfiguroinnin vaikeudesta Jenkins.
- Jatkuvat integraatiot katkeavat säännöllisesti pienten asetusmuutosten vuoksi. Jatkuva integrointi keskeytetään ja vaatii siksi jonkin verran kehittäjän huomiota.
- Liitännäisten riippuvuusristiriitoja ilmenee, kun useita liitännäisiä päivitetään eri aikoina, joten liitännäisten päivityksille on varattava oma ylläpitoaikansa.
Jos näillä kompromisseilla on merkitystä tiimillesi, vertaa niitä Parhaat Jenkins Vaihtoehtoiset työkalut ja laajempi lista parhaat jatkuvan integroinnin työkalut ennen sitoutumista itse isännöityyn palvelimeen.


