AgrÄk mÄs stÄstÄ«ja par nepÄrtrauktu integrÄciju (CI). TurpinÄsim ar nepÄrtrauktu piegÄdi. Å is ir programmatÅ«ras izstrÄdes metožu kopums. Tas palÄ«dz nodroÅ”inÄt, ka kods ir gatavs izvietoÅ”anai.
FrÄze nepÄrtraukta piegÄde bija redzama atpakaļ veikls manifests no 2001. gada pamatprincipu saraksta sÄkumÄ: āPrioritÄte ir klientu problÄmu risinÄÅ”ana, nepÄrtraukti piegÄdÄjot jaunÄko programmatÅ«ru.ā
2010. gadÄ izlaida Džess Hambls un Deivids FÄrlijs grÄmatu ar nepÄrtrauktu piegÄdi. PÄc autoru domÄm, CD papildina pieeju NepÄrtraukta integrÄcija un ļauj vienkÄrÅ”ot koda sagatavoÅ”anu izvietoÅ”anai.
PÄc grÄmatas iznÄkÅ”anas pieeja sÄka iegÅ«t popularitÄti un jau pÄris gadu laikÄ kļuva gandrÄ«z vispÄrpieÅemta. SaskaÅÄ ar aptauja600. gadÄ, kurÄ piedalÄ«jÄs vairÄk nekÄ 2014 izstrÄdÄtÄju un IT vadÄ«tÄju, 97% tehnisko vadÄ«tÄju un 84% programmÄtÄju bija pazÄ«stami ar nepÄrtraukto piegÄdi.
Tagad Ŕī pieeja joprojÄm ir viena no populÄrÄkajÄm. SaskaÅÄ ar 2018. gada pÄtÄ«jumu, kurÄ piedalÄ«jÄs IT kopiena DevOps un Jenkins kopiena, tÄ izmanto puse no vairÄk nekÄ tÅ«kstoÅ” aptaujÄtajiem respondentiem.
KÄ darbojas nepÄrtrauktÄ piegÄde?
CD pamats ir koda gatavÄ«ba izvietoÅ”anai. Lai veiktu Å”o uzdevumu, tiek izmantota programmatÅ«ras sagatavoÅ”anas izlaiÅ”anai procesa automatizÄcija. Tam jÄbÅ«t standartam dažÄdÄs izstrÄdes vidÄs, kas palÄ«dzÄs Ätri atrast vÄjÄs vietas un tÄs optimizÄt. PiemÄram, paÄtriniet testÄÅ”anu.
NepÄrtrauktas piegÄdes procesa piemÄrs izskatÄs Å”Ädi:
Ja nepÄrtrauktÄs integrÄcijas pieeja ir atbildÄ«ga par pirmo divu posmu automatizÄciju, tad nepÄrtrauktÄ piegÄde ir atbildÄ«ga par nÄkamajiem diviem. Procesa stabilitÄti cita starpÄ nodroÅ”ina sistÄmas konfigurÄcijas pÄrvaldÄ«ba. ViÅi uzrauga izmaiÅas infrastruktÅ«rÄ, datu bÄzÄs un atkarÄ«bÄs. Pati izvietoÅ”anu var automatizÄt vai veikt manuÄli.
Procesam tiek izvirzÄ«tas Å”Ädas prasÄ«bas:
InformÄcijas pieejamÄ«ba par gatavÄ«bu ienÄkt ražoÅ”anas vidÄ un gatavÄ«bu tÅ«lÄ«tÄjai izlaiÅ”anai (CD rÄ«ki pÄrbauda kodu un dod iespÄju novÄrtÄt izlaiduma izmaiÅu ietekmi).
VispÄrÄjÄ atbildÄ«ba par galaproduktu. Produktu komanda ā vadÄ«tÄji, izstrÄdÄtÄji, testÄtÄji ā domÄ par rezultÄtu, nevis tikai par savu atbildÄ«bas jomu (rezultÄts ir darba izlaidums, kas pieejams produkta lietotÄjiem).
CD to parasti izmanto koda apskats, un klientu viedokļu apkopoÅ”anai - princips tumÅ”Ä palaiÅ”ana. Jauna funkcija vispirms tiek izlaista nelielam lietotÄju segmentam ā viÅu pieredze mijiedarbÄ«bÄ ar produktu palÄ«dz atrast trÅ«kumus un kļūdas, kas netika pamanÄ«tas iekÅ”ÄjÄs testÄÅ”anas laikÄ.
KÄds ir labums
NepÄrtraukta piegÄde palÄ«dz vienkÄrÅ”ot koda izvietoÅ”anu, kas pozitÄ«vi ietekmÄ produktivitÄti un samazina darbinieku izdegÅ”anas iespÄjamÄ«bu. Galu galÄ tas samazina kopÄjÄs izstrÄdes izmaksas. PiemÄram, CD palÄ«dzÄja vienai no ZS komandÄm samazinÄt Å”Ädas izmaksas par 40%.
TurklÄt saskaÅÄ ar 2016. gada pÄtÄ«jumu (28. lpp dokuments) - uzÅÄmumi, kas ir ieviesuÅ”i CD, informÄcijas droŔības problÄmas atrisina par 50% ÄtrÄk nekÄ tie, kas Å”o pieeju neizmanto. ZinÄmÄ mÄrÄ Å”o atŔķirÄ«bu var izskaidrot ar procesu automatizÄcijas rÄ«ku veiktspÄju.
VÄl viens plus ir izlaidumu paÄtrinÄjums. NepÄrtraukta piegÄde Somijas attÄ«stÄ«bas studijÄ palÄ«dzÄja palielinÄt koda montÄžas Ätrumu par 25%.
IespÄjamÄs grÅ«tÄ«bas
PirmÄ un galvenÄ problÄma ir nepiecieÅ”amÄ«ba atjaunot pazÄ«stamos procesus. Lai parÄdÄ«tu jaunÄs pieejas priekÅ”rocÄ«bas, uz CD ir vÄrts pÄriet pakÄpeniski, sÄkot nevis ar darbietilpÄ«gÄkajÄm lietojumprogrammÄm.
Otra iespÄjamÄ problÄma ir lielais koda atzaru skaits. āSazaroÅ”anÄsā sekas ir bieži konflikti un turpmÄks liela laika zaudÄjums. IespÄjamais risinÄjums ā pieeja nav zaru.
Jo Ä«paÅ”i dažos uzÅÄmumos galvenÄs grÅ«tÄ«bas rodas ar testÄÅ”anu - tas aizÅem pÄrÄk daudz laika. PÄrbaužu rezultÄti bieži ir jÄanalizÄ manuÄli, taÄu iespÄjamais risinÄjums var bÅ«t testu paralÄlinÄÅ”ana CD ievieÅ”anas sÄkumposmÄ.
Jums vajadzÄtu arÄ« apmÄcÄ«t darbiniekus strÄdÄt ar jauniem rÄ«kiem - iepriekÅ”Äja izglÄ«tÄ«bas programma ietaupÄ«s izstrÄdÄtÄju pÅ«les un laiku.
Å eit ir daži atvÄrti nepÄrtrauktas piegÄdes rÄ«ki:
GoCD ā serveris nepÄrtrauktai Java un JRuby on Rails piegÄdei. Ä»auj kontrolÄt visu lietojumprogrammu piegÄdes procesu: izveidoÅ”ana-testÄÅ”ana-izlaide. RÄ«ks tiek izplatÄ«ts saskaÅÄ ar Apache 2.0 licenci. To var atrast oficiÄlajÄ vietnÄ iestatÄ«Å”anas rokasgrÄmata.
Kapistrano ā ietvars skriptu izveidei, kas automatizÄ lietojumprogrammu izvietoÅ”anu Ruby, Java vai PHP. Capistrano spÄj izpildÄ«t komandas attÄlÄ maŔīnÄ, izveidojot savienojumu ar to, izmantojot SSH. Darbojas ar citiem nepÄrtrauktas integrÄcijas un piegÄdes rÄ«kiem, piemÄram, Integrity CI serveri.
Gradle ir vairÄku platformu rÄ«ks, kas automatizÄ visu lietojumprogrammu izstrÄdes ciklu. Gradle darbojas ar Java, Python, C/C++, Scala utt. Ir integrÄcija ar Eclipse, IntelliJ un Jenkins.
dÅ«koÅa - CD platforma Go valodÄ. Dronu var izvietot uz vietas vai mÄkonÄ«. Å is rÄ«ks ir izveidots uz konteineriem, un to pÄrvaldÄ«bai tiek izmantoti YAML faili.
Spinnaker ā platforma nepÄrtrauktai koda piegÄdei vairÄku mÄkoÅu sistÄmÄs. Google inženieriem, ko izstrÄdÄjis Netflix, bija liela loma rÄ«ka izstrÄdÄ. UzstÄdÄ«Å”anas instrukcijas atrodiet to oficiÄlajÄ vietnÄ.