Iepriekš mēs Par nepārtrauktu integrāciju (CI). Turpināsim ar nepārtrauktu piegādi. Tas ir programmatūras izstrādes metožu kopums. Tas palīdz nodrošināt koda gatavību izvietošanai.
/ Pixabay / /
Vēsture
Frāze nepārtraukta piegāde tika redzama vēl 2001. gadā pirmajā sarakstā ar pamatprincipiem: "Prioritāte ir problēmu risināšana klienta labā, izmantojot nepārtraukta aktuāla programmatūras piegādi."
2010. gadā Džezs Hembels (Jez Humble) un Deivids Farlijs (David Farley) izdeva grāmatu par nepārtrauktu piegādi. Autorus mērķis ir CD papildināt pieeju un atvieglot koda sagatavošanu izvietošanai.
Pēc grāmatas publicēšanas pieeja sāka iegūt popularitāti, un tikai dažu gadu laikā tā kļuva gandrīz vispārpieņemta. Saskaņā ar , ko veica vairāk nekā 600 izstrādātāju un IT vadītāju 2014. gadā, 97% tehnisko vadītāju un 84% programmētāju bija pazīstami ar nepārtrauktu piegādi.
Pašlaik šī pieeja joprojām ir viena no populārākajām. Saskaņā ar 2018. gada pētījumu, kurā piedalījās IT speciālistu kopiena DevOps un Jenkins Community, tās puse no vairāk nekā tūkstoša aptaujātajiem respondentu.
Kā darbojas nepārtraukta piegāde
CD pamats ir koda gatavība izvietošanai. Lai veiktu šo uzdevumu, tiek izmantota programmatūras sagatavošanas procesa automatizācija pirms izlaišanas. Tam jābūt standartizētam dažādām izstrādes vidēm, kas palīdzēs ātrāk atrast vājās vietas un optimizēt tās. Piemēram, paātrināt testēšanu.
Nepārtrauktas piegādes procesa piemērs izskatās šādi:

Ja par pirmajiem diviem etapiem rūpējas nepārtrauktas integrācijas pieeja, tad par nākamajiem diviem — nepārtraukta piegāde. Procesa stabilitāti nodrošina arī Tās uzrauga izmaiņas infrastruktūrā, datu bāzēs un atkarībās. Paša izvietošana var būt automatizēta vai arī notikt manuāli.
Procesam tiek izvirzītas šādas prasības:
- Informācijai par gatavību pāriest uz produkcijas vidi un gatavību tūlītējai izlaišanai (CD rīki testē kodu un sniedz iespēju novērtēt ietekmi no izmaiņām izlaišanā).
- Kopējā atbildība par galaproduktu. Produktu komanda — menedžeri, izstrādātāji, testētāji — domā par rezultātu, ne tikai par savu atbildības jomu (rezultāts ir darba versija, kas ir pieejama produkta lietotājiem).
CD parasti izmanto , bet klientu viedokļu apkopošanai — principu . Jauna funkcija vispirms tiek izlaista nelielai lietotāju daļai — viņu pieredze mijiedarbībā ar produktu palīdz atrast nepilnības un kļūdas, kuras netika pamanītas iekšējās testēšanas laikā.
Kāds ir ieguvums
Continuous Delivery palīdz vienkāršot koda izvietošanu, kas pozitīvi ietekmē produktivitāti un samazina darbinieku emocionālās izsīkuma iespējamību. Gala rezultātā tas samazina arī kopējās izstrādes izmaksas. Piemēram, CD palīdzēja vienai HP komandai šos izdevumus par 40%.
Turklāt — saskaņā ar 2016. gada pētījumu (28. lappuse ) — uzņēmumi, kuri ieviesa CD, par 50% ātrāk risina kiberdrošības problēmas, salīdzinot ar tiem, kas neizmanto pieeju. Kādu daļu no atšķirības var skaidrot ar automatizācijas rīku darbību.
Vēl viens plus — versiju publikāciju paātrināšana. Somijas izstrādes studijā nepārtraukta piegāde palielināt koda apkopošanas ātrumu par 25%.
Iespējamās grūtības
Pirmajā un galvenajā problēmā ir nepieciešamība pārstrukturēt ierastās procedūras. Lai pierādītu jaunās pieejas priekšrocības, ir vērts pāriet uz CD pakāpeniski, sākot ne no darbietilpīgākajām lietojumprogrammām.
Otrā potenciālā problēma — liels kodu skaits. „Zarojuma” sekas ir biežas konflikti un atkārtotas laika zudumus. Iespējams risinājums — pieeja .
. Īpaši dažos uzņēmumos galvenās grūtības rodas ar testēšanu — uz to nonāk pārāk daudz laika. Testēšanas rezultātus bieži ir jāanalizē manuāli, taču iespējamais risinājums varētu būt testu paralelizācija CD ieviešanas sākumposmā.
Jāapmāca darbinieki strādāt ar jaunajiem rīkiem — iepriekšēja apmācība ietaupīs izstrādātājiem spēkus un laiku.

/ Flickr / /
Rīki
Apskatīsim dažus atklātos rīkus Continuous Delivery:
- — serveris nepārtrauktai piegādei Java un JRuby on Rails. Tas ļauj kontrolēt visu lietojumprogrammas piegādes procesu: build—test—release. Rīks tiek izplatīts saskaņā ar Apache 2.0 licenci. Oficiālajā vietnē var atrast .
- — ietvars skriptu izveidei, kas automatizē lietojumprogrammu izvietošanu Ruby, Java vai PHP. Capistrano spēj izpildīt komandas attālinātā mašīnā, izmantojot SSH savienojumu. Tas darbojas kopā ar citiem nepārtrauktas integrācijas un piegādes rīkiem, piemēram, CI serveri Integrity.
- — daudzplatformu rīks, kas automatizē visu lietojumprogrammu izstrādes ciklu. Gradle darbojas ar Java, Python, C/C++, Scala un citiem. Ir integrācija ar Eclipse, IntelliJ un Jenkins.
- — CD platforma Go valodā. Drone var izvietot gan iekšēji, gan mākoņos. Rīks ir veidots, pamatojoties uz konteineriem un izmanto YAML failus to pārvaldīšanai.
- — platforma, kas nodrošina nepārtrauktu koda piegādi multicloud sistēmās. Izstrādāts Netflix, Liela loma rīka izstrādē bija Google inženieriem. Instalācijas instrukcijas jūs .
Ko izlasīt mūsu korporatīvajā emuārā:
Avots: habr.com
