Mikä on Jenkins?
Jenkins on avoimen lähdekoodin jatkuvan integraation palvelin, joka pystyy järjestämään toimintaketjun, joka auttaa jatkuvan integraation prosessin (eikä vain) saavuttamisessa automatisoidusti.
Jenkins on ilmainen ja kirjoitettu kokonaan Java-kielellä. Jenkins on laajalti käytetty sovellus ympäri maailmaa, jolla on noin 300 000 asennusta ja joka kasvaa päivittäin.
Se on palvelinpohjainen sovellus ja vaatii Apache Tomcatin kaltaisen verkkopalvelimen. Jenkinsin suosion nousu johtuu siitä, että se seuraa toistuvia tehtäviä, jotka syntyvät projektin kehittämisen aikana. Esimerkiksi, jos tiimisi on kehittämässä projektia, Jenkins testaa projektisi rakenteita jatkuvasti ja näyttää virheet kehityksen alkuvaiheessa.
Jenkinsin avulla ohjelmistoyritykset voivat nopeuttaa ohjelmistokehitysprosessiaan, sillä Jenkins pystyy automatisoimaan rakentamisen ja testauksen nopeasti. Jenkins tukee ohjelmistojen koko kehityksen elinkaarta suunnittelusta, testaamisesta, dokumentoinnista, käyttöönotosta ja muista ohjelmistokehityksen elinkaaren vaiheista.
Tässä opetusohjelmassa opit
- Mikä on Jenkins?
- Mikä on jatkuva integraatio?
- Jenkinin historia
- Miksi käyttää jatkuvaa integraatiota Jenkinsin kanssa?
- Tosielämän tapaustutkimus jatkuvasta integraatiosta
- Jenkinsin käytön edut
- Jenkinsin käytön haitat
Mikä on jatkuva integraatio?
Jatkuvassa integroinnissa koodin antamisen jälkeen ohjelmisto rakennetaan ja testataan välittömästi. Suuressa projektissa, jossa on paljon kehittäjiä, sitoumukset tehdään useita kertoja päivässä. Jokaisen sitoutumiskoodin kanssa rakennetaan ja testataan. Jos testi on läpäissyt, koontiversio testataan käyttöönottoa varten. Jos käyttöönotto onnistuu, koodi työnnetään tuotantoon. Tämä sitoutuminen, koontiversio, testaus ja käyttöönotto on jatkuva prosessi, ja tästä syystä nimi on jatkuva integrointi / käyttöönotto.
Jatkuva integraatio -putki on tehokas instrumentti, joka koostuu joukosta työkaluja, jotka on suunniteltu isännöimään , seuraamaan , kokoamaan ja testaamaan koodia tai koodimuutoksia, kuten:
- Jatkuva integraatiopalvelin (Jenkins, Bamboo, CruiseControl, TeamCity ja muut)
- Lähteenhallintatyökalu (esim. CVS, SVN, GIT, Mercurial, Perforce, ClearCase ja muut)
- Koontityökalu (Merkki, ANT, Maven, Ivy, Gradle ja muut)
- Automaatiotestauskehys (seleeni, Appium, TestComplete, UFT ja muut)
Jenkinin historia
- SUN Microsystemsissä työskentelevä Java-kehittäjä Kohsuke Kawaguchi oli kyllästynyt koodin rakentamiseen ja virheiden korjaamiseen toistuvasti. Vuonna 2004 luotu Hudson-niminen automaatiopalvelin, joka automatisoi rakennus- ja testaustehtävät.
- Vuonna 2011 Sun Microsystemsin omistaneella Oraclella oli kiista Hudsonin avoimen lähdekoodin yhteisön kanssa, joten he haarautuivat Hudsoniin ja nimeivät sen uudeksi nimeksi Jenkins.
- Sekä Hudson että Jenkins jatkoivat toimintaansa itsenäisesti. Mutta lyhyessä ajassa Jenkins hankki paljon projekteja ja avustajia, kun taas Hudson pysyi vain 32 projektissa. Ajan myötä Jenkins tuli suositummaksi, eikä Hudsonia enää ylläpidetä.
Miksi käyttää jatkuvaa integraatiota Jenkinsin kanssa?
Jotkut ihmiset saattavat ajatella, että vanhanaikainen tapa kehittää ohjelmistoa on parempi tapa. Ymmärretään seuraavalla esimerkillä CI: n edut Jenkinsin kanssa
Kuvitellaan, että noin kymmenen kehittäjää työskentelee jaetun arkiston parissa. Jotkut kehittäjät suorittavat tehtävänsä 25 päivässä, kun taas toiset vievät 30 päivää.
Ennen Jenkinsiä | Jenkinsin jälkeen |
---|---|
Kun kaikki kehittäjät olivat suorittaneet osoitetut koodaustehtävät, he sitoutuivat koodinsa samaan aikaan. Myöhemmin Build testataan ja otetaan käyttöön. Koodi sitoutui rakentamaan, ja testisykli oli hyvin harvinaista, ja yksi koontiversio tehtiin monen päivän kuluttua. | Koodi rakennetaan ja testataan heti, kun kehittäjä sitoutuu koodiin. Jenkin rakentaa ja testaa koodia monta kertaa päivän aikana. Jos koontitoiminto onnistuu, Jenkins ottaa lähteen käyttöön testipalvelimelle ja ilmoittaa siitä asennusryhmälle. Jos koontiversio epäonnistuu, Jenkins ilmoittaa virheistä kehittäjälle. |
Koska koodi rakennettiin kaikki kerralla, joidenkin kehittäjien olisi odotettava, kunnes muut kehittäjät päättävät koodauksen tarkistaakseen rakennuksensa | Koodi rakennetaan heti minkä tahansa kehittäjän sitoutumisen jälkeen. |
Ei ole helppoa erottaa, havaita ja korjata virheitä useille sitoumuksille. | Koska koodi rakennetaan yksittäisen kehittäjän jokaisen sitoutumisen jälkeen, on helppo havaita, kenen koodi aiheutti rakennuksen epäonnistumisen |
Koodinrakennus ja testausprosessi ovat täysin manuaalisia, joten epäonnistumismahdollisuudet ovat paljon. | Automatisoitu rakennus- ja testausprosessi säästää ajoitusta ja vähentää vikoja. |
Koodi otetaan käyttöön, kun kaikki virheet on korjattu ja testattu. | Koodi otetaan käyttöön jokaisen onnistuneen rakennuksen ja testin jälkeen. |
Kehitysjakso on hidas | Kehityssykli on nopea. Uudet ominaisuudet ovat helpommin käyttäjien käytettävissä. Lisää voittoja. |
Tosielämän tapaustutkimus jatkuvasta integraatiosta
Olen varma, että te kaikki tiedätte vanhan Nokia-puhelimen. Nokia käytti tapana toteuttaa menettely, jota kutsutaan öisin. Useiden kehittäjien päivittäisen sitoutumisen jälkeen ohjelmisto rakennettiin joka ilta. Koska ohjelmisto rakennettiin vain kerran päivässä, on valtava kipu eristää, tunnistaa ja korjata virheet suuressa koodipohjassa.
Myöhemmin he ottivat käyttöön jatkuvan integraation lähestymistavan. Ohjelmisto rakennettiin ja testattiin heti, kun kehittäjä antoi koodin. Jos virheitä havaitaan, vastaava kehittäjä voi korjata vian nopeasti.
Jenkins-laajennukset
Jenkinsillä on oletusarvoisesti rajoitettu joukko ominaisuuksia. Jos haluat integroida Jenkins-asennuksesi versionhallintatyökaluihin, kuten Git, sinun on asennettava Gitiin liittyvät laajennukset. Itse asiassa, jotta voit integroida Mavenin, Amazon EC2: n kaltaisten työkalujen kanssa, sinun on asennettava vastaavat laajennukset Jenkinsiin.

Jenkinsin käytön edut
- Jenkinsiä hallinnoi hyvin avoin yhteisö. Joka kuukausi he pitävät julkisia kokouksia ja ottavat yleisöltä yhteyttä Jenkins-projektin kehittämiseen.
- Tähän mennessä noin 280 lippua on suljettu, ja projekti julkaisee vakaan julkaisun kolmen kuukauden välein.
- Teknologian kasvaessa myös Jenkins kasvaa. Toistaiseksi Jenkins on lisännyt tietokantaansa noin 320 laajennusta. Laajennusten avulla Jenkinsistä tulee vieläkin tehokkaampi ja monipuolisempi.
- Jenkins tukee myös pilvipohjaista arkkitehtuuria, jotta voit ottaa Jenkinsin käyttöön pilvipohjaisissa alustoissa.
- Jenkinsin suosio johtuu siitä, että kehittäjä on luonut sen kehittäjille.
Jenkinsin käytön haitat
Vaikka Jenkins on erittäin tehokas työkalu, sillä on puutteita.
- Sen käyttöliittymä on vanhentunut eikä käyttäjäystävällinen verrattuna nykyisiin käyttöliittymän trendeihin.
- Vaikka monet kehittäjät rakastavat Jenkinsiä, sitä ei ole niin helppo ylläpitää, koska Jenkins toimii palvelimella ja vaatii jonkin verran taitoja palvelimen järjestelmänvalvojana seuraamaan sen toimintaa.
- Yksi syy, miksi monet ihmiset eivät ota Jenkinsiä käyttöön, johtuu sen vaikeuksista asentaa ja konfiguroida Jenkins.
- Jatkuva integraatio katkeaa säännöllisesti pienten asetusten muutosten vuoksi. Jatkuva integrointi keskeytyy ja vaatii siksi kehittäjän huomiota.
Päätelmä:
- Jatkuvassa integraatiossa ohjelmisto rakennetaan ja testataan heti koodin sitoutumisen jälkeen
- Jenkins on avoimen lähdekoodin jatkuva integrointipalvelin, joka pystyy järjestämään toimintaketjun
- Ennen kuin kaikki kehittäjät olivat suorittaneet osoitetut koodaustehtävät, ennen Jenkinsiä he käyttivät koodinsa sitoutumista samanaikaisesti. Myöhemmin Build testataan ja otetaan käyttöön.
- Jenkinsin jälkeen koodi on rakennettu ja testattava heti, kun kehittäjä sitoutuu koodiin. Jenkin rakentaa ja testaa koodia monta kertaa päivän aikana
- Jenkinsillä on oletusarvoisesti rajoitettu joukko ominaisuuksia. Jos haluat integroida Jenkins-asennuksesi versionhallintatyökaluihin, kuten Git, sinun on asennettava Gitiin liittyvät laajennukset
- Jenkinsin suurimmat edut on, että sitä hallinnoi yhteisö, joka pitää julkisia kokouksia ja ottaa yleisöltä panoksia Jenkins-projektien kehittämiseen
- Jenkinin suurin huijaus on, että sen käyttöliittymä on vanhentunut eikä käyttäjäystävällinen verrattuna nykyisiin käyttöliittymän trendeihin.