Pomoc: čo je nepretržité doručovanie

Skôr my povedal o nepretržitej integrácii (CI). Pokračujme v nepretržitom doručení. Ide o súbor metód vývoja softvéru. Pomáha zabezpečiť, aby bol váš kód pripravený na nasadenie.

Pomoc: čo je nepretržité doručovanie
/Pixabay/ bluebudgie / PL

Príbeh

Slovné spojenie nepretržité doručovanie bolo možné vidieť späť v agilný manifest z roku 2001 na začiatku zoznamu základných princípov: „Prioritou je riešenie problémov zákazníkov prostredníctvom neustáleho dodávania aktuálneho softvéru.“

V roku 2010 vydali Jez Humble a David Farley kniha nepretržitým doručovaním. CD podľa autorov dopĺňa prístup Kontinuálna integrácia a umožňuje vám zjednodušiť prípravu kódu na nasadenie.

Po vydaní knihy si tento prístup začal získavať na popularite a za pár rokov sa stal takmer všeobecne akceptovaným. Podľa prieskum, uskutočnenej medzi viac ako 600 vývojármi a IT manažérmi v roku 2014, 97 % technických manažérov a 84 % programátorov poznalo Continuous Delivery.

Teraz tento prístup zostáva jedným z najpopulárnejších. Podľa štúdie z roku 2018 zahŕňajúcej IT komunitu DevOps a Jenkins Community používa polovica z viac ako tisícky opýtaných respondentov.

Ako funguje nepretržité doručovanie?

Základom CD je pripravenosť kódu na nasadenie. Na splnenie tejto úlohy sa používa automatizácia procesu prípravy softvéru na vydanie. Mal by byť štandardom v rôznych vývojových prostrediach, čo pomôže rýchlo nájsť slabé miesta a optimalizovať ich. Napríklad urýchliť testovanie.

Príklad procesu nepretržitého doručovania vyzerá takto:

Pomoc: čo je nepretržité doručovanie

Ak je za automatizáciu prvých dvoch stupňov zodpovedný prístup kontinuálnej integrácie, potom kontinuálne doručovanie zodpovedá za ďalšie dve. Stabilitu procesov zabezpečujú okrem iného systémy konfiguračný manažment. Monitorujú zmeny v infraštruktúre, databázach a závislostiach. Samotné nasadenie môže byť automatizované alebo manuálne.

Na proces sa kladú tieto požiadavky:

  • Dostupnosť informácií o pripravenosti na vstup do produkčného prostredia a pripravenosti na okamžité vydanie (CD nástroje testujú kód a umožňujú vyhodnotiť efekt zmien vo vydaní).
  • Celková zodpovednosť za konečný produkt. Produktový tím - manažéri, vývojári, testeri - premýšľajú o výsledku, nielen o svojej oblasti zodpovednosti (výsledkom je pracovné vydanie, ktoré je k dispozícii používateľom produktu).

Na CD sa zvyčajne používa kontrola kódua na zhromažďovanie názorov zákazníkov - princíp temné spustenie. Nová funkcia je najprv uvoľnená pre malý segment používateľov – ich skúsenosti s interakciou s produktom pomáhajú nájsť nedostatky a chyby, ktoré neboli zaznamenané počas interného testovania.

Aký je prínos

Continuous Delivery pomáha zjednodušiť nasadenie kódu, čo má pozitívny vplyv na produktivitu a znižuje pravdepodobnosť vyhorenia zamestnancov. V konečnom dôsledku to znižuje celkové náklady na vývoj. Napríklad CD pomohlo jednému z tímov HP znížiť takéto náklady o 40 %.

Okrem toho, podľa štúdie z roku 2016 (strana 28 dokument) - spoločnosti, ktoré implementovali CD, riešia problémy informačnej bezpečnosti o 50% rýchlejšie ako tie, ktoré tento prístup nepoužívajú. Do určitej miery možno tento rozdiel vysvetliť výkonnosťou nástrojov na automatizáciu procesov.

Ďalším plusom je zrýchlenie releasov. Nepretržité doručovanie vo fínskom vývojovom štúdiu pomohol zvýšiť rýchlosť zostavovania kódu o 25%.

Potenciálne ťažkosti

Prvým a hlavným problémom je potreba prebudovania známych procesov. Aby sme ukázali výhody nového prístupu, oplatí sa prejsť na CD postupne, nezačínajúc aplikáciami s najnáročnejšími prácami.

Druhým potenciálnym problémom je veľký počet vetiev kódu. Dôsledkom „vetvovania“ sú časté konflikty a ďalšie straty veľkého množstva času. Možné riešenie - prístup žiadne pobočky.

Najmä v niektorých spoločnostiach vznikajú hlavné problémy s testovaním - trvá to príliš veľa času. Výsledky testov sa často musia analyzovať manuálne, ale možným riešením môže byť paralelizácia testov v počiatočných fázach implementácie CD.

Mali by ste tiež zaškoliť zamestnancov na prácu s novými nástrojmi - predbežný vzdelávací program ušetrí vývojárom úsilie a čas.

Pomoc: čo je nepretržité doručovanie
/Flickr/ h.ger1969 / CC BY-SA

Nástroje

Tu je niekoľko otvorených nástrojov na nepretržité doručovanie:

  • GoCD — server pre nepretržité doručovanie v jazyku Java a JRuby on Rails. Umožňuje vám kontrolovať celý proces doručovania aplikácie: zostavenie – test – vydanie. Nástroj je distribuovaný pod licenciou Apache 2.0. Nájdete ho na oficiálnej stránke sprievodca nastavením.
  • Capistrano — framework na vytváranie skriptov, ktoré automatizujú nasadenie aplikácií v Ruby, Java alebo PHP. Capistrano je schopný vykonávať príkazy na vzdialenom počítači pripojením sa k nemu cez SSH. Spolupracuje s ďalšími nástrojmi na nepretržitú integráciu a poskytovanie, ako je napríklad server Integrity CI.
  • grádl je multiplatformový nástroj, ktorý automatizuje celý cyklus vývoja aplikácií. Gradle pracuje s Java, Python, C/C++, Scala, atď. Existuje integrácia s Eclipse, IntelliJ a Jenkins.
  • Trubec - Platforma CD v jazyku Go. Dron môže byť nasadený on-premise alebo v cloude. Nástroj je postavený na kontajneroch a na ich správu používa súbory YAML.
  • spinakr — platforma na nepretržité doručovanie kódu v multicloudových systémoch. Inžinieri Google, vyvinutý spoločnosťou Netflix, zohrali veľkú úlohu pri vývoji tohto nástroja. Návod na inštaláciu nájdete na oficiálnej stránke.

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

Zdroj: hab.com

Pridať komentár