Upravit

Sdílet prostřednictvím


Automatizace rekonfigurace infrastruktury pomocí Azure

Azure Container Instances
Azure Application Gateway
Azure Functions
Azure Monitor

Kontejnerizace je běžný přístup k modernizaci aplikací. Můžete zvážit použití služby Azure Kubernetes Service pro pokročilé úlohy nebo použití služby Azure Container Instances pro jednoduché úlohy kontejnerů, jako je jednoduchá webová aplikace. Tento článek se zaměřuje na implementaci bezserverové automatizace na úrovni infrastruktury pro službu Container Instances, když se služba Application Gateway používá jako brána firewall.

Začneme běžným scénářem. K zabezpečení instancí kontejnerů Azure můžete ve službě Azure Container Instances použít skupiny kontejnerů. Pomocí skupin kontejnerů můžete nasadit instance kontejnerů Azure ve virtuální síti, aby kontejnery mohly přistupovat k jiným privátním prostředkům nebo jiným službám Azure prostřednictvím privátního koncového bodu Azure. Pro zákazníky hostující webové aplikace se běžně používá brána firewall webových aplikací, jako je Aplikace Azure Gateway, k front-příchozímu provozu při používání služby Azure Container Instances jako back-endového fondu. Tento článek je skvělým výchozím bodem: Zveřejnění statické IP adresy pro skupinu kontejnerů.

Jedním z potenciálních problémů s tímto přístupem je použití nestatické privátní IP adresy jako back-endového fondu. Privátní IP adresa se může během údržby obměňovat, což vyžaduje, aby správce cloudu ručně překonfiguroval back-endový fond. Pokud se do škálování přidají nové kontejnery, správce bude muset také provést rekonfiguraci, aby se zajistilo směrování provozu do správného back-endového fondu. Sondy aktivity a testy připravenosti nejsou podporovány ve skupinách kontejnerů, což znesnadní identifikaci výpadků úloh.

Tento článek popisuje vylepšení, která řeší tyto běžné problémy prostřednictvím přijetí služby Application Přehledy a Azure Monitoru pro monitorování a používání azure Functions k automatické obměně privátních IP adres. Tento přístup zlepšuje redundanci úlohy.

Potenciální případy použití

Tato architektura je nejvhodnější pro:

  • Bezserverové nasazení.
  • Minimální operace pro úlohy nativní pro cloud s automatizací.
  • Jednoduchá úloha kontejneru, která nevyžaduje pokročilou orchestraci kontejnerů.
  • Vysoce redundantní externí úloha s automatizovanou rekonfigurací
  • Úloha kontejneru, která vyžaduje přístup k privátním prostředkům, jako jsou úlohy vystavené privátními koncovými body Azure.

Architektura

Vývojový diagram znázorňující přístup ke službě Azure Cosmos DB privátním koncovým bodem pro službu Azure Container Instances Před ní je Aplikace Azure Gateway.

Stáhněte si soubor aplikace Visio s touto architekturou.

Tok dat

Část 1: Typický tok provozu webové aplikace

1a. Služba Application Gateway má funkci firewallu webových aplikací, která je ideální pro fronting veřejného provozu před dosažením back-endové úlohy. Application Gateway zveřejňuje veřejnou IP adresu, takže Azure DDoS Protection poskytuje další vrstvu ochrany.

1b. Back-endový fond služby Application Gateway je nakonfigurovaný s privátní IP adresou instance kontejneru Azure ve skupině kontejnerů. Instance kontejnerů Azure ve skupinách kontejnerů nepřicházejí s plně kvalifikovanými názvy domén (FQDN), takže je potřeba použít IP adresu.

1c. Kontejnery ve službě Azure Container Instances můžou využívat privátní prostředky, jako je Azure Cosmos DB, prostřednictvím privátních propojení.

Část 2: Vylepšení pomocí automatizace

2a. Application Gateway obsahuje metriku počtu hostitelů, která je v pořádku, kterou můžete použít jako sondu aktivity pro instance kontejnerů Azure, protože skupiny kontejnerů ve službě Container Instances nepodporují testy dostupnosti ani připravenosti.

2b. Aplikační Přehledy se používá v kontejnerech ke shromažďování dalších metrik, včetně tepů, které je možné odeslat do aplikačního Přehledy pro monitorování prostřednictvím vlastního vlákna.

2c. Výstrahy můžete nakonfigurovat na základě prahových úrovní definovaných v krocích 2a a 2b. Předpokládejme například, že váš systém má tři instance kontejneru spuštěné jako back-endový fond. Upozornění můžete nakonfigurovat tak, aby se aktivovalo, když je počet hostitelů v pořádku menší než 3. Ve skupině akcí pravidel upozornění můžete k aktivaci vlastní akce použít funkci Azure jako typ akce.

2d. Ve funkci Azure se sada Azure SDK používá k získání konfigurace existujících instancí kontejneru a opětovnému vytvoření stejných instancí. Tuto funkci aktivuje výstraha definovaná v kroku 2c. Spuštění této funkce může trvat dlouho v závislosti na složitosti nastavení. Funkce Azure functions můžou vypršet časový limit, takže můžete použít Azure Durable Functions ke zpracování dlouhotrvajících procesů a získání aktualizací stavu.

Komponenty

Automation

Sledování

  • Metriky služby Azure Monitor: Tato funkce služby Azure Monitor shromažďuje předdefinovaná číselná data ze služeb Azure.
  • Skupiny akcí: Skupina akcí je kolekce předvoleb oznámení definovaných vlastníkem prostředku. Kanály oznámení a akce můžete definovat na základě aktivovaných upozornění.

Sítě

  • Azure DDoS Protection: Azure DDoS (Basic) Protection je bezplatná a povolená na všech veřejných IP adresách. Azure DDoS Network Protection nabízí další možnosti, jako je ingestování protokolů do jiných umístění a možnost zapojit tým DDoS Protection Rapid Response.
  • Aplikace Azure Gateway: Azure Web Application Firewall poskytuje ochranu pro veřejně přístupné aplikace před zneužitím, jako jsou injektáž SQL a útoky XSS.
  • Azure Private Link: Azure Private Link poskytuje přístup ke službám Azure PaaS prostřednictvím privátního koncového bodu v páteřní síti Microsoftu za účelem dalšího zvýšení zabezpečení přístupu k síti.

Aplikace

  • Azure Container Instances: Služba Azure Container Instances bez problémů spouští image kontejnerů, aniž byste museli nastavit jinou infrastrukturu. Pro pokročilou orchestraci kontejnerů byste měli zvážit Službu Azure Kubernetes Service (AKS ).
  • Azure Cosmos DB: Azure Cosmos DB je plně spravovaná databáze NoSQL, která podporuje více platforem, jako jsou SQL, Cassandra a MongoDB.
  • Azure Key Vault: Jako osvědčený postup zabezpečení vývojáři neukládají připojovací řetězec jako prostý text ve zdrojovém kódu aplikace. Azure Key Vault slouží jako centrální umístění pro ukládání tajných kódů s vylepšeným zabezpečením. Aplikace můžou načítat potřebné klíče s lepším zabezpečením.

Alternativy

Předchozí scénář aktualizuje back-endový fond pro službu Application Gateway. Jako alternativu můžete jako cílový back-end služby Application Gateway použít privátní zónu DNS Azure a místo změn ve službě Application Gateway aktualizovat záznam pomocí funkcí Azure. Tato alternativa by zkrátila dobu nasazení. Na druhou stranu metriky služby Application Gateway nebudou moct identifikovat počet hostitelů, protože by byly abstrahovány službou DNS. Proto by se tato automatizace potřebovala aktivovat prostřednictvím řešení pro monitorování aplikací, jako je application Přehledy nebo Azure Monitor přímo.

Azure nabízí několik možností hostování úloh založených na kontejnerech, jako je Azure Kubernetes Service, Aplikace Azure Service a Azure Container Apps.

Azure Kubernetes Service poskytuje pokročilé možnosti orchestrace kontejnerů a sítě, jako je prostředek služby, který není k dispozici ve službě Container Instances. Tato referenční architektura tento požadavek řeší.

App Service může také hostovat úlohy kontejnerů a App Service Environment umožňuje vývojářům nasadit službu App Service ve službě Azure Virtual Network. Cenová struktura služby Container Instances ve srovnání se službou App Service je pro malé úlohy přesvědčivá.

Azure Container Apps je bezserverová kontejnerová platforma založená na Kubernetes. Umožňuje vývojářům vytvářet aplikace ve stylu Kubernetes, která nevyžaduje přímý přístup ke všem nativním rozhraním API Kubernetes a správě clusterů. Azure Container Apps poskytuje plně spravované prostředí na základě osvědčených postupů.

Důležité informace

Dostupnost

Vzhledem k tomu, že testy aktivity a připravenosti nejsou ve skupinách kontejnerů podporované, doporučujeme k monitorování použít metriky služby Azure Monitor a Aplikace Azure Přehledy. Stav kontejneru a doba provozu nejsou deterministické přístupy k určení, jestli systém funguje až do konce.

Operace

Azure Durable Functions se používá k překonfigurování infrastruktury v případě selhání ve službě Container Instances nebo při změně privátní IP adresy skupiny kontejnerů. Jak je uvedeno v dokumentaci, proces zřizování trvá trochu déle. Uživatelé můžou zaznamenat minimální prostoje, pokud kontejnery nejsou připravené včas.

Tato architektura přidává vrstvu odolnosti. Přesto ale doporučujeme nakonfigurovat monitorování v aplikaci a monitorovat stav Azure pro selhání platformy.

Škálovatelnost

Požadavky na procesor a paměť jsou definovány při vytváření kontejnerů, takže nebudete moct provádět vertikální škálování přímo. Kontejnery můžete přidat do skupiny kontejnerů, abyste mohli horizontálně škálovat. Všimněte si ale, že každý kontejner ve skupině kontejnerů bude využívat jednu privátní IP adresu, takže limit by byl velikost zřízené podsítě.

Dalším důležitým aspektem škálování je stav aplikace. Aplikace musí zpracovat stav místně nebo pomocí externích služeb, jako je Azure Cache for Redis, aby se zajistilo, že škálování na vyžádání nevytváří ztrátu dat v aplikaci.

Zabezpečení

Možnost nasadit PaaS do virtuální sítě (injektáž virtuální sítě) nezlepší zabezpečení, pokud není konfigurace správně nastavená. Injektáž virtuální sítě poskytuje správcům větší kontrolu nad sítí, což poskytuje výhody, jako jsou přísnější skupiny zabezpečení sítě a použití prostředků, které nejsou veřejně zpřístupněny.

Private Link projektuje do virtuální sítě privátní koncový bod, který aplikaci umožňuje přístup k Azure PaaS přímo přes privátní IP adresu. Správci můžou současně dále řídit, kdo má přístup k příslušné službě Azure PaaS.

Pokud ukládáte image kontejnerů ve službě Azure Container Registry, můžete povolit nástroj Microsoft Defender pro registry kontejnerů, aby prováděl kontroly ohrožení zabezpečení imagí kontejneru.

Ceny

K odhadu nákladů na prostředky Azure použijte cenovou kalkulačku Azure.

Podívejte se na tento příklad předchozí implementace.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autor:

Další kroky

Projděte si naše architektury:

Související pokyny: