Skôr sme o Continuous Integration (CI). Pokračujeme s Continuous Delivery. Je to súbor metód vývoja softvéru. Pomáha zabezpečiť, že kód je pripravený na nasadenie.
/ Pixabay / /
História
Fráza continuous delivery sa dala vidieť ešte v z roku 2001 na začiatku zoznamu základných princípov: „Priorita — riešiť úlohy zákazníka pomocou neustálej dodávky aktuálneho softvéru.“
V roku 2010 Jez Humble a David Farley vydali k Continuous Delivery. Podľa autorov, CD dopĺňa prístup a umožňuje zjednodušiť prípravu kódu na nasadenie.
Po vydaní knihy sa prístup začal tešiť popularite a za pár rokov sa stal takmer bežným. Podľa , ktorý bol realizovaný medzi viac ako 600 vývojármi a IT manažérmi v roku 2014, 97 % technických lídrov a 84 % programátorov poznalo Continuous Delivery.
Tento prístup zostáva dnes jedným z najpopulárnejších. Podľa výskumu z roku 2018, do ktorého sa zapojilo spoločenstvo IT odborníkov DevOps a Jenkins Community, jeho polovica z viac ako tisícky opýtaných respondentov.
Ako funguje Continuous Delivery
Základ CD — pripravenosť kódu na nasadenie. Na splnenie tejto úlohy sa používa automatizácia procesu prípravy softvéru na vydanie. Ten musí byť štandardný pre rôzne vývojové prostredia, čo pomôže rýchlejšie nájsť slabé miesta a optimalizovať ich. Napríklad zrýchliť testovanie.
Príklad procesu Continuous Delivery vyzerá nasledovne:

Ak za automatizáciu prvých dvoch etáp zodpovedá prístup Continuous Integration, za nasledujúce dve — Continuous Delivery. Stabilitu procesu zabezpečujú aj systémy . Monitorujú zmeny v infraštruktúre, databázach a závislostiach. Samotné nasadenie môže byť automatizované, alebo sa môže realizovať manuálne.
Na proces sa kladú nasledujúce požiadavky:
- Dostupnosť informácií o pripravenosti na prechod do produkčného prostredia a pripravenosť na bezprostredné vydanie (CD nástroje testujú kód a poskytujú možnosť zhodnotiť účinok zmien vo vydaní).
- Spoločná zodpovednosť za finálny produkt. Produktový tím — manažéri, vývojári, testeri — sa sústredia na výsledok, nie len na svoju zónu zodpovednosti (výsledok — funkčná verzia, ktorá je dostupná pre používateľov produktu).
V CD sa zvyčajne aplikuje , a na zber názorov od zákazníkov — princíp . Nová funkcia sa najskôr uvádza pre malý segment používateľov — ich skúsenosti s produktom pomáhajú objaviť nedostatky a chyby, ktoré si počas vnútorného testovania nevšimli.
Aký je prínos
Continuous Delivery pomáha zjednodušiť nasadenie kódu, čo pozitívne vplýva na produktivitu a znižuje riziko emocionálneho vyhorenia zamestnancov. Nakoniec to znižuje aj celkové náklady na vývoj. Napríklad, CD pomohlo jednému tímu HP tieto náklady o 40%.
Okrem toho — podľa štúdie z roku 2016 (strana 28 ) — spoločnosti, ktoré implementovali CD, riešia problémy s IT bezpečnosťou o 50% rýchlejšie v porovnaní s týmito, ktoré tento prístup nepoužívajú. Do istej miery možno takýto rozdiel vysvetliť prácou nástrojov na automatizáciu procesov.
Ďalším plusom je zrýchlenie vydávania verzií. Vo fínskej vývojovej štúdii kontinuálna dodávka zvýšiť rýchlosť zostavovania kódu o 25%.
Potenciálne ťažkosti
Prvá a základná problém — potreba prestavať zvyčajné procesy. Aby sa preukázala prínos nového prístupu, je rozumné prechádzať na CD postupne, nezačínajúc najpracovnejšími aplikáciami.
Druhá potenciálna ťažkosť — veľké množstvo vetiev kódu. Dôsledok 'rozvetvenia' — časté konflikty a ďalšie straty veľkého množstva času. Možné riešenie — prístup .
. V niektorých spoločnostiach sa najväčšie ťažkosti vyskytujú pri testovaní — testovanie trvá príliš veľa času. Výsledky testov sa často musia analyzovať ručne, ale potenciálnym riešením môže byť paralelizácia testov v počiatočných fázach zavádzania CD.
Rovnaké by sa mali aj zamestnanci naučiť pracovať s novými nástrojmi — predchádzajúci školenie ušetrí vývojárom sily a čas.

/ Flickr / /
Nástroje
Uveďme niekoľko otvorených nástrojov pre Continuous Delivery:
- — server na kontinuálne dodávanie v Jave a JRuby on Rails. Umožňuje kontrolovať celý proces dodávania aplikácií: build—test—release. Nástroj sa šíri pod licenciou Apache 2.0. Na oficiálnej stránke nájdete .
- — rámec na vytváranie skriptov, ktoré automatizujú nasadenie aplikácií v Ruby, Jave alebo PHP. Capistrano je schopný vykonávať príkazy na vzdialenom zariadení, pričom sa k nemu pripája cez SSH. Pracuje s inými nástrojmi kontinuálnej integrácie a dodávania, ako je CI-server Integrity.
- — multiplatformový nástroj, ktorý automatizuje celý cyklus vývoja aplikácií. Gradle pracuje s Javou, Python, C/C++, Scalou a ďalšími. Má integráciu s Eclipse, IntelliJ a Jenkins.
- — platforma pre CD napísaná v Go. Drone je možné nasadiť on-premise alebo v cloude. Nástroj je postavený na kontajneroch a používa YAML súbory na ich správu.
- — platforma pre kontinuálne dodávanie kódu v multi-cloud systémoch. Vyvinutá v Netflixe, veľkú úlohu v vývoji nástroja zohrali inžinieri Google. Inštrukciu na inštaláciu nájdete .
Čo si prečítať v našom firemnom blogu:
Zdroj: habr.com
