Referenca: kako deluje proces neprekinjene integracije

Danes si bomo ogledali zgodovino izraza, razpravljali o težavah pri izvajanju CI in ponudili več priljubljenih orodij, ki vam bodo pomagala pri delu z njim.

Referenca: kako deluje proces neprekinjene integracije
/flickr/ Altug Karakoč / CC BY / Fotografija spremenjena

Izraz

Nenehna integracija je pristop k razvoju aplikacij, ki vključuje pogoste gradnje projektov in testiranje kode.

Cilj je narediti proces integracije predvidljiv in odkriti morebitne hrošče in napake v zgodnji fazi, tako da je na voljo več časa za njihovo odpravo.

Izraz kontinuirana integracija se je prvič pojavil leta 1991. Predstavil ga je ustvarjalec jezika UML Grady Butch (Grady Booch). Inženir je predstavil koncept CI kot del lastne razvojne prakse - Boochova metoda. To je pomenilo postopno izpopolnjevanje arhitekture pri načrtovanju objektno usmerjenih sistemov. Gradi ni opisal nobenih zahtev za stalno integracijo. Toda kasneje v svoji knjigi "Objektno usmerjena analiza in načrtovanje z aplikacijami"Rekel je, da je cilj metodologije pospešiti izdajo" internih izdaj.

Zgodba

Leta 1996 so ustvarjalci metodologije sprejeli CI ekstremno programiranje (XP) - Kent Beck (Kent Beck) in Ron Jeffries (Ron Jeffries). Nenehno povezovanje je postalo eno od dvanajstih ključnih načel njihovega pristopa. Ustanovitelji XP so pojasnili zahteve za metodologijo CI in opozorili na potrebo po gradnji projekta večkrat na dan.

V začetku leta 2000 je eden od ustanoviteljev Agile Alliance začel promovirati metodologijo neprekinjenega povezovanja Martin Fowler (Martin Fowler). Njegovi poskusi s CI so pripeljali do prvega programskega orodja na tem področju – CruiseControl. Pripomoček je ustvaril Martinov kolega Matthew Foemmel.

Gradbeni cikel v orodju je implementiran kot demon, ki redno preverja sistem za nadzor različic glede sprememb v osnovi kode. Rešitev lahko prenesete še danes - it distributer pod licenco, podobno BSD.

S pojavom programske opreme za KI je vse več podjetij začelo sprejemati to prakso. Glede na raziskavo Forrester [stran 5 poročilo] je leta 2009 86 % od petdesetih anketiranih tehnoloških podjetij uporabljalo ali izvajalo metode KI.

Danes prakso kontinuirane integracije uporabljajo organizacije iz najrazličnejših panog. Leta 2018 je velik ponudnik storitev v oblaku izvedel raziskavo med IT strokovnjaki iz podjetij v storitvenem, izobraževalnem in finančnem sektorju. Od šest tisoč vprašanih jih je 58 % odgovorilo, da pri svojem delu uporabljajo orodja in načela KI.

Kako to deluje

Neprekinjena integracija temelji na dveh orodjih: sistemu za nadzor različic in strežniku CI. Slednji je lahko fizična naprava ali virtualni stroj v oblačnem okolju. Razvijalci naložijo novo kodo enkrat ali večkrat na dan. Strežnik CI ga samodejno kopira z vsemi odvisnostmi in zgradi. Nato izvaja integracijske in enotne teste. Če so testi uspešni, sistem CI uvede kodo.

Splošni diagram procesa je lahko predstavljen na naslednji način:

Referenca: kako deluje proces neprekinjene integracije

Metodologija CI postavlja številne zahteve za razvijalce:

  • Takoj odpravite težave. To načelo je prišlo v CI iz ekstremnega programiranja. Odpravljanje napak je glavna prioriteta razvijalcev.
  • Avtomatizirajte procese. Razvijalci in menedžerji morajo nenehno iskati ozka grla v procesu integracije in jih odpravljati. Pri integraciji je na primer pogosto ozko grlo se izkaže testiranje.
  • Izvedite skupščine čim pogosteje. Enkrat na dan za sinhronizacijo dela ekipe.

Težave pri izvajanju

Prva težava so visoki obratovalni stroški. Tudi če podjetje uporablja odprta orodja CI (o čemer bomo govorili kasneje), bo še vedno moralo porabiti denar za podporo infrastrukture. Rešitev pa so lahko tehnologije v oblaku.

Poenostavijo sestavljanje računalniških konfiguracij različnih velikosti. Plus podjetja plačati samo za porabljene vire, kar pomaga prihraniti pri infrastrukturi.

Glede na raziskave [stran 14 Člen] nenehno povezovanje povečuje obremenitev zaposlenih v podjetju (vsaj na začetku). Naučiti se morajo novih orodij, kolegi pa ne pomagajo vedno pri usposabljanju. Zato se morate z novimi okviri in storitvami ukvarjati sproti.

Tretja težava so težave z avtomatizacijo. S to težavo se soočajo organizacije z veliko količino podedovane kode, ki ni zajeta z avtomatiziranimi testi. To vodi do dejstva, da se koda preprosto prepiše pred popolno implementacijo CI.

Referenca: kako deluje proces neprekinjene integracije
/flickr/ theilr / CC BY-SA

Kdo uporablja

IT-velikani so bili med prvimi, ki so cenili prednosti metodologije. Google uporablja stalno povezovanje od sredine 2000-ih. CI je bil implementiran za rešitev problema zamud v iskalniku. Stalna integracija je pripomogla k hitremu odkrivanju in reševanju težav. Zdaj CI uporabljajo vsi oddelki IT velikana.

Stalna integracija pomaga tudi malim podjetjem, orodja CI pa uporabljajo tudi finančne in zdravstvene organizacije. Na primer, pri Morningstarju so storitve stalne integracije pomagale popraviti ranljivosti 70 % hitreje. In medicinski platformi Philips Healthcare je uspelo podvojiti hitrost testiranja posodobitev.

Orodja

Tukaj je nekaj priljubljenih orodij za CI:

  • Jenkins je eden najbolj priljubljenih CI sistemov. Podpira več kot tisoč vtičnikov za integracijo z različnimi VCS, oblačnimi platformami in drugimi storitvami. Uporabljamo tudi orodje Jenkins at 1cloud: vključeni v naš sistem DevOps. Redno preverja vejo Git, namenjeno testiranju.
  • Buildbot — ogrodje python za pisanje lastnih neprekinjenih integracijskih procesov. Začetna nastavitev orodja je precej zapletena, vendar se to kompenzira s širokimi možnostmi prilagajanja. Med prednostmi ogrodja uporabniki poudarjajo njegovo nizko intenzivnost virov.
  • CI je strežnik podjetja Pivotal, ki uporablja vsebnike Docker. Concourse CI se integrira z vsemi orodji in sistemi za nadzor različic. Razvijalci ugotavljajo, da je sistem primeren za delo v podjetjih katere koli velikosti.
  • Gitlab CI je orodje, vgrajeno v sistem za nadzor različic GitLab. Storitev deluje v oblaku in za konfiguracijo uporablja datoteke YAML. Tako kot Concourse, Gitlab CI velja Docker vsebniki, ki pomagajo izolirati različne procese drug od drugega.
  • Kodiranje je strežnik CI v oblaku, ki deluje z GitHub, GitLab in BitBucket. Platforma ne zahteva dolge začetne nastavitve – v Codeshipu so na voljo standardni vnaprej nameščeni procesi CI. Za majhne (do 100 gradenj na mesec) in odprtokodne projekte je Codeship na voljo brezplačno.

Materiali iz našega korporativnega bloga:

Vir: www.habr.com

Dodaj komentar