Å odien pievÄrsÄ«simies termina vÄsturei, apspriedÄ«sim CI ievieÅ”anas grÅ«tÄ«bas un sniegsim dažus populÄrus rÄ«kus, kas palÄ«dzÄs strÄdÄt ar to.
/ Flickr / / / Š¤Š¾ŃŠ¾ изменено
Termins
Continuous Integration (nepÄrtraukta integrÄcija) ir pieeja programmatÅ«ras izstrÄdÄ, kas ietver biežas projekta apkopoÅ”anas un koda testÄÅ”anas veikÅ”anu.
MÄrÄ·is ir padarÄ«t integrÄcijas procesu prognozÄjamu un atklÄt potenciÄlas kļūdas un defektus agrÄ«nÄ posmÄ, lai bÅ«tu vairÄk laika to laboÅ”ana.
Pirmo reizi termins Continuous Integration parÄdÄ«jÄs 1991. gadÄ. To ieviesa UML valodas radÄ«tÄjs (Grady Booch). Inženieris prezentÄja CI koncepciju kÄ daļu no savas izstrÄdes prakses ā . ViÅÅ” paredzÄja pakÄpenisku arhitektÅ«ras precizÄÅ”anu objektorientÄtu sistÄmu projektÄÅ”anÄ. Grady neaprakstÄ«ja konkrÄtas prasÄ«bas nepÄrtrauktai integrÄcijai. Bet vÄlÄk savÄ grÄmatÄ "" viÅÅ” teica, ka metodes uzdevums ir paÄtrinÄt "iekÅ”Äjo relīžu" izdoÅ”anu.
VÄsture
1996. gadÄ CI pÄrÅÄma ekstremÄlÄs programmÄÅ”anas metodoloÄ£ijas (XP) ā (Kent Beck) un (Ron Jeffries). NepÄrtraukta integrÄcija kļuva par vienu no divpadsmit galvenajiem principiem viÅu pieejÄ. XP dibinÄtÄji precizÄja prasÄ«bas CI metodoloÄ£ijai un uzsvÄra nepiecieÅ”amÄ«bu veikt projekta apkopoÅ”anu vairÄkas reizes dienÄ.
AgrÄ«nos 2000. gados CI metodoloÄ£iju sÄka popularizÄt viens no Agile Alliance dibinÄtÄjiem, (Martin Fowler). ViÅa eksperimenti ar CI noveda pie pirmÄ programmatÅ«ras rÄ«ka Å”ajÄ jomÄ - CruiseControl. RÄ«ku izveidoja MÄrtiÅa kolÄÄ£is - MÄrfijs Foemmels (Matthew Foemmel).
ApkopoÅ”anas cikls rÄ«kÄ ir ieviests kÄ demons, kas periodiski pÄrbauda versiju vadÄ«bas sistÄmu par izmaiÅÄm kodÄ. RisinÄjumu joprojÄm var lejupielÄdÄt - tas ir ar BSD lÄ«dzÄ«gu licenci.
Ar CI programmatÅ«ras parÄdīŔanos Å”o praksi sÄka pÄrÅemt aizvien vairÄk uzÅÄmumu. SaskaÅÄ ar Forrester [lpp.5 ] 2009. gadÄ 86% no piecdesmit aptaujÄtajÄm tehnoloÄ£iju kompÄnijÄm izmantoja vai ieviesa CI metodes.
Å odien Continuous Integration prakse tiek izmantota organizÄcijÄs no visdažÄdÄkajÄm nozarÄm. 2018. gadÄ liels mÄkoÅa pakalpojumu sniedzÄjs veica aptauju starp IT speciÄlistiem, kas strÄdÄ pakalpojumu, izglÄ«tÄ«bas un finanÅ”u jomÄ. No seÅ”iem tÅ«kstoÅ”iem respondentu 58% atbildÄja, ka izmanto CI rÄ«kus un principus.
EfemerÄli vispÄrÄjie mÄkonīŔi
NepÄrtraukta integrÄÅ”ana pamatojas uz diviem rÄ«kiem ā versiju kontroli un CI serveri. PÄdÄjais var bÅ«t gan fiziska ierÄ«ce, gan virtuÄlÄ maŔīna mÄkoÅa vidÄ. IzstrÄdÄtÄji vienu vai vairÄkas reizes dienÄ augÅ”upielÄdÄ jaunu kodu. CI serveris automÄtiski to kopÄ kopÄ ar visÄm atkarÄ«bÄm un veic kompilÄciju. PÄc tam tiek palaisti integrÄcijas un vienÄ«bu testi. Ja testi veiksmÄ«gi iziet, CI sistÄma izvÄrÅ” kodu.
VispÄrÄjo procesu shÄmu var attÄlot sekojoÅ”i:

CI metodoloÄ£ija izvirza vairÄkas prasÄ«bas izstrÄdÄtÄjiem:
- NekavÄjoties labot problÄmas. Å is princips ir nÄcis CI no ekstrÄmÄ programmÄÅ”anas. Kļūdu laboÅ”ana ir visprioritÄrÄkÄ izstrÄdÄtÄju uzdevumu.
- AutomatizÄt procesus. IzstrÄdÄtÄjiem un menedžeriem nepÄrtraukti jÄmeklÄ "Å”aurÄs vietas" integrÄcijas procesÄ un jÄnovÄrÅ” tÄs. PiemÄram, bieži "pudeļu kakls" integrÄcijÄ testÄÅ”ana.
- Veikt kompilÄcijas pÄc iespÄjas biežÄk. Reizi dienÄ, lai sinhronizÄtu komandas darbu.
IevieŔanas grūtības
Pirmais problÄmas avots ir augstas operatÄ«vÄs izmaksas. Pat ja uzÅÄmums izmanto atvÄrtos CI rÄ«kus (par kuriem mÄs runÄsim tÄlÄk), tam joprojÄm bÅ«s jÄtÄrÄ nauda infrastruktÅ«ras atbalstam. TomÄr risinÄjums var bÅ«t mÄkoÅa tehnoloÄ£ijas.
TÄs vienkÄrÅ”o dažÄdu mÄrogu datoru konfigurÄciju izveidi. TurklÄt uzÅÄmumi tikai par izmantotajiem resursiem, kas palÄ«dz ietaupÄ«t uz infrastruktÅ«ru.
SaskaÅÄ ar aptaujÄm [lpp.14 ], nepÄrtraukta integrÄcija palielina uzÅÄmuma darbinieku slodzi (vismaz sÄkotnÄjÄ periodÄ). ViÅiem jÄapgÅ«st jauni rÄ«ki, un kolÄÄ£i ne vienmÄr palÄ«dz mÄcÄ«bÄs. TÄpÄc ir jÄcÄ«nÄs ar jauniem ietvariem un pakalpojumiem āuz vietasā.
TreÅ”Ä grÅ«tÄ«ba - automatizÄcijas problÄmas. Ar to saskaras organizÄcijas, kurÄm ir liels apjoms vecÄ koda, kas nav pÄrklÄts ar automatizÄtajiem testiem. Tas noved pie tÄ, ka kodu vienkÄrÅ”i pÄrraksta pirms pilnÄ«gas CI ievieÅ”anas.

/ Flickr / /
Kas izmanto
KÄ viens no pirmajiem metodikas ieguvumiem novÄrtÄja IT giganti. Google ieviesa nepÄrtrauktu integrÄciju kopÅ” 2000. gadu vidus. CI tika ieviesta, lai atrisinÄtu izvÄrÅ”anas kavÄÅ”anÄs problÄmu meklÄtÄjÄ. NepÄrtrauktÄ integrÄcija palÄ«dzÄja Ätri identificÄt un novÄrst trÅ«kumus. Tagad CI izmanto visas IT giganta struktÅ«rvienÄ«bas.
NepÄrtrauktÄ integrÄcija palÄ«dz arÄ« mazÄm kompÄnijÄm, un CI rÄ«kus izmanto finanÅ”u un medicÄ«nas organizÄcijas. PiemÄram, Morningstar nepÄrtrauktÄs integrÄcijas pakalpojumi palÄ«dzÄja novÄrst ievainojamÄ«bas par 70% ÄtrÄk. SavukÄrt medicÄ«nas platforma Philips Healthcare spÄja divreiz paÄtrinÄt jauninÄjumu testÄÅ”anu.
Rīki
Å eit ir daži populÄri rÄ«ki CI jomÄ:
- ā viena no populÄrÄkajÄm CI sistÄmÄm. TÄ atbalsta vairÄk nekÄ tÅ«kstoÅ” spraudÅu integrÄcijai ar dažÄdiem VCS, mÄkoÅplatformÄm un citiem pakalpojumiem. Jenkins ir arÄ« mÅ«su rÄ«ks 1cloud: tas . Tas regulÄri pÄrbauda Git filiÄli, kas paredzÄta testÄÅ”anai.
- ā Python ietvars, lai rakstÄ«tu savus nepÄrtrauktÄs integrÄcijas procesus. SÄkotnÄjÄ rÄ«ka konfigurÄcija ir diezgan sarežģīta, tomÄr to kompensÄ plaÅ”Äs pielÄgoÅ”anas iespÄjas. Starp ietvara priekÅ”rocÄ«bÄm lietotÄji izceļ tÄ zemo resursu patÄriÅu.
- ā Pivotal serveris, kas izmanto Docker konteinerus. Concourse CI integrÄjas ar jebkÄdiem rÄ«kiem un versiju kontroles sistÄmÄm. IzstrÄdÄtÄji norÄda, ka sistÄma ir piemÄrota darbam kompanijÄs ar jebkÄdu izmÄru.
- ā rÄ«ks, kas ir iebÅ«vÄts GitLab versiju kontrolÄ. Pakalpojums darbojas mÄkoÅÄ« un izmanto YAML failus konfigurÄcijai. TÄpat kÄ Concourse, GitLab CI Docker konteineri, kas palÄ«dz izolÄt dažÄdus procesus citam no cita.
- ā mÄkoÅu CI serveris, kas darbojas ar GitHub, GitLab un BitBucket. Platforma neprasa ilgu sÄkotnÄju konfigurÄciju ā Codeship piedÄvÄ standarta iepriekÅ” iestatÄ«tas CI procesus. MazÄm (lÄ«dz 100 bÅ«vÄm mÄnesÄ«) un open source projektiem Codeship ir pieejams bez maksas.
MateriÄli no mÅ«su korporatÄ«vÄ bloga:
Avots: habr.com
