Co jsou vzory nasazení?

Dokončeno

Model nasazení je automatizovaný způsob, jak uživatelům hladce zavést nové funkce aplikací. Vhodný model nasazení vám pomůže minimalizovat výpadky. Některé vzory také umožňují postupně zavádět nové funkce. Díky tomu můžete nové funkce ověřit pomocí vybraných uživatelů, než tyto funkce zpřístupníte všem.

V této části se dozvíte o některých běžných vzorech nasazení. Dozvíte se také, jak vám služba Aplikace Azure Service pomůže implementovat model, který tým Tailspin zvolí.

Ranní schůzka

Tým Tailspin se cítí dobře. Jejich kanál urychlil proces. Tým má vývojové prostředí, ve kterém může webovou aplikaci integrovat s databází. Tim i Amita jsou rádi, že mají automatizované testy, které zjednodušují jejich úlohy. Obecně platí, že dochází k menšímu zpoždění a menšímu počtu chyb.

Ale jako vždy je problém. Pusťme se do týmové schůzky, kde Tim mluví.

Tim: Je tak těžké udržet všechny šťastné. Irwin si myslí, že vydání nových funkcí trvá příliš dlouho. Nemůžu nic dělat, dokud vedení neschválí vydání, a v tuto chvíli neexistuje žádný hladký způsob, jak zavést funkce po udělení OK. Tento proces není jen dlouhý, ale nepořádný. Je to ruční a dochází k výpadkům. Celý proces může trvat pět dní. Vím, že je to moc dlouhé, ale co mám dělat? Možná, že kdybych jen pít více kávy, řešení mi přijde.

Andy: Káva je nezbytná k účinnému řešení problémů, bez pochyb.

Myslím, že řešení, které potřebujeme, je dobrým vzorem nasazení. Model nasazení je automatizovaný způsob, jak provést přímou migraci. Tento software přesuneme z konečné předprodukční fáze do ostrého provozu.

Výběr správného vzoru by vám určitě pomohl, například minimalizací výpadků. Další výhodou modelu nasazení je, že nám dává šanci spustit testy, které by se měly skutečně provést v produkčním prostředí.

Andy začne psát na tabuli.

Tady jsou možnosti, které bychom měli zvážit:

  • Nasazení s modrou zelenou barvou
  • Kanárské verze
  • Přepínače funkcí
  • Tmavé starty
  • Testování A/B
  • Postupné nasazení expozice

Pojďme se krátce podívat na jednotlivé vzory.

Nasazení s modrou zelenou barvou

Modré a zelené nasazení snižuje riziko a výpadky spuštěním dvou identických prostředí. Tato prostředí se nazývají modrá a zelená. Kdykoli je aktivní jenom jedno z prostředí. Modré nasazení obvykle zahrnuje směrovač nebo nástroj pro vyrovnávání zatížení, který pomáhá řídit tok provozu.

Diagram of a load balancer distributing traffic in a blue-green deployment.

Řekněme, že modrá je živá. Při přípravě nové verze provádíme konečné testy v zeleném prostředí. Jakmile software pracuje v zeleném prostředí, jednoduše přepneme směrovač tak, aby všechny příchozí požadavky přešly do zeleného prostředí.

Modré a zelené nasazení nám také dává rychlý způsob, jak provést vrácení zpět. Pokud se v zeleném prostředí něco nepovede, jednoduše přepneme směrovač zpět do modrého prostředí.

Kanárské verze

Kanárské vydání představuje způsob, jak včas identifikovat potenciální problémy, aniž by k problému museli vystavit všichni uživatelé. Myšlenka spočívá v tom, že před zpřístupněním nové funkce pouze malé podmnožině uživatelům.

Diagram of a load balancer sending traffic to a canary version.

V kanárské verzi sledujeme, co se stane, když funkci uvolníme. Pokud má verze problémy, použijeme opravu. Jakmile je kanárské vydání stabilní, přesuneme ho do skutečného produkčního prostředí.

Přepínače funkcí

Pomocí přepínačů funkcí překlopte přepínač za běhu. Můžeme nasadit nový software, aniž bychom našim uživatelům museli vystavit žádné jiné nové nebo změněné funkce.

V tomto vzoru nasazení mara a já vytvářím nové funkce za přepínačem. Když dojde k vydání verze, funkce je vypnutá, aby neměla vliv na produkční software. V závislosti na tom, jak přepínač nakonfigurujeme, můžeme překlopit přepínač na zapnuto a zobrazit požadovanou funkci.

Diagram of a coded if statement for an on-off feature.

Mohli bychom například nejprve zpřístupnit funkci několika uživatelům, abychom viděli, jak reagují. Tento náhodný vzorek uživatelů vidí tuto funkci. Nebo bychom mohli tuto funkci nechat živě pro všechny.

Tento model nasazení ale může Maru a mně přinést víc, než kdokoliv jiný. Velkou výhodou přepínacího vzoru funkcí je, že nám pomáhá vyhnout se příliš velké větvení. Slučování větví může být bolestné.

Tmavé starty

Tmavé spuštění je podobné kanárské verzi nebo přepnutí přepínače funkce. Místo toho, abychom všem zpřístupnili novou funkci, uvolníme ji ve tmavém spuštění pro malou sadu uživatelů.

Diagram of a load balancer sending traffic to the new feature.

Tito uživatelé neví, že pro nás tuto funkci testují. Ani na ně nezvýrazňujeme novou funkci. Proto se tomu říká tmavý start. Software se uživatelům postupně nebo nerušil, abychom mohli získat zpětnou vazbu a otestovat výkon.

Testování A/B

Testování A/B porovnává dvě verze webové stránky nebo aplikace a zjišťuje, která z nich funguje lépe. Testování A/B je jako klasický experiment.

Diagram of two apps and their analytics.

V testování A/B náhodně zobrazujeme uživatele se dvěma nebo více variantami stránky. Pak použijeme statistickou analýzu k rozhodnutí, která varianta pro naše cíle funguje lépe.

Postupné nasazení expozice

Postupné nasazování se někdy označuje jako nasazení založené na okruhu. Je to jiný způsob, jak omezit, jak změny ovlivňují uživatele a zároveň zajistit, aby tyto změny byly platné v produkčním prostředí.

Kruhy jsou v podstatě rozšíření kanárské fáze. Kanárské vydání vydá do fáze pro měření účinku. Přidání dalšího okruhu je v podstatě stejný nápad.

Diagram of a progression of larger groups.

V nasazení založeném na okruhu nejprve nasadíme změny zákazníků odolných vůči rizikům. Pak postupně zavedeme větší sadu zákazníků.

Implementace modrého zeleného nasazení

Andy se dívá na Tima.

Andy: To je hodně, vím. Chcete nějakou dobu trvat, než se nad tím zamyslete? Nebo ty a já bych mohl ...

Tim: Modrá-zelená.

Všichni v místnosti se směje.

Mara: Je to káva, která mluví?

Tim: Přepínání funkcí zahrnuje změnu způsobu práce s Andym. Pojďme najednou udělat jednu věc. Metody, které funkci postupně zveřejňují, vyžadují statistické analýzy nebo přepínače funkcí.

Modré-zelené nasazení je něco, co mohu řídit. Přepnutí směrovače je jednoduché. Je to snadné a zní bezpečně. A v modrém zeleném nasazení má správa prostředí, které se má vyhodnotit. Když ok dávají, můžeme snadno přepnout. Začněme tam.

Takže otázka je, jak v kanálu implementujeme modré-zelené nasazení?

Co jsou sloty nasazení?

Andy: Protože používáme službu Aplikace Azure Service, můžeme využít sloty nasazení. Sloty nasazení používají aplikace, které mají vlastní názvy hostitelů.

Vím, že ještě nejsme připraveni nasadit web Space Game do produkčního prostředí jako součást automatizovaného kanálu. Jako test ale můžeme do přípravného prostředí přidat slot nasazení.

Místo nastavení nástroje pro vyrovnávání zatížení nebo směrovače můžeme do instance služby App Service, kterou používáme v našem stávajícím přípravném prostředí, přidat druhý slot. Můžeme volat primární slot modrý a sekundární slot zelený.

Diagram of applications swapping IP addresses.

Tímto způsobem můžeme nasadit nové funkce bez jakýchkoli výpadků. Prohodíme aplikaci a její konfiguraci mezi těmito dvěma sloty nasazení. V podstatě prohodíme IP adresy těchto dvou slotů.

Tim: Líbí se mi to! Tuto variantu modrého nasazení můžete volat jako nasazení s nulovým výpadkem.

Andy: Skvělé! Tim a já budu pracovat na implementaci tohoto modelu nasazení. Všechny se můžeme setkat později, abychom viděli výsledky.

Doporučení pro používání příznaků funkcí

Příznaky funkcí byly jednou z metod tempa vydávání verzí, které tým zvážil. Tým se rozhodl nepoužívat příznaky funkcí, ale mnoho lidí je našel užitečné. Tato část obsahuje další informace o příznakech funkcí.

Příznaky funkcí, někdy označované jako přepínače funkcí, umožňují změnit fungování systému beze změny kódu. Tyto příznaky umožňují nasdílení nového kódu do centrální vývojové větve a nasazení kódu, ale nemusí nutně fungovat. Příznaky se běžně implementují jako hodnota proměnných, které řídí podmíněnou logiku.

Představte si, že váš tým pracuje v centrální vývojové větvi bankovní aplikace. Rozhodli jste se provést veškerou práci v hlavní větvi, abyste se vyhnuli nepořádným operacím sloučení později. Ale vy se setkáte s problémem. Podstatně měníte výpočty zájmů a lidé na tom každý den závisejí. Ještě horší je, že dokončení změn bude trvat týdny. Hlavní kód nemůžete nechat tak dlouho přerušený.

V tomto scénáři může být vhodným řešením příznak funkce. Kód můžete změnit tak, aby uživatelé, kteří nemají nastavený příznak funkce, mohli dál používat kód pro výpočet původního úroku. Váš tým mezitím má nastavený příznak funkce, aby viděl kód, který mění.

Dalším typem příznaku funkce je příznak verze. Představte si, že po dokončení práce na kódu výpočtu úroku ho chcete vyzkoušet, než ho veřejně uvolníte. Máte skupinuuživatelůch Nejdřív je necháte vyzkoušet. Konfiguraci změníte tak, aby měly také nastavenou příznak funkce a mohli otestovat nový kód. Pokud dojde k problémům, můžete příznak rychle zakázat.

Kontrola znalostí

1.

Marketingový tým vás požádal, abyste na web vaší společnosti přidali banner. Mají dvě verze tohoto banneru. Chtějí vědět, která verze vytváří více kliknich. Jaký model nasazení můžete použít k tomu, abyste marketingovému týmu pomohli identifikovat lepší verzi?

2.

Pro svůj web máte novou funkci a jste připraveni ji nasadit. Tato funkce je ale riziková, protože mění způsob interakce uživatelů s webem. Které vzory nasazení můžete použít k vydání malé skupině uživatelů, kteří se zaregistrovali, aby viděli nové funkce?

3.

Nejste si jistí, jak budou vaši uživatelé reagovat na vaši novou funkci. Chcete tuto funkci uvolnit na malý náhodný vzorek uživatelů, abyste viděli, jak reagují. Jaký model nasazení můžete použít?