Viite: kuinka jatkuva integrointiprosessi toimii

Tänään tarkastelemme termin historiaa, keskustelemme CI:n käyttöönoton vaikeuksista ja tarjoamme useita suosittuja työkaluja, jotka auttavat sinua työskentelemään sen kanssa.

Viite: kuinka jatkuva integrointiprosessi toimii
/flickr/ Altug Karakoc / CC BY / Kuvaa muokattu

termi

Jatkuva integrointi on lähestymistapa sovelluskehitykseen, joka sisältää toistuvia projekteja ja kooditestauksia.

Tavoitteena on tehdä integraatioprosessista ennakoitavissa ja havaita mahdolliset virheet ja virheet varhaisessa vaiheessa, jotta niiden korjaamiseen jää enemmän aikaa.

Termi Continuous Integration ilmestyi ensimmäisen kerran vuonna 1991. Sen esitteli UML-kielen luoja Grady Butch (Grady Booch). Insinööri esitteli CI:n käsitteen osana omaa kehityskäytäntöään - Booch menetelmä. Se merkitsi arkkitehtuurin asteittaista parantamista suunniteltaessa oliopohjaisia ​​järjestelmiä. Gradi ei kuvaillut vaatimuksia jatkuvalle integraatiolle. Mutta myöhemmin kirjassaan "Oliolähtöinen analyysi ja suunnittelu sovellusten kanssa"Hän sanoi, että menetelmän tavoitteena on nopeuttaa "sisäisten julkaisujen" julkaisemista.

Tarina

Metodologian luojat ottivat käyttöön CI:n vuonna 1996 äärimmäinen ohjelmointi (XP) - Kent Beck (Kent Beck) ja Ron Jeffries (Ron Jeffries). Jatkuvasta integroinnista tuli yksi heidän lähestymistavan kahdestatoista keskeisestä periaatteesta. XP:n perustajat selvensivät CI-metodologian vaatimuksia ja totesivat tarpeen rakentaa projekti useita kertoja päivässä.

2000-luvun alussa yksi Agile Alliancen perustajista alkoi edistää jatkuvan integraation metodologiaa. Martin Fowler (Martin Fowler). Hänen kokeilunsa CI:n kanssa johtivat ensimmäiseen ohjelmistotyökaluun tällä alalla - CruiseControliin. Apuohjelman loi Martinin kollega Matthew Foemmel.

Työkalun rakennussykli on toteutettu demonina, joka tarkistaa säännöllisesti versionhallintajärjestelmästä koodipohjan muutosten varalta. Ratkaisu voidaan ladata tänään - se jakelija BSD:n kaltaisella lisenssillä.

CI-ohjelmistojen tultua käyttöön yhä useammat yritykset alkoivat omaksua käytäntöä. Forresterin tutkimuksen mukaan [sivu 5 raportti], vuonna 2009 86 % kyselyyn vastanneista viidestäkymmenestä teknologiayrityksestä käytti tai otti käyttöön CI-menetelmiä.

Nykyään jatkuvan integraation käytäntöä käyttävät useiden eri alojen organisaatiot. Vuonna 2018 suuri pilvipalveluntarjoaja teki kyselyn palvelu-, koulutus- ja rahoitusalan yritysten IT-asiantuntijoille. Kuudesta tuhannesta vastaajasta 58 % sanoi käyttävänsä CI-työkaluja ja -periaatteita työssään.

Kuinka tämä toimii

Jatkuva integrointi perustuu kahteen työkaluun: versionhallintajärjestelmään ja CI-palvelimeen. Jälkimmäinen voi olla joko fyysinen laite tai virtuaalinen kone pilviympäristössä. Kehittäjät lataavat uuden koodin yhden tai useamman kerran päivässä. CI-palvelin kopioi sen automaattisesti kaikkine riippuvuuksineen ja rakentaa sen. Sen jälkeen se suorittaa integraatio- ja yksikkötestejä. Jos testit läpäisevät onnistuneesti, CI-järjestelmä ottaa koodin käyttöön.

Yleinen prosessikaavio voidaan esittää seuraavasti:

Viite: kuinka jatkuva integrointiprosessi toimii

CI-metodologia asettaa kehittäjille useita vaatimuksia:

  • Korjaa ongelmat välittömästi. Tämä periaate tuli CI:lle äärimmäisestä ohjelmoinnista. Virheiden korjaaminen on kehittäjien tärkein prioriteetti.
  • Automatisoi prosesseja. Kehittäjien ja johtajien on jatkuvasti etsittävä integraatioprosessin pullonkauloja ja poistettava niitä. Esimerkiksi integraatiossa on usein pullonkaula osoittautuu testaus.
  • Suorita kokoonpanot niin usein kuin mahdollista. Kerran päivässä synkronoidaksesi tiimin työt.

Toteutusvaikeudet

Ensimmäinen ongelma on korkeat käyttökustannukset. Vaikka yritys käyttää avoimia CI-työkaluja (joista puhumme myöhemmin), sen on silti käytettävä rahaa infrastruktuurin tukemiseen. Pilviteknologiat voivat kuitenkin olla ratkaisu.

Ne yksinkertaistavat eri mittakaavan tietokonekokoonpanojen kokoamista. Plussaa firmasta maksaa vain käytettyjen resurssien osalta, mikä auttaa säästämään infrastruktuuria.

Tutkimusten mukaan [sivu 14 Artikkeli], jatkuva integraatio lisää yrityksen työntekijöiden kuormitusta (ainakin aluksi). Heidän on opittava uusia työkaluja, eivätkä kollegat aina auta koulutuksessa. Siksi sinun on käsiteltävä uusia puitteita ja palveluita liikkeellä ollessasi.

Kolmas vaikeus on automaatioongelmat. Organisaatiot, joilla on suuri määrä vanhaa koodia, jota automaattiset testit eivät kata, kohtaavat tämän ongelman. Tämä johtaa siihen, että koodi yksinkertaisesti kirjoitetaan uudelleen ennen CI:n täyttä käyttöönottoa.

Viite: kuinka jatkuva integrointiprosessi toimii
/flickr/ theilr / CC BY-SA

Kuka käyttää

IT-jättiläiset olivat ensimmäisten joukossa, jotka arvostivat menetelmän edut. Google käyttää jatkuva integraatio 2000-luvun puolivälistä lähtien. CI otettiin käyttöön ratkaisemaan hakukoneen viiveet. Jatkuva integrointi auttoi havaitsemaan ja ratkaisemaan ongelmat nopeasti. Nyt CI:tä käyttävät IT-jätin kaikki osastot.

Jatkuva integraatio auttaa myös pieniä yrityksiä, ja CI-työkaluja käyttävät myös talous- ja terveydenhuollon organisaatiot. Esimerkiksi Morningstarilla jatkuvat integrointipalvelut auttoivat haavoittuvuuksien korjaamista 70 % nopeammin. Ja Philips Healthcare -lääketieteellinen alusta pystyi kaksinkertaistamaan päivitysten testausnopeuden.

Työkalut

Tässä on joitain suosittuja CI:n työkaluja:

  • Jenkins on yksi suosituimmista CI-järjestelmistä. Se tukee yli tuhatta lisäosaa integroitaviksi eri VCS-, pilvialustojen ja muiden palvelujen kanssa. Käytämme myös Jenkinsiä 1cloud: -työkalussa mukana DevOps-järjestelmässämme. Hän tarkistaa säännöllisesti testaukseen tarkoitetun Git-haaran.
  • Buildbot — Python-kehys omien jatkuvien integrointiprosessien kirjoittamiseen. Työkalun alkuasetus on melko monimutkainen, mutta sen kompensoivat laajat mukautusvaihtoehdot. Kehyksen eduista käyttäjät korostavat sen alhaista resurssiintensiivisyyttä.
  • Concourse CI on Pivotalin palvelin, joka käyttää Docker-säilöjä. Concourse CI integroituu kaikkiin työkaluihin ja versionhallintajärjestelmiin. Kehittäjät huomauttavat, että järjestelmä sopii työhön kaikenkokoisissa yrityksissä.
  • Gitlab CI on GitLab-versionhallintajärjestelmään sisäänrakennettu työkalu. Palvelu toimii pilvessä ja käyttää YAML-tiedostoja konfigurointiin. Kuten Concourse, Gitlab CI pätee Docker-säiliöt, jotka auttavat eristämään eri prosesseja toisistaan.
  • Koodaus on pilvi-CI-palvelin, joka toimii GitHubin, GitLabin ja BitBucketin kanssa. Alusta ei vaadi pitkää alkuasetusta – vakiomuotoiset esiasennetut CI-prosessit ovat saatavilla Codeshipissä. Codeship on saatavilla ilmaiseksi pienille (jopa 100 koontiversiota kuukaudessa) ja avoimen lähdekoodin projekteille.

Materiaalit yritysblogistamme:

Lähde: will.com

Lisää kommentti