Rychlejší vydávání průběžného doručování s menšími náklady a riziky

Dokončeno

Průběžné doručování je jednou z osmi funkcí v taxonomii DevOps.

Zjištění, proč je průběžné doručování nezbytné

V roce 2012 způsobila chyba nasazení softwaru ztrátu 460 M pro Knight Capital Group, největší obchodník v usa.

Ztráty začaly při otevření trhu. V kódu nebyly žádné chyby – příčinou problému byla chyba, která byla provedena během ručního nasazení pouze na jeden z osmi produkčních serverů.

Když se to pokusili opravit, všechny osm serverů skončily chybně nakonfigurované – takže ztratily ještě více peněz. Vzhledem k tomu, že všechna nasazení byla ruční, neměli způsob, jak automaticky vrátit změny zpět.

Po pokusu o vyřešení problému po dobu 45 minut se nakonec vypne celý systém. V té době ztratili 460 MILIONŮ USD.

Tohle je skutečný příběh. Jaký dopad by to mělo ve vaší organizaci? Provádíte ruční nasazení?

Možná je nejdůležitější otázka, která se má zeptat, aby pomohla pochopit výkon doručení v organizaci:

Důležité

Jak velká je bolest nasazení do produkčního prostředí?

Strach a úzkost, že technici a pracovníci technického týmu cítí, když nasdílí kód do produkčního prostředí, nám může říct hodně o výkonu doručování softwaru týmu.

Co je průběžné doručování?

Důležité

Průběžné doručování je softwarový inženýrský přístup, ve kterém týmy vytvářejí software v krátkých cyklech a zajišťují, aby software mohl být:

  • Spolehlivě vydáno kdykoli
  • Vydáno ručně

Účelem průběžného doručování je:

  • Sestavování, testování a vydávání softwaru s větší rychlostí a frekvencí
  • Snížení nákladů, času a rizika poskytování změn tím, že umožňuje více přírůstkových aktualizací aplikací v produkčním prostředí

Průběžné doručování probíhá v případech:

  • Software je možné nasadit během celého životního cyklu.
  • Kontinuální integrace i rozsáhlá automatizace jsou k dispozici prostřednictvím všech možných částí procesu doručování, obvykle pomocí kanálu nasazení.
  • Nasazení libovolné verze softwaru na vyžádání je možné provést pomocí nabízených tlačítek do libovolného prostředí.

Diagram shows the difference between continuous delivery and continuous deployment. The stages are the same in both cases: code done - unit tests - integrate - acceptance test - deploy to production. For continuous delivery, deployment to production happens manually. For continuous deployment, it's automatic.

Velká ruční nasazení vytvářejí vysokou úroveň rizika tím, že výrazně zvyšují složitost vydaného softwaru, představují pravděpodobnost lidské chyby a znesnadní identifikaci a nápravu selhání nasazení. Frekvence nasazení je nízká, doba trvání změn je vysoká, průměrná doba obnovení je dlouhá a máte vysokou míru selhání změn.

Určený provozní tým provádí ruční nasazení mimo pracovní dobu. K ručnímu otestování zdokumentovaných kroků potřebují dokument s ručním postupem. Provádění velkých nasazení trvá déle, v případě selhání je obtížnější vrátit zpět a po nasazení zahrnuje větší rozsah testování. Počet změn na nasazení je větší a implementace zpětné vazby trvá déle.

Díky automatizaci procesu a umožněním uvolnění do produkčního prostředí jsou výhody průběžného doručování významné a četné:

Diagram shows the circle of Continuous Delivery. The cycle goes from planning and tracking to development, building and testing, deployment, operation, monitoring and learning, and back to planning.

Podle zprávy o stavu DevOps z roku 2019 dosahuje vysoce výkonné organizace DevOps v porovnání s nízkými výkony:

  • Více než 200krát častější nasazení
  • Více než 100krát rychlejší doba předstihu pro změny
  • Více než 2600krát rychlejší průměrná doba obnovení
  • Sedmkrát nižší četnost selhání změn

Kromě toho organizace podle globální studie technologií CA realizují až 20% zlepšení v době uvedení na trh a zvýšení výnosů.

Diagram shows the advantages of high-performing DevOps organizations using Continuous Delivery over low performers.

Poznámka:

Průběžné doručování se někdy zaměňuje s průběžným nasazováním. Průběžné nasazování znamená, že každá změna prochází kanálem a automaticky se vloží do produkčního prostředí, což vede k mnoha produkčním nasazením každý den. Průběžné doručování znamená, že můžete provádět časté nasazení, ale nemusí se rozhodnout, obvykle kvůli podnikům, které dávají přednost nižší míře nasazení. K průběžnému nasazování musíte provádět průběžné nasazování.

Průběžná integrace je předpokladem pro průběžné doručování. Postupy zavedené při sestavování a (spolehlivě) nasazování aplikace a s vysokou kvalitou od správy zdrojového kódu.

Diagram shows the relationship between Continuous Integration, Continuous Delivery and Continuous Integration