Nepřetržité dodávky - Continuous delivery

Continuous delivery ( CD ) je přístup softwarového inženýrství, ve kterém týmy produkují software v krátkých cyklech, přičemž zajišťují, že software lze spolehlivě uvolnit kdykoli a při jeho uvolnění, aniž byste tak museli dělat ručně. Zaměřuje se na vytváření, testování a vydávání softwaru s vyšší rychlostí a frekvencí. Tento přístup pomáhá snižovat náklady, čas a riziko doručování změn tím, že umožňuje více přírůstkové aktualizace aplikací ve výrobě. Přímý a opakovatelný proces nasazení je důležitý pro nepřetržité doručování.

CD je v kontrastu s nepřetržitým zaváděním , což je podobný přístup, kdy se software také vyrábí v krátkých cyklech, ale prostřednictvím automatizovaných nasazení, nikoli manuálních.

Vztah k DevOps

Kontinuální doručování a DevOps mají podobný význam a často se prolínají, ale jde o dva různé koncepty. DevOps má širší rozsah a soustředí se na kulturní změny, konkrétně na spolupráci různých týmů zapojených do poskytování softwaru (vývojáři, operace, zajišťování kvality, správa atd.), Jakož i na automatizaci procesů při poskytování softwaru. Kontinuální doručování je na druhé straně přístup k automatizaci aspektu doručování a zaměřuje se na sloučení různých procesů a jejich rychlejší a častější provádění. DevOps tedy může být produktem nepřetržitého doručování a CD proudí přímo do DevOps.

Vztah k nepřetržitému nasazení

Nepřetržité doručování je schopnost dodávat software, který lze kdykoli nasadit prostřednictvím manuálních verzí; to je v kontrastu k nepřetržitému nasazení, které využívá automatizovaná nasazení. Podle Martina Fowlera vyžaduje nepřetržité nasazení nepřetržité doručování. Akademická literatura rozlišuje mezi těmito dvěma přístupy podle způsobu nasazení; manuální vs. automatizovaný.

Zásady

Diagram procesu průběžného doručování. Svg

Nepřetržité doručování považuje běžnou představu o zaváděcím potrubí za štíhlý Poka-Yoke : soubor ověření, kterými musí kus softwaru projít na cestě k vydání . Kód je v případě potřeby zkompilován a poté zabalen sestavovacím serverem pokaždé, když je změna potvrzena do úložiště správy zdrojů , poté testován řadou různých technik (případně včetně ručního testování), než může být označen jako uvolnitelný.

Vývojáři zvyklí na dlouhou dobu cyklu mohou při práci v prostředí CD potřebovat změnit myšlení. Je důležité si uvědomit, že jakékoli potvrzení kódu může být kdykoli uvolněno pro zákazníky. Vzory, jako jsou přepínače funkcí, mohou být velmi užitečné pro včasné potvrzení kódu, který ještě není připraven k použití koncovými uživateli. Pomocí NoSQL lze eliminovat krok migrace dat a změny schémat, často manuální kroky nebo výjimky z pracovního toku nepřetržitého doručování. Další užitečné techniky pro izolovaný vývoj kódu, jako je větvení kódu, nejsou ve světě CD zastaralé, ale musí být přizpůsobeny zásadám CD - například provozování více větví kódu s dlouhou životností se může ukázat jako nepraktické, protože uvolnitelný artefakt musí být má být postaveno na začátku procesu CD z jediné větve kódu, pokud má projít všemi fázemi kanálu.

Deployment pipeline

Průběžné doručování je povoleno prostřednictvím kanálu nasazení. Účel kanálu nasazení má tři komponenty: viditelnost, zpětnou vazbu a nepřetržité nasazení.

  • Viditelnost - Všechny aspekty systému dodávek, včetně vytváření, nasazování, testování a uvolňování, jsou viditelné pro každého člena týmu za účelem podpory spolupráce.
  • Zpětná vazba - Členové týmu se o problémech dozvědí co nejdříve, jakmile nastanou, aby je mohli co nejrychleji vyřešit.
  • Průběžné nasazování - prostřednictvím plně automatizovaného procesu můžete nasadit a uvolnit jakoukoli verzi softwaru do jakéhokoli prostředí.

Nástroje/typy nástrojů

Nepřetržitá dodávka vyžaduje automatizaci od řízení zdrojů po celou dobu výroby. Existují různé nástroje, které pomáhají provést celý proces nebo jeho část. Tyto nástroje jsou součástí kanálu nasazení, který zahrnuje nepřetržité doručování. Tyto typy nástrojů, které provádějí různé části procesu patří: kontinuální integraci , automatizaci uvolnění aplikace , stavět automatizaci , aplikace pro správu životního cyklu .

Architektura pro nepřetržité dodávky

K efektivnímu procvičování nepřetržitého doručování musí softwarové aplikace splňovat sadu architektonicky významných požadavků (ASR), jako je implementovatelnost, modifikovatelnost a testovatelnost. Tyto ASR vyžadují vysokou prioritu a nelze je snadno obchodovat.

Microservices jsou často používány při architektuře pro kontinuální dodávky. Využití mikroslužeb může zvýšit nasaditelnost a modifikovatelnost softwarového systému. Pozorovaná vylepšení nasazitelnosti zahrnují: nezávislost nasazení, kratší dobu nasazení, jednodušší postupy nasazení a nasazení bez prostojů. Pozorovaná vylepšení modifikace zahrnují: kratší dobu cyklu pro malé přírůstkové funkční změny, snazší změny výběru technologie, přírůstkové změny atributů kvality a snadnější upgrady jazyka a knihovny.

Implementace a použití

Kniha CD, kterou napsali Jez Humble a David Farley (2010), tento termín popularizoval, ale od svého vzniku se definice stále zlepšuje a nyní má rozvinutější význam. Společnosti dnes implementují tyto zásady a doporučené postupy pro průběžné doručování. Rozdíl v doménách, např. Lékařský vs. web, je stále značný a ovlivňuje implementaci a používání. Mezi známé společnosti, které mají tento přístup, patří Yahoo! , Amazon , Facebook , Google , Paddy Power a Wells Fargo .

Výhody a překážky

Bylo hlášeno několik výhod nepřetržitého doručování.

  • Accelerated Time to Market: CD umožňuje organizaci dodávat zákazníkům obchodní hodnotu obsaženou v nových verzích softwaru rychleji. Tato schopnost pomáhá společnosti zůstat o krok před konkurencí.
  • Budování správného produktu: Častá vydání umožňují týmům pro vývoj aplikací rychleji získávat zpětnou vazbu od uživatelů. Díky tomu mohou pracovat pouze na užitečných funkcích. Pokud zjistí, že funkce není užitečná, nevynakládají na ni žádné další úsilí. To jim pomáhá vybudovat správný produkt.
  • Vylepšená produktivita a účinnost: Významné úspory času pro vývojáře, testery, provozní inženýry atd. Prostřednictvím automatizace.
  • Spolehlivá vydání: Rizika spojená s vydáním se výrazně snížila a proces vydání se stal spolehlivějším. U disku CD se proces nasazení a skripty před nasazením do produkce opakovaně testují. Většina chyb v procesu nasazení a skriptech již byla objevena. S častějšími vydáními se počet změn kódu v každé verzi snižuje. To usnadňuje hledání a odstraňování jakýchkoli problémů, které se vyskytují, a zkracuje dobu, po kterou mají dopad.
  • Vylepšená kvalita produktu: Počet otevřených chyb a produkčních incidentů se výrazně snížil.
  • Vylepšená spokojenost zákazníků: Dosahuje se vyšší úrovně spokojenosti zákazníků.

Byly také vyšetřovány překážky.

  • Předvolby zákazníků: Někteří zákazníci nechtějí průběžné aktualizace svých systémů. To platí zejména v kritických fázích jejich provozu.
  • Omezení domény: V některých doménách, jako jsou telekomunikace a zdravotnictví, předpisy vyžadují rozsáhlé testování, než budou nové verze povoleny pro vstup do provozní fáze.
  • Nedostatek automatizace testů: Nedostatek automatizace testů vede k nedostatečné důvěře vývojářů a může zabránit používání nepřetržitého doručování.
  • Rozdíly v prostředích: Různá prostředí používaná při vývoji, testování a produkci mohou vést k tomu, že nezjištěné problémy sklouznou do produkčního prostředí.
  • Testy vyžadující lidskou věštbu: Ne všechny atributy kvality lze ověřit pomocí automatizace. Tyto atributy vyžadují lidi ve smyčce, což zpomaluje doručovací potrubí.

Chen vznesl a rozpracoval dalších osm výzev k adopci. Tyto výzvy se týkají oblastí organizační struktury, procesů, nástrojů, infrastruktury, starších systémů, architektury pro disky CD, průběžného testování nefunkčních požadavků a optimalizace provádění testů.

Strategie k překonání problémů s adopcí

Bylo popsáno několik strategií, jak překonat problémy s přijetím nepřetržitého doručování.

Strategie k překonání výzev přijetí CD
Strategie Popis
Prodej CD jako lék proti bolesti Identifikujte body bolesti každého účastníka, které může CD vyřešit, a prodejte CD jako lék proti bolesti této zúčastněné straně. Tato strategie pomáhá dosáhnout buy-inu od široké škály zúčastněných stran, které implementace CD vyžaduje.
Specializovaný tým s multidisciplinárními členy Bez specializovaného týmu může být obtížné postupovat, protože zaměstnanci jsou často přiřazeni k práci na jiných hodnotových tocích. Multidisciplinární tým poskytuje nejen širokou škálu dovedností potřebných pro implementaci CD, ale také usnadňuje komunikaci se souvisejícími týmy.
Nepřetržitá dodávka nepřetržité dodávky Organizujte implementaci CD způsobem, který přináší společnosti co nejdříve hodnotu, začleňujte postupně více projektů v malých krocích a nakonec rozšiřujte CD napříč celou organizací. Tato strategie pomáhá odůvodnit požadované investice tím, že na cestě zviditelňuje konkrétní výhody. Viditelné výhody zase pomáhají dosáhnout trvalé podpory společnosti a investic nutných k přežití dlouhé a náročné cesty na CD.
Počínaje snadnými, ale důležitými aplikacemi Při výběru prvních několika aplikací pro migraci na disk CD vyberte ty, které lze snadno migrovat, ale které jsou pro firmu důležité. Snadná migrace pomáhá rychle demonstrovat výhody CD, což může zabránit zabití implementační iniciativy. Být důležitý pro podnikání pomáhá zajistit požadované zdroje, ukazuje jasnou a nezpochybnitelnou hodnotu a zvyšuje viditelnost CD v organizaci.
Kostra potrubí vizuálního CD Dejte týmu vizuální kostru kanálu CD, která má úplný pohled na kanál CD, ale s prázdnými fázemi pro ty, které zatím nemohou implementovat. To pomáhá vybudovat myšlení na disku CD a udržet impuls pro přijetí disku CD. Kostra potrubí je obzvláště užitečná, když migrace týmu na CD vyžaduje velké úsilí a změny myšlení po dlouhou dobu.
Expertní pokles Přiřaďte odborníka na CD, aby se připojil k náročným projektům jako vedoucí člen vývojového týmu. Expert v týmu pomáhá budovat motivaci a hybnost přecházet na CD zevnitř týmu. Pomáhá také udržovat hybnost, když migrace vyžaduje velké úsilí a dlouhé časové období.

Viz také

Další čtení

  • Pokorný, Jez; Farley, David (2010). Nepřetržité doručování: Spolehlivé verze softwaru prostřednictvím automatizace sestavení, testování a nasazení . Addison-Wesley. ISBN 978-0-321-60191-9.
  • Wolff, Eberhard (2017). Praktický průvodce nepřetržitým doručováním . Addison-Wesley. ISBN 978-0-134-69147-3.

Reference