Modro-zelené nasazení vs. Kanárské nasazení: klíčové rozdíly

Photo of author

By etechblogcz

Fáze zavádění softwaru hraje klíčovou roli v moderním vývoji, zvláště pak v cloudovém prostředí.

Nicméně, bývá to jedna z nejvíce opomíjených částí celého procesu. Firmy často nevěnují dostatečné úsilí a čas tomu, aby zavádění bylo rychlé, spolehlivé a automatizované.

Stále se setkávám s různými formami manuálních postupů. V lepších případech je k dispozici alespoň dobře zdokumentovaný kontrolní seznam kroků, v horších pak náhodné postupy vytvořené ad hoc na poslední chvíli.

Automatizovaný postup zavádění je obvykle vzdáleným cílem a položkou v dlouhodobém plánu, ale cesta k němu je často trnitá a nepředvídatelná. Avšak mít plně automatizovaný a spolehlivý systém zavádění je klíčové pro úsporu času. Umožňuje eliminovat úsilí, které vývojové týmy obvykle věnují každé produkční verzi.

Strategie typu Canary a Blue-Green nabízejí výhody, jako je vysoká dostupnost a rychlé procesy instalace a vrácení. Tým díky nim může vydávat nové verze častěji a bez zbytečných obav. Pojďme se podívat, co tyto strategie přinášejí a jak se liší.

Modro-zelené nasazení: Základní přehled

Zdroj: cncf.io

Modro-zelené nasazení minimalizuje prostoje a riziko spojené s novými verzemi softwaru pomocí vytvoření dvou identických prostředí: aktivního (modrého) a neaktivního (zeleného).

V aktivním prostředí běží současná verze softwaru a uživatelé zde pracují. V neaktivním prostředí se instaluje a testuje nová verze.

Po otestování a přípravě se provoz přepne z aktivního do neaktivního prostředí, které se tak stává novým aktivním prostředím. Tento cyklus se může opakovat dle potřeby.

Přečtěte si také: Vysvětlení modro-zeleného nasazení a jeho role v DevOps

Klíčové vlastnosti a výhody

Následují specifické rysy procesu modro-zeleného nasazení:

  • Dvě identická prostředí se shodují v datech i procesech. Modré (aktivní) prostředí je pro produkční uživatele a jejich každodenní procesy, zelené (neaktivní) prostředí je určeno pro instalaci a synchronizaci nové verze.
  • Přepnutí provozu z aktivního do neaktivního prostředí způsobí, že se z neaktivního stane nové aktivní prostředí. Přepnutí je okamžité, samotné nasazení je hotové předem. Nevznikají žádné prostoje a uživatelé nemusí pro přístup do nového prostředí nic dělat.
  • V případě problémů je možné rychlé vrácení se k předchozí verzi. Díky tomu jsou prostoje minimální a aplikace zůstává vysoce dostupná.
  • Automatizované testování je klíčovou součástí modro-zeleného nasazení. Zajišťuje, že nová verze softwaru je před nasazením důkladně prověřena.
  • Tento typ nasazení je součástí kontinuálního dodávkového potrubí, což v důsledku znamená rychlejší a častější vydávání softwaru do produkčního provozu. Jelikož je nasazení hotové předem, zbývá pouze přepnout provoz, což je tak rychlé, že to lze dělat denně (za předpokladu, že jsou testy rychlé).

Kanárské nasazení: Základní přehled

Zdroj: cncf.io

Kanárské nasazení spočívá v postupném uvolňování nových funkcí nebo aktualizací nejprve pro malou skupinu uživatelů a teprve potom pro celou uživatelskou základnu.

Novou verzi softwaru nasadíme malé skupině, zatímco stará verze běží pro ostatní. Vývojový tým novou verzi pečlivě monitoruje, aby se ujistil, že je stabilní a funguje podle očekávání.

Pokud vše probíhá bez problémů, nová verze se zpřístupní pro další uživatele, dokud ji nakonec nepoužívá celá uživatelská základna. Tímto způsobem se minimalizuje riziko zavedení chyb, které by mohly ovlivnit všechny uživatele najednou.

Cílem je snížit riziko zavedení nových funkcí pro velké množství uživatelů. Přechod na novou verzi je pak mnohem plynulejší.

Přečtěte si také: Vysvětlení kanárského nasazení a jeho role v DevOps

Klíčové vlastnosti a výhody

Následují specifické rysy procesu kanárského nasazení:

  • Nová verze se nejprve zavádí malé skupině uživatelů a postupně se rozšiřuje na další. Minimalizuje se riziko zavedení chyb, které by mohly ovlivnit všechny uživatele najednou.
  • Nová verze je pečlivě sledována, aby se ověřila její stabilita a správné fungování. Vývojáři rychleji získávají zpětnou vazbu a mohou provést potřebné úpravy před nasazením pro všechny uživatele.
  • V případě problémů je možné snadno a rychle vrátit se k předchozí verzi. Zvyšuje se tím důvěra v proces zavádění, protože je minimalizováno riziko problémů, které by mohly ovlivnit uživatelský komfort.
  • Automatizujte proces zavádění, abyste minimalizovali riziko lidských chyb.

Shrnutí: Modro-zelené nasazení vs. kanárské nasazení

Funkce Modro-zelené nasazení Kanárské nasazení
Synchronizace dat Nepřetržitá synchronizace mezi modrým a zeleným prostředím. Nová verze je dostupná podmnožině uživatelů nebo serverů; zbytek používá stávající verzi.
Proces aktivace Přepnutí z aktivního na neaktivní prostředí, pokud je nová verze připravena. Postupné zavádění pro definovanou podmnožinu uživatelů, kteří aktivně testují nové verze.
Prostoj výroby Produkční uživatelé nezaznamenávají žádné výpadky; bezproblémové přepínání. Podmnožina produkčních uživatelů aktivně testuje novou verzi; možné problémy pro tuto skupinu.
Priorita Vysoká dostupnost. Rychlejší zpětná vazba a řízené zavádění.
Omezení rizik Snížení možnosti problémů postupným uvolňováním pro podmnožinu uživatelů. Testování převážně v neaktivním prostředí; testeři nemusí odhalit všechny skutečné problémy.
Testovací přístup Testování probíhá v neaktivních prostředích; testeři nemusí odhalit všechny skutečné problémy. Produkční uživatelé vystupují jako testeři a mohou rychle odhalit skutečné problémy.
Významné případy použití Netflix, Amazon, Etsy, LinkedIn a IBM používají modro-zelené nasazení. Netflix a Google používají kanárské nasazení spolu s automatickým testováním a postupným zaváděním.

Modro-zelené nasazení vs. kanárské nasazení: Funkce

Nasazení

Modro-zelené nasazení používá dvě prostředí (modré a zelené). Obě prostředí jsou neustále synchronizována z hlediska dat, což klade nároky na proces trvalé synchronizace dat.

Po otestování a připravení nové verze se provoz přepne z aktivního do neaktivního prostředí, které se tak stane novým aktivním prostředím.

Není třeba trávit čas nasazováním nového kódu a nevznikají žádné prostoje. Všichni produkční uživatelé neustále pracují v aktuálně aktivním prostředí a přepnutí si ani nevšimnou.

Zdroj: aws.amazon.com

Kanárské nasazení spočívá v zavedení nové verze softwaru pro malou podmnožinu uživatelů, zatímco většina uživatelů nebo serverů nadále používá stávající verzi. Jedná se spíše o postupné nasazování než o úplný přechod. Testeři jsou v tomto případě přímí produkční uživatelé (i když je to jen definovaná podmnožina). Tato skupina novou verzi aktivně testuje s produkčními procesy a když je stabilní, nová verze se rozšíří mezi ostatní uživatele.

Pokud je prioritou vysoká dostupnost, zvolte modro-zelené nasazení. Kanárské nasazení je vhodné, pokud dáváte přednost rychlejší zpětné vazbě a řízenějšímu (i když pomalejšímu) zavádění.

Snížení rizik

Modro-zelené nasazení snižuje riziko selhání tím, že umožňuje rychlý přechod na stabilní předchozí verzi, a to pro všechny uživatele a okamžitě. Riziko spočívá spíše v tom, že se v případě vrácení zpět opozdí nové funkce, ale žádný z uživatelů nebude mít problémy kvůli kritickým chybám nové verze.

Strategie zmírnění rizik kanárského nasazení spočívá v postupném snižování možnosti problémů. Nové funkce se zpřístupní jen podskupině uživatelů, kteří danou verzi používají dříve, než se verze rozšíří na všechny. Právě tito první uživatelé pravděpodobně rychle odhalí případné problémy.

Rozdíl v přístupu k testování

Modro-zelené nasazení ponechává testování pro neaktivní prostředí, kde vývojáři, testeři a další mohou testovat cokoliv. Můžeme očekávat podobné chování, jako kdyby testy probíhaly přímo v aktivním produkčním prostředí (data a konfigurace jsou vždy synchronizovány).

Testeři spouštějí testovací scénáře, a stále existuje šance, že nezachytí všechny problémy, které by se vyskytly v reálném provozu. To však není velký problém, protože přepínání mezi prostředími je vždy rychlé. Vývojáři mohou problém opravit a přepnout se zpět.

Zdroj: ibm.com

Kanárské nasazení umožňuje využít produkční uživatele jako testery. Ti obvykle objeví více problémů za kratší dobu, protože provádějí každodenní obchodní procesy v plném rozsahu.

Nejenže tak tvoří testovací scénáře, ale oni je i tak musí udělat. Skupina prvních uživatelů může mít dočasně vážné problémy, ale většina uživatelů to neovlivní a vývojový tým se může okamžitě soustředit na nejzávažnější skutečné problémy.

Zkušenosti a případy použití

Zde je několik známých případů použití, kde taková nasazení úspěšně fungují:

  • Netflix používá modro-zelené nasazení pro zavádění nových verzí své streamovací služby.
  • Amazon a Etsy používají modro-zelené nasazení pro zavádění nových verzí své platformy elektronického obchodu.
  • LinkedIn používá modro-zelené nasazení pro zavádění nových verzí své platformy sociálních sítí.
  • IBM používá modro-zelené nasazení pro zavádění nových verzí své cloudové platformy.
  • Netflix také využívá kanárské nasazení při zavádění změn do své streamovací služby. Kombinuje automatické testování, příznaky funkcí a A/B testování pro pomalé zavádění změn.
  • Google využívá kanárské nasazení pro zavádění změn do svých cloudových služeb. Stejně tak využívá výhod automatizovaného testování, rozdělování provozu a monitoringu pro postupné zavádění změn pro malou skupinu uživatelů.

Nejlepší postupy a budoucí trendy

Automatizace je klíčová a DevOps kanály jsou budoucností procesů nasazování. Jsou to plně automatické procesy, které zahrnují kroky jako:

  • Vytvoření nebo aktualizace cílových prostředí z hlediska služeb, dat, uživatelů nebo oprávnění.
  • Automatizované nasazení plných nebo delta verzí zdrojového kódu přímo z repozitáře kódu.
  • Upgrade schématu databáze a obnova dat.
  • Automatické spouštění testů během zavádění.
  • Automatizované procesy vrácení zpět v případě, že testovací scénář selže.
  • Eliminace veškerých manuálních zásahů.

Jakmile máte takové automatizované zaváděcí kanály, můžete použít procesy kanárského nebo modro-zeleného nasazení. Jsou to dva příklady, které se osvědčily, a představují filozofické rámce pro řešení většiny problémů spojených se zaváděním. Není obtížné mezi nimi přepínat nebo používat kombinaci obou.

Závěrečná slova

Používání manuálních postupů při zavádění softwaru svědčí o nevyzrálých vývojových procesech nebo týmech. Může také odhalovat, jak nepružná a monolitická je daná společnost z hlediska dodávky softwaru. V obou případech je nutné stávající situaci napravit. Implementujte proto strategie, které byly uvedeny výše.

Podívejte se také na to, jak nasadit aplikace v Kubernetes.