Aktualizace a nasazení změn v Azure Container Apps

Správa změn může být náročná při vývoji kontejnerizovaných aplikací v cloudu. Nakonec potřebujete podporu ke sledování změn, zajištění doby provozu a mechanismů pro zpracování hladkých vrácení zpět.

Správa změn ve službě Azure Container Apps využívá revize, což je snímek každé verze vaší aplikace kontejneru.

Mezi klíčové charakteristiky revizí patří:

  • Neměnné: Po vytvoření zůstane revize neměnná.

  • Verze: Revize fungují jako záznam verzí aplikace kontejneru a zaznamenávají její stav v různých fázích.

  • Automaticky zřízeno: Při prvním nasazení aplikace kontejneru se automaticky vytvoří počáteční revize.

  • Změny s vymezeným oborem: Zatímco revize zůstávají statické, změny oboru aplikace můžou ovlivnit všechny revize, zatímco změny oboru revizí vytvoří novou revizi.

  • Historický záznam: Ve výchozím nastavení máte přístup k 100 neaktivním revizím, ale tuto prahovou hodnotu můžete upravit ručně.

  • Více revizí: Současně můžete spustit více revizí. Tato funkce je zvlášť užitečná, když potřebujete spravovat různé verze aplikace současně.

Životní cyklus

Každá revize prochází konkrétními stavy ovlivněnými stavem a dostupností. Během životního cyklu prochází aplikace kontejneru různými zřizováními, spouštěním a neaktivním stavem.

Stav zřizování

Když vytvoříte novou revizi, aplikace kontejneru prochází kontrolou spuštění a připravenosti. Během této fáze slouží stav zřizování jako vodítko ke sledování průběhu aplikace kontejneru.

Status Popis
Zřizování Revize probíhá v procesu ověření.
Zřízené Revize úspěšně prošla všemi kontrolami.
Zřizování selhalo Při ověřování došlo k problémům s revizí.

Stav spuštění

Po úspěšném zřízení aplikace kontejneru přejde revize do své provozní fáze. Stav spuštění pomáhá monitorovat stav a funkčnost aplikace kontejneru.

Status Popis
Zřizování Revize probíhá v procesu ověření.
Škálování na 0 Žádné spuštěné repliky a nezřizují se žádné nové repliky. Aplikace kontejneru může vytvořit nové repliky, pokud se aktivují pravidla škálování.
Aktivace Žádné spuštěné repliky, jedna zřízená replika.
Aktivace se nezdařila. První replika se nepodařilo zřídit.
Škálování / zpracování Dochází k horizontálnímu navýšení nebo snížení kapacity. Jedna nebo více replik běží, zatímco ostatní repliky se zřizují.
Spuštěno Běží nejméně jedna replika. Neexistují žádné problémy, které by bylo potřeba nahlásit.
Spuštěno (s maximálním) Je spuštěn maximální počet replik (podle pravidel škálování revize). Neexistují žádné problémy, které by bylo potřeba nahlásit.
Zrušení zřízení Revize přechází z aktivní na neaktivní a odebírá všechny prostředky, které vytvořila.
Snížený výkon Nejméně jedna replika v revizi je ve stavu selhání. Zobrazení podrobností o spuštěném stavu pro konkrétní problémy
Neúspěch Kritické chyby způsobily selhání revizí. Spuštěný stav obsahuje podrobnosti. Mezi obvyklé příčiny patří:
•Ukončení
• Ukončovací kód 137

Neaktivní stav

Revize můžou také zadat neaktivní stav. Tyto revize nemají stavy zřizování ani spouštění. Azure Container Apps ale udržuje seznam těchto revizí, který umožňuje 100 neaktivních položek. Revizi můžete kdykoli aktivovat.

Změna limitu neaktivní revize

Pomocí parametru --max-inactive-revisionscontainerapp create nebo containerapp update příkazů můžete řídit počet neaktivních revizí sledovaných službou Container Apps.

Tento příklad ukazuje, jak vytvořit novou aplikaci kontejneru, která sleduje 50 neaktivních revizí:

az containerapp create --max-inactive-revisions 50

Režimy revizí

Azure Container Apps podporuje dva režimy revizí. Volba režimu určuje, kolik revizí aplikace je současně aktivních.

Režimy revizí Popis Výchozí
Jeden Nové revize se automaticky zřídí, aktivují a škálují na požadovanou velikost. Jakmile jsou všechny repliky spuštěné podle definice pravidla škálování, provoz se přesměruje ze staré verze na novou. Pokud se aktualizace nezdaří, provoz zůstane odkazovat na starou revizi. Staré revize se automaticky zruší. Ano
Více Můžete mít více aktivních revizí, rozdělit provoz mezi revize a zvolit, kdy chcete zrušit zřízení starých revizí. Tato úroveň řízení je užitečná pro testování více verzí aplikace, modrého testování nebo převzetí úplné kontroly nad aktualizacemi aplikací. Další podrobnosti najdete v rozdělení provozu.

Popisky

U kontejnerových aplikací s externím provozem HTTP popisky směrují provoz na konkrétní revize. Popisek poskytuje jedinečnou adresu URL, kterou můžete použít ke směrování provozu na revizi, kterou má popisek přiřazený.

Pokud chcete přepnout provoz mezi revizemi, můžete ho přesunout z jedné revize do jiné.

  • Popisky zachovávají stejnou adresu URL při přesunu z jedné revize na jinou.
  • Popisek lze použít pouze na jednu revizi najednou.
  • Přidělení pro rozdělení provozu se nevyžaduje pro revize s popisky.
  • Popisky jsou nejužitečnější, když je aplikace v režimu více revizí.
  • Můžete povolit popisky, rozdělení provozu nebo obojí.

Popisky jsou užitečné pro testování nových revizí. Pokud například chcete udělit přístup k sadě testovacích uživatelů, můžete jim dát adresu URL popisku. Když pak chcete přesunout uživatele na jinou revizi, můžete popisek přesunout do této revize.

Popisky fungují nezávisle na rozdělení provozu. Rozdělení provozu distribuuje provoz do adresy URL aplikace kontejneru na revize na základě procenta provozu. Když se provoz přesměruje na adresu URL popisku, provoz se směruje na jednu konkrétní revizi.

Název popisku musí:

  • Skládá se z malých alfanumerických znaků nebo pomlček (-)
  • Začínáme s abecedním znakem
  • Konec alfanumerickým znakem

Popisky nesmí:

  • Mají dvě po sobě jdoucí pomlčky (--)
  • Musí být delší než 64 znaků.

Popisky můžete spravovat na stránce správy revizí vaší aplikace kontejneru na webu Azure Portal.

Screenshot of Container Apps revision management.

Adresa URL popisku je k dispozici v podokně podrobností revize.

Screenshot of Container Apps revision details.

Nasazení s nulovými výpadky

V režimu jedné revize služba Container Apps zajistí, že při vytváření nové revize nedojde k výpadku vaší aplikace. Stávající aktivní revize se neaktivuje, dokud nebude nová revize připravená.

Pokud je povolený příchozí přenos dat, stávající revize bude nadále přijímat 100 % provozu, dokud nebude nová revize připravená.

Nová revize se považuje za připravenou, když:

  • Revize byla úspěšně zřízena.
  • Revize se vertikálně navýšit tak, aby odpovídala předchozímu počtu replik revizí (respektuje minimální a maximální počet replik nové revize).
  • Všechny repliky prošly testy spuštění a připravenosti.

V režimu více revizí můžete řídit, kdy jsou revize aktivovány nebo deaktivovány a které revize přijímají příchozí provoz. Pokud je pravidlo rozdělení provozu nakonfigurované na latestRevision nastavené true, provoz se nepřepne na nejnovější revizi, dokud nebude připravený.

Práce s více revizemi

I když je režim jedné revize výchozí, někdy můžete chtít mít plnou kontrolu nad tím, jak se vaše revize spravují.

Režim více revizí umožňuje flexibilně spravovat revizi ručně. Například pomocí režimu více revizí můžete přesně určit, kolik provozu je přiděleno jednotlivým revizí.

Rozdělení provozu

Následující diagram znázorňuje aplikaci typu kontejner se dvěma revizemi.

Azure Container Apps: Traffic splitting among revisions

Tento scénář předpokládá, že aplikace kontejneru je v následujícím stavu:

  • Příchozí přenos dat je povolený a zpřístupňuje aplikaci kontejneru přes protokol HTTP nebo TCP.
  • První revize byla nasazena jako revize 1.
  • Po aktualizaci kontejneru se jako revize 2 aktivovala nová revize.
  • Pravidla dělení provozu se konfigurují tak, aby revize 1 přijímala 80 % požadavků a revize 2 obdrží zbývajících 20 %.

Přímý přístup k revizi

Místo použití pravidla směrování k přesměrování provozu na revizi můžete chtít zpřístupnit revizi požadavků na konkrétní adresu URL. Režim více revizí umožňuje odesílat všechny žádosti přicházející do vaší domény na nejnovější revizi, zatímco žádosti o starší revizi jsou k dispozici prostřednictvím popisků pro přímý přístup.

Stav aktivace

V režimu více revizí můžete podle potřeby aktivovat nebo deaktivovat revize. Aktivní revize jsou funkční a můžou zpracovávat požadavky, zatímco neaktivní revize zůstávají neaktivní.

Container Apps neúčtuje za neaktivní revize. Existuje však limit celkového počtu dostupných revizí, přičemž nejstarší revize se vyprázdní, jakmile překročíte počet 100.

Typy změn

Změny aplikace typu kontejner spadají do dvou kategorií: změny oboru revize nebo rozsahu aplikace. Změny rozsahu revizí aktivují při nasazování aplikace novou revizi, zatímco změny oboru aplikace se neaktivují.

Změny na úrovni revize

Při aktualizaci aplikace kontejneru se vytvoří nová revize se změnami oboru revizí. Změny jsou omezené na revizi, ve které jsou nasazené, a nemají vliv na jiné revize.

Změna oboru revize je jakákoli změna parametrů v properties.template části šablony prostředku aplikace kontejneru.

Mezi tyto parametry patří:

  • Přípona revize
  • Konfigurace kontejneru a image
  • Pravidla škálování pro aplikaci kontejneru

Změny na úrovni aplikace

Když nasadíte aplikaci typu kontejner se změnami oboru aplikace:

  • Změny se použijí globálně u všech revizí.
  • Nová revize se nevytvořila.

Změny rozsahu aplikace jsou definovány jako všechny změny parametrů v properties.configuration části šablony prostředku aplikace kontejneru.

Mezi tyto parametry patří:

Přizpůsobení revizí

Název a popisky revizí můžete přizpůsobit, aby byly lépe v souladu se zásadami vytváření názvů nebo strategií správy verzí.

Přípona názvu

Každá revize v Container Apps má přiřazený jedinečný identifikátor. I když se názvy generují automaticky, můžete název revize přizpůsobit.

Typický formát názvu revize je:

<CONTAINER_APP_NAME>-<REVISION_SUFFIX>

Pokud máte například aplikaci typu kontejner s názvem album-api a rozhodnete se o příponě revize first-revision, název úplné revize se změní na album-api-first-revision.

Název přípony revize musí:

  • Skládá se pouze z malých alfanumerických znaků nebo pomlček (-)
  • Začínáme s abecedním znakem
  • Konec alfanumerickým znakem

Názvy nesmí obsahovat:

  • Dvě po sobě jdoucí pomlčky (--)
  • Musí být delší než 64 znaků.

Příponu revize můžete nastavit v šabloně ARM, prostřednictvím Azure CLI az containerapp create a az containerapp update příkazů nebo při vytváření revize prostřednictvím webu Azure Portal.

Případy použití

Níže jsou uvedené běžné případy použití pro použití revizí v kontejnerových aplikacích. Tento seznam není vyčerpávajícím seznamem účelu nebo možností používání revizí Container Apps.

Správa vydaných verzí

Revize zjednodušují proces zavádění nových verzí aplikace. Až budete připraveni zavést aktualizaci nebo novou funkci, můžete vytvořit novou revizi, aniž by to mělo vliv na aktuální živou verzi. Tento přístup zajišťuje hladký přechod a minimalizuje přerušení pro koncové uživatele.

Návrat k předchozím verzím

Někdy se potřebujete rychle vrátit k předchozí stabilní verzi aplikace. V případě potřeby se můžete vrátit k předchozí revizi vaší aplikace kontejneru.

Testování A/B

Pokud chcete otestovat různé verze aplikace, revize můžou podporovat testování A/B. Podmnožinu uživatelů můžete směrovat na novou revizi, shromáždit zpětnou vazbu a činit informovaná rozhodnutí na základě dat z reálného světa.

Nasazení s modrou zelenou barvou

Revize podporují strategii nasazení s modrou zelenou barvou. Díky tomu, že máte dvě paralelní revize (modrá pro živou verzi a zelenou pro novou verzi), můžete postupně fázovat v nové revizi. Jakmile budete mít jistotu o stabilitě a výkonu nové verze, můžete provoz zcela přepnout do zeleného prostředí.

Další kroky