Referenčné: čo je Continuous Delivery

Skôr sme oznámili 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.

Referenčné: čo je Continuous Delivery
/ Pixabay / bluebudgie / PL

História

Fráza continuous delivery sa dala vidieť ešte v agilnom manifeste 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 knihu k Continuous Delivery. Podľa autorov, CD dopĺňa prístup Continuous Integration 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 prieskumu, 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 používa 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:

Referenčné: čo je Continuous Delivery

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 správy konfigurácií. 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 code review, a na zber názorov od zákazníkov — princíp dark launching. 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 znižiť tieto náklady o 40%.

Okrem toho — podľa štúdie z roku 2016 (strana 28 dokumentu) — 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 pomohla 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 no branches.

. 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.

Referenčné: čo je Continuous Delivery
/ Flickr / h.ger1969 / CC BY-SA

Nástroje

Uveďme niekoľko otvorených nástrojov pre Continuous Delivery:

  • GoCD — 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 návod na konfiguráciu.
  • Capistrano — 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.
  • Gradle — 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.
  • Drone — 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.
  • Spinnaker — 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 na oficiálnej stránke.

Čo si prečítať v našom firemnom blogu:

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster