Nápověda: co je nepřetržité doručování

Dříve jsme řekl o kontinuální integraci (CI). Pokračujme v průběžném doručování. Jedná se o soubor metod vývoje softwaru. Pomáhá zajistit, aby byl váš kód připraven k nasazení.

Nápověda: co je nepřetržité doručování
/Pixabay/ bluebudgie / PL

Příběh

Fráze nepřetržité doručování bylo vidět zpět v agilní manifest z roku 2001 na začátku výčtu základních principů: „Prioritou je řešení zákaznických problémů průběžnými dodávkami aktuálního softwaru.“

V roce 2010 vydali Jez Humble a David Farley книгу nepřetržitým doručováním. CD podle autorů přístup doplňuje Kontinuální integrace a umožňuje vám zjednodušit přípravu kódu pro nasazení.

Po vydání knihy si tento přístup začal získávat na popularitě a během několika let se stal téměř všeobecně uznávaným. Podle hlasování, provedené mezi více než 600 vývojáři a IT manažery v roce 2014, 97 % technických manažerů a 84 % programátorů znalo Continuous Delivery.

Nyní tento přístup zůstává jedním z nejpopulárnějších. Podle studie z roku 2018 zahrnující IT komunitu DevOps a Jenkins Community použití polovina z více než tisíce dotazovaných respondentů.

Jak funguje nepřetržité doručování?

Základem CD je připravenost kódu pro nasazení. Ke splnění tohoto úkolu se používá automatizace procesu přípravy softwaru k vydání. Měl by být standardní napříč různými vývojovými prostředími, což pomůže rychle najít slabá místa a optimalizovat je. Například urychlit testování.

Příklad procesu nepřetržitého doručování vypadá takto:

Nápověda: co je nepřetržité doručování

Pokud je za automatizaci prvních dvou fází zodpovědný přístup Continuous Integration, pak Continuous Delivery odpovídá za další dvě. Stabilitu procesu zajišťují mimo jiné systémy správa konfigurace. Sledují změny v infrastruktuře, databázích a závislostech. Samotné nasazení lze automatizovat nebo provést ručně.

Na proces jsou kladeny následující požadavky:

  • Dostupnost informací o připravenosti ke vstupu do produkčního prostředí a připravenosti k okamžitému vydání (CD nástroje testují kód a umožňují vyhodnotit vliv změn ve vydání).
  • Celková zodpovědnost za konečný produkt. Produktový tým - manažeři, vývojáři, testeři - přemýšlejí o výsledku, a ne pouze o své oblasti odpovědnosti (výsledkem je funkční vydání, které je k dispozici uživatelům produktu).

V CD se obvykle používá kontrola kódu, a pro shromažďování názorů zákazníků - princip temné spouštění. Nová funkce je nejprve uvolněna pro malý segment uživatelů – jejich zkušenosti s interakcí s produktem pomáhají odhalit nedostatky a chyby, které nebyly zaznamenány během interního testování.

Jaký je přínos

Continuous Delivery pomáhá zjednodušit nasazení kódu, což má pozitivní dopad na produktivitu a snižuje pravděpodobnost vyhoření zaměstnanců. V konečném důsledku to snižuje celkové náklady na vývoj. CD například pomohlo jednomu z týmů HP snížit tyto náklady o 40 %.

Navíc podle studie z roku 2016 (strana 28 dokument) - společnosti, které implementovaly CD, řeší problémy informační bezpečnosti o 50 % rychleji než ty, které tento přístup nepoužívají. Tento rozdíl lze do určité míry vysvětlit výkonem nástrojů pro automatizaci procesů.

Dalším plusem je zrychlení releasů. Průběžné dodávky ve finském vývojářském studiu pomohl zvýšit rychlost sestavování kódu o 25 %.

Potenciální výzvy

Prvním a hlavním problémem je potřeba znovu vybudovat známé procesy. Abychom ukázali výhody nového přístupu, vyplatí se přecházet na CD postupně, počínaje ne těmi nejnáročnějšími aplikacemi.

Druhým potenciálním problémem je velký počet větví kódu. Důsledkem „větvení“ jsou časté konflikty a další ztráty velkého množství času. Možné řešení - přístup žádné větve.

Zejména v některých společnostech vznikají hlavní potíže s testováním – zabere to příliš mnoho času. Výsledky testů je často nutné analyzovat ručně, ale možným řešením může být paralelizace testů v raných fázích implementace CD.

Měli byste také vyškolit zaměstnance na práci s novými nástroji - předběžný vzdělávací program ušetří vývojářům úsilí a čas.

Nápověda: co je nepřetržité doručování
/flickr/ h.ger1969 / CC BY-SA

Nástroje

Zde je několik otevřených nástrojů pro nepřetržité doručování:

  • GoCD — server pro nepřetržité doručování v Javě a JRuby on Rails. Umožňuje řídit celý proces doručování aplikace: sestavení – test – vydání. Nástroj je distribuován pod licencí Apache 2.0. Najdete ho na oficiálních stránkách průvodce nastavením.
  • Capistrano — framework pro tvorbu skriptů, které automatizují nasazení aplikací v Ruby, Javě nebo PHP. Capistrano je schopen provádět příkazy na vzdáleném počítači připojením k němu přes SSH. Spolupracuje s dalšími nástroji pro nepřetržitou integraci a doručování, jako je server Integrity CI.
  • Gradle je multiplatformní nástroj, který automatizuje celý cyklus vývoje aplikací. Gradle pracuje s Java, Python, C/C++, Scala atd. Existuje integrace s Eclipse, IntelliJ a Jenkins.
  • Trubec - Platforma CD v jazyce Go. Drone lze nasadit on-premise nebo v cloudu. Nástroj je postaven na kontejnerech a ke správě používá soubory YAML.
  • spinakr — platforma pro nepřetržité doručování kódu v multicloudových systémech. Inženýři Google, vyvinutý společností Netflix, sehráli velkou roli při vývoji nástroje. Instrukce k instalaci najdete na oficiálních stránkách.

Co si přečíst na našem firemním blogu:

Zdroj: www.habr.com

Přidat komentář