Atsauce: kÄ darbojas nepÄrtrauktÄs integrÄcijas process
Å odien mÄs apskatÄ«sim termina vÄsturi, apspriedÄ«sim CI ievieÅ”anas grÅ«tÄ«bas un sniegsim vairÄkus populÄrus rÄ«kus, kas palÄ«dzÄs ar to strÄdÄt.
NepÄrtraukta integrÄcija ir pieeja lietojumprogrammu izstrÄdei, kas ietver biežu projektu veidoÅ”anu un koda testÄÅ”anu.
MÄrÄ·is ir padarÄ«t integrÄcijas procesu paredzamu un agrÄ«nÄ stadijÄ atklÄt iespÄjamÄs kļūdas un kļūdas, lai bÅ«tu vairÄk laika to laboÅ”anai.
Termins nepÄrtraukta integrÄcija pirmo reizi parÄdÄ«jÄs 1991. gadÄ. To ieviesa UML valodas radÄ«tÄjs Greidijs ButÄs (Greidijs BÅ«s). Inženieris iepazÄ«stinÄja ar KI jÄdzienu kÄ daļu no savas attÄ«stÄ«bas prakses - BÅ«Å”a metode. Tas nozÄ«mÄja pakÄpenisku arhitektÅ«ras pilnveidoÅ”anu, projektÄjot objektorientÄtas sistÄmas. Gradi neaprakstÄ«ja nekÄdas prasÄ«bas nepÄrtrauktai integrÄcijai. Bet vÄlÄk savÄ grÄmatÄ "Uz objektu orientÄta analÄ«ze un dizains ar lietojumprogrammÄm"ViÅÅ” teica, ka metodoloÄ£ijas mÄrÄ·is ir paÄtrinÄt "iekÅ”Äjo izlaidumu" izlaiÅ”anu.
StÄsts
1996. gadÄ CI pieÅÄma metodikas veidotÄji ekstrÄma programmÄÅ”ana (XP) - Kents Beks (Kents Beks) un Rons Džefrijs (Rons Džefrijs). NepÄrtraukta integrÄcija kļuva par vienu no divpadsmit galvenajiem viÅu pieejas principiem. XP dibinÄtÄji precizÄja prasÄ«bas CI metodoloÄ£ijai un atzÄ«mÄja nepiecieÅ”amÄ«bu projektu bÅ«vÄt vairÄkas reizes dienÄ.
2000. gadu sÄkumÄ viens no Agile Alliance dibinÄtÄjiem sÄka veicinÄt nepÄrtrauktas integrÄcijas metodoloÄ£iju. MÄrtiÅÅ” Faulers (MÄrtins Faulers). ViÅa eksperimenti ar CI noveda pie pirmÄ programmatÅ«ras rÄ«ka Å”ajÄ jomÄ - CruiseControl. LietderÄ«bu izveidoja Martina kolÄÄ£is MetjÅ« Fommels.
BÅ«vÄÅ”anas cikls rÄ«kÄ tiek Ä«stenots kÄ dÄmons, kas periodiski pÄrbauda versiju kontroles sistÄmu, vai nav izmaiÅas koda bÄzÄ. RisinÄjumu var lejupielÄdÄt jau Å”odien ā tas izplata saskaÅÄ ar BSD lÄ«dzÄ«gu licenci.
LÄ«dz ar CI programmatÅ«ras parÄdÄ«Å”anos arvien vairÄk uzÅÄmumu sÄka pieÅemt Å”o praksi. SaskaÅÄ ar Forrester pÄtÄ«jumu [5. lpp ZiÅot], 2009. gadÄ 86% no piecdesmit aptaujÄtajiem tehnoloÄ£iju uzÅÄmumiem izmantoja vai ieviesa KI metodes.
MÅ«sdienÄs nepÄrtrauktÄs integrÄcijas praksi izmanto organizÄcijas no visdažÄdÄkajÄm nozarÄm. 2018. gadÄ liels mÄkoÅpakalpojumu sniedzÄjs veica IT speciÄlistu aptauju no pakalpojumu, izglÄ«tÄ«bas un finanÅ”u nozares uzÅÄmumiem. No seÅ”iem tÅ«kstoÅ”iem respondentu 58% teica, ka savÄ darbÄ izmanto KI rÄ«kus un principus.
KÄ tas darbojas
NepÄrtrauktÄs integrÄcijas pamatÄ ir divi rÄ«ki: versiju kontroles sistÄma un CI serveris. PÄdÄjÄ var bÅ«t fiziska ierÄ«ce vai virtuÄla maŔīna mÄkoÅa vidÄ. IzstrÄdÄtÄji augÅ”upielÄdÄ jaunu kodu vienu vai vairÄkas reizes dienÄ. CI serveris to automÄtiski kopÄ ar visÄm atkarÄ«bÄm un izveido. PÄc tam tas palaiž integrÄcijas un vienÄ«bu testus. Ja testi ir veiksmÄ«gi izturÄti, CI sistÄma izvieto kodu.
VispÄrÄjo procesa diagrammu var attÄlot Å”Ädi:
CI metodoloÄ£ija izstrÄdÄtÄjiem nosaka vairÄkas prasÄ«bas:
NekavÄjoties izlabojiet problÄmas. Å is princips CI radÄs no ekstrÄmas programmÄÅ”anas. Kļūdu laboÅ”ana ir izstrÄdÄtÄju augstÄkÄ prioritÄte.
AutomatizÄjiet procesus. IzstrÄdÄtÄjiem un vadÄ«tÄjiem integrÄcijas procesÄ pastÄvÄ«gi jÄmeklÄ vÄjÄs vietas un tÄs jÄnovÄrÅ”. PiemÄram, integrÄcijÄ bieži ir vÄjÅ” kakls izrÄdÄs testÄÅ”ana.
Veiciet montÄžu pÄc iespÄjas biežÄk. Reizi dienÄ, lai sinhronizÄtu komandas darbu.
ÄŖstenoÅ”anas grÅ«tÄ«bas
PirmÄ problÄma ir augstÄs ekspluatÄcijas izmaksas. Pat ja uzÅÄmums izmanto atvÄrtos CI rÄ«kus (par ko mÄs runÄsim vÄlÄk), tam joprojÄm bÅ«s jÄtÄrÄ nauda infrastruktÅ«ras atbalstam. TomÄr risinÄjums var bÅ«t mÄkoÅtehnoloÄ£ijas.
Tie vienkÄrÅ”o dažÄda mÄroga datoru konfigurÄciju montÄžu. Plus no uzÅÄmuma tiek apmaksÄti tikai par izmantotajiem resursiem, kas palÄ«dz ietaupÄ«t uz infrastruktÅ«ru.
PÄc aptaujÄm [14.lpp Raksts], nepÄrtraukta integrÄcija palielina uzÅÄmuma darbinieku slodzi (vismaz sÄkumÄ). ViÅiem ir jÄapgÅ«st jauni rÄ«ki, un kolÄÄ£i ne vienmÄr palÄ«dz apmÄcÄ«bÄ. TÄpÄc jums ir jÄtiek galÄ ar jaunÄm sistÄmÄm un pakalpojumiem, atrodoties ceļÄ.
TreÅ”Ä grÅ«tÄ«ba ir problÄmas ar automatizÄciju. Ar Å”o problÄmu saskaras organizÄcijas ar lielu daudzumu mantotÄ koda, uz kuru neattiecas automatizÄtie testi. Tas noved pie tÄ, ka kods tiek vienkÄrÅ”i pÄrrakstÄ«ts pirms pilnÄ«gas CI ievieÅ”anas.
IT giganti bija vieni no pirmajiem, kas novÄrtÄja metodoloÄ£ijas priekÅ”rocÄ«bas. Google izmanto nepÄrtraukta integrÄcija kopÅ” 2000. gadu vidus. CI tika ieviests, lai atrisinÄtu meklÄtÄjprogrammas kavÄÅ”anÄs problÄmu. NepÄrtraukta integrÄcija palÄ«dzÄja Ätri atklÄt un atrisinÄt problÄmas. Tagad CI izmanto visas IT giganta nodaļas.
NepÄrtraukta integrÄcija palÄ«dz arÄ« maziem uzÅÄmumiem, un KI rÄ«kus izmanto arÄ« finanÅ”u un veselÄ«bas aprÅ«pes organizÄcijas. PiemÄram, Morningstar nepÄrtrauktas integrÄcijas pakalpojumi palÄ«dzÄja par 70% ÄtrÄk novÄrst ievainojamÄ«bas. Un Philips Healthcare medicÄ«nas platforma spÄja dubultot atjauninÄjumu testÄÅ”anas Ätrumu.
Darbarīki
Å eit ir daži populÄri CI rÄ«ki:
Jenkins ir viena no populÄrÄkajÄm CI sistÄmÄm. Tas atbalsta vairÄk nekÄ tÅ«kstoti spraudÅu integrÄcijai ar dažÄdiem VCS, mÄkoÅa platformÄm un citiem pakalpojumiem. MÄs izmantojam arÄ« Jenkins rÄ«kÄ 1cloud: iekļauts mÅ«su DevOps sistÄmÄ. ViÅÅ” regulÄri pÄrbauda testÄÅ”anai paredzÄto Git filiÄli.
Buildbot ā Python ietvars savu nepÄrtraukto integrÄcijas procesu rakstÄ«Å”anai. RÄ«ka sÄkotnÄjÄ iestatÄ«Å”ana ir diezgan sarežģīta, taÄu to kompensÄ plaÅ”Äs pielÄgoÅ”anas iespÄjas. Starp sistÄmas priekÅ”rocÄ«bÄm lietotÄji izceļ tÄ zemo resursu intensitÄti.
Konkurss CI ir Pivotal serveris, kas izmanto Docker konteinerus. Concourse CI integrÄjas ar jebkuriem rÄ«kiem un versiju kontroles sistÄmÄm. IzstrÄdÄtÄji atzÄ«mÄ, ka sistÄma ir piemÄrota darbam jebkura lieluma uzÅÄmumos.
Gitlab CI ir GitLab versiju kontroles sistÄmÄ iebÅ«vÄts rÄ«ks. Pakalpojums darbojas mÄkonÄ« un konfigurÄÅ”anai izmanto YAML failus. TÄpat kÄ Concourse, Gitlab CI attiecas Docker konteineri, kas palÄ«dz izolÄt dažÄdus procesus vienu no otra.
KodÄÅ”ana ir mÄkoÅa CI serveris, kas darbojas ar GitHub, GitLab un BitBucket. Platformai nav nepiecieÅ”ama ilga sÄkotnÄjÄ iestatÄ«Å”ana ā Codeship ir pieejami standarta iepriekÅ” instalÄtie CI procesi. Maziem (lÄ«dz 100 bÅ«vÄm mÄnesÄ«) un atvÄrtÄ pirmkoda projektiem Codeship ir pieejams bez maksas.