Tento článek obsahuje přehled nasazení zabezpečených aplikací pomocí služby App Service Environment. K omezení přístupu k aplikacím z internetu se používá služba Aplikace Azure lication Gateway a Azure Web Application Firewall. Tento článek obsahuje také pokyny k kontinuální integraci a průběžnému nasazování (CI/CD) pro službu App Service Environment pomocí Azure DevOps.
Tento scénář se běžně nasazuje v odvětvích, jako je bankovnictví a pojištění, kde si zákazníci kromě zabezpečení na úrovni aplikace uvědomují zabezpečení na úrovni platformy. K předvedení těchto konceptů použijeme aplikaci, která uživatelům umožňuje odesílat vyúčtování výdajů.
Potenciální případy použití
Tento scénář zvažte pro následující případy použití:
- Vytvoření webové aplikace Azure, kde se vyžaduje dodatečné zabezpečení
- Poskytování vyhrazené tenantské architektury místo sdílených plánů služby App Service tenanta
- Použití Azure DevOps s prostředím aplikační služby s interním vyrovnáváním zatížení (ILB).
Architektura
Stáhněte si soubor aplikace Visio s touto architekturou.
Tok dat
- Požadavky HTTP/HTTPS nejprve narazily na aplikační bránu.
- Volitelně (není zobrazeno v diagramu) můžete povolit ověřování Microsoft Entra pro webovou aplikaci. Po prvním dosažení provozu služby Application Gateway se uživateli zobrazí výzva k zadání přihlašovacích údajů k ověření v aplikaci.
- Požadavky uživatelů procházejí interním nástrojem pro vyrovnávání zatížení prostředí, který pak směruje provoz do webové aplikace Expenses.
- Uživatel pak vytvoří sestavu výdajů.
- V rámci vytváření sestavy výdajů se vyvolá nasazená aplikace API, která načte jméno a e-mail správce uživatele.
- Vytvořená sestava výdajů je uložená ve službě Azure SQL Database.
- Kvůli usnadnění průběžného nasazování se kód zkontroluje do instance Azure DevOps.
- Buildovaný virtuální počítač má nainstalovaného agenta Azure DevOps, který umožňuje virtuálnímu počítači sestavení vyžádat bity pro nasazení webové aplikace do služby App Service Environment (protože se virtuální počítač sestavení nasadí do podsítě ve stejné virtuální síti).
Komponenty
- App Service Environment poskytuje plně izolované vyhrazené prostředí pro bezpečné spouštění aplikace ve velkém měřítku. Vzhledem k tomu, že služba App Service Environment a úlohy, které na ní běží, jsou za virtuální sítí, poskytuje také další vrstvu zabezpečení a izolace. Požadavek na vysoké škálování a izolaci řídil výběr služby App Service Environment s interním nástrojem pro vyrovnávání zatížení.
- Tato úloha používá izolovanou cenovou úroveň služby App Service, takže aplikace běží v privátním vyhrazeném prostředí v datacentru Azure pomocí rychlejších procesorů, úložiště SSD (Solid-State Drive) a ve srovnání se standardem zdvojnásobuje poměr paměti k jádru.
- služba Aplikace AzureWebová aplikace a aplikace API hostují webové aplikace a rozhraní RESTful API. Tyto aplikace a rozhraní API jsou hostované v plánu izolované služby, který také nabízí automatické škálování, vlastní domény atd., ale ve vyhrazené vrstvě.
- Azure Application Gateway je nástroj pro vyrovnávání zatížení webového provozu fungující ve vrstvě 7, který spravuje provoz do webové aplikace. Nabízí přesměrování zpracování SSL, které z webových serverů hostujících webovou aplikaci odebere další režii, aby bylo možné znovu dešifrovat provoz.
- Firewall webových aplikací je funkce služby Application Gateway. Povolení firewallu webových aplikací ve službě Application Gateway dále vylepšuje zabezpečení. Firewall webových aplikací používá pravidla OWASP (Open Worldwide Application Security Project) k ochraně webové aplikace před útoky, jako jsou skriptování mezi weby, napadení relací a injektáž SQL.
- Služba Azure SQL Database byla vybrána, protože většina dat v této aplikaci je relační data s některými daty jako dokumenty a objekty blob.
- Sítě Azure poskytují různé síťové funkce v Azure a sítě můžou být v Partnerském vztahu s jinými virtuálními sítěmi v Azure. Připojení je také možné navázat s místními datacentry prostřednictvím ExpressRoute nebo site-to-site. V tomto případě je ve virtuální síti povolený koncový bod služby, aby se zajistilo, že data proudí jenom mezi virtuální sítí Azure a instancí služby SQL Database.
- Azure DevOps slouží ke spolupráci týmů během sprintů pomocí funkcí podporujících agilní vývoj a vytváření kanálů sestavení a verzí.
- Vytvořil se virtuální počítač sestavení Azure, aby instalovaný agent mohl stáhnout příslušný build a nasadit webovou aplikaci do prostředí.
Alternativy
App Service Environment může spouštět běžné webové aplikace ve Windows nebo jako v tomto příkladu webové aplikace nasazené v prostředí, které běží jako kontejnery Linuxu. Pro hostování těchto kontejnerizovaných aplikací s jednou instancí byla vybrána služba App Service Environment. K dispozici jsou alternativy – při návrhu řešení si projděte následující aspekty.
- Azure Service Fabric: Pokud je vaše prostředí většinou založené na Windows a vaše úlohy jsou primárně založené na rozhraní .NET Framework a zvažujete změna architektury na .NET Core, použijte Service Fabric k podpoře a nasazení kontejnerů Windows Serveru. Service Fabric navíc podporuje rozhraní API pro programování v jazyce C# nebo Java a pro vývoj nativních mikroslužeb je možné clustery zřídit ve Windows nebo Linuxu.
- Azure Kubernetes Service (AKS) je opensourcový projekt a orchestrační platforma vhodnější pro hostování složitých multikontejnerových aplikací, které obvykle používají architekturu založenou na mikroslužbách. AKS je spravovaná služba Azure, která abstrahuje složitost zřizování a konfigurace clusteru Kubernetes. K podpoře a údržbě platformy Kubernetes se ale vyžaduje významná znalost platformy Kubernetes, takže hostování několika kontejnerizovaných webových aplikací s jednou instancí nemusí být nejlepší volbou.
Mezi další možnosti datové vrstvy patří:
- Azure Cosmos DB: Pokud je většina vašich dat v nerelačním formátu, je vhodná alternativa ke službě Azure Cosmos DB. Tato služba poskytuje platformu pro spouštění jiných datových modelů, jako jsou MongoDB, Cassandra, Graph data nebo jednoduché úložiště tabulek.
Důležité informace
Při práci s certifikáty ve službě App Service Environment s interním nástrojem pro vyrovnávání zatížení existují určité aspekty. Potřebujete vygenerovat certifikát, který je zřetězený do důvěryhodného kořenového adresáře, aniž byste museli vyžádat žádost o podepsání certifikátu vygenerovanou serverem, kde se certifikát nakonec uloží. V případě Internetová informační služba (IIS) je například prvním krokem vygenerování žádosti o podepsání certifikátu (CSR) ze serveru SLUŽBY IIS a jeho odeslání do certifikační autority pro vystavování certifikátů SSL.
Z interního nástroje pro vyrovnávání zatížení (ILB) služby App Service Environment nemůžete vydat csr. Způsob, jak toto omezení zpracovat, je použít proceduru se zástupným znakem.
Postup se zástupným znakem umožňuje místo CSR použít doklad o vlastnictví názvu DNS. Pokud vlastníte obor názvů DNS, můžete vložit speciální záznam DNS TXT, procedura se zástupnými znaménky zkontroluje, jestli záznam existuje, a pokud je nalezený, ví, že vlastníte server DNS, protože máte správný záznam. Na základě této informace vydá certifikát, který je zaregistrovaný k důvěryhodnému kořenovému adresáři, který pak můžete nahrát do interního nástroje pro vyrovnávání zatížení. S jednotlivými úložišti certifikátů ve službě Web Apps nemusíte dělat nic, protože v interním nástroji pro vyrovnávání zatížení máte důvěryhodný kořenový certifikát SSL.
Pokud chcete provádět zabezpečená volání mezi službami spuštěnými ve službě App Service Environment s interním nástrojem pro vyrovnávání zatížení, proveďte funkci certifikátu SSL podepsaného svým držitelem nebo interně vydaným certifikátem SSL. Další řešení, které byste měli zvážit , jak zajistit, aby služba App Service Environment s interním vydáním certifikátu SSL fungovala s interním certifikátem SSL a jak načíst interní certifikační autoritu do důvěryhodného kořenového úložiště.
Při zřizování služby App Service Environment zvažte následující omezení při výběru názvu domény pro prostředí. Názvy domén nemůžou být:
net
azurewebsites.net
p.azurewebsites.net
nameofthease.p.azurewebsites.net
Kromě toho se vlastní název domény používaný pro aplikace a název domény používaný službou App Service Environment s interním nástrojem pro vyrovnávání zatížení nemůže překrývat. Pro službu App Service Environment s interním nástrojem pro vyrovnávání zatížení s názvem domény contoso.com nemůžete pro své aplikace používat vlastní názvy domén, jako jsou:
www.contoso.com
abcd.def.contoso.com
abcd.contoso.com
Zvolte doménu pro službu App Service Environment s interním nástrojem pro vyrovnávání zatížení, která nebude v konfliktu s těmito vlastními názvy domén. V tomto příkladu můžete použít něco jako contoso-internal.com pro doménu vašeho prostředí, protože to nebude v konfliktu s názvy vlastních domén, které končí na .contoso.com.
Dalším bodem, který je potřeba vzít v úvahu, je DNS. Pokud chcete aplikacím v rámci služby App Service Environment umožnit komunikaci mezi sebou, například webovou aplikaci, která bude komunikovat s rozhraním API, budete muset mít nakonfigurovaný DNS pro vaši virtuální síť, která prostředí drží. Můžete buď použít vlastní DNS , nebo můžete použít privátní zóny Azure DNS.
Dostupnost
- Při vytváření cloudové aplikace zvažte použití typických vzorů návrhu pro dostupnost .
- Projděte si důležité informace o dostupnosti v příslušné referenční architektuře webových aplikací služby App Service.
- Další aspekty týkající se dostupnosti najdete v kontrolním seznamu dostupnosti v Centru architektury Azure.
Škálovatelnost
- Zjistěte, jak funguje škálování ve službě App Service Environment.
- Projděte si osvědčené postupy pro automatické škálování cloudových aplikací.
- Při vytváření cloudové aplikace mějte na paměti typické vzory návrhu pro zajištění škálovatelnosti.
- Projděte si aspekty škálovatelnosti v příslušné referenční architektuře webové aplikace App Service.
- Další články o škálovatelnosti najdete v kontrolním seznamu efektivity výkonu, který je k dispozici v Centru architektury Azure.
Zabezpečení
- Projděte si přehled pilíře zabezpečení.
- Projděte si aspekty zabezpečení v příslušné referenční architektuře webové aplikace App Service.
- Zvažte použití zabezpečeného procesu životního cyklu vývoje, který vývojářům pomáhá vytvářet bezpečnější software a řešit požadavky na dodržování předpisů zabezpečení a zároveň snížit náklady na vývoj.
- Projděte si architekturu podrobného plánu pro dodržování předpisů Azure PCI DSS.
- Azure DDoS Protection v kombinaci s osvědčenými postupy návrhu aplikací poskytuje vylepšené funkce pro zmírnění rizik DDoS, které poskytují větší ochranu před útoky DDoS. Službu Azure DDoS Protection byste měli povolit v jakékoli hraniční virtuální síti.
Odolnost
- Zvažte použití geografického distribuovaného škálování se službou App Service Environment pro zajištění větší odolnosti a škálovatelnosti.
- Projděte si typické vzory návrhu pro zajištění odolnosti a zvažte jejich implementaci tam, kde je to vhodné.
- Několik doporučených postupů pro App Service najdete v Centru architektury Azure.
- Zvažte použití aktivní geografické replikace pro datovou vrstvu a geograficky redundantní úložiště pro image a fronty.
- Podrobnější informace o odolnosti najdete v příslušném článku centra architektury Azure.
Nasazení tohoto scénáře
Pokud chcete tento scénář nasadit, postupujte podle tohoto podrobného kurzu , který ukazuje, jak ručně nasadit jednotlivé komponenty. Při sledování kurzu vyberte App Service Environment v3 místo v2. Tento kurz také poskytuje ukázkovou aplikaci .NET, která spouští jednoduchou aplikaci contoso expense reporting.
Ceny
Prozkoumejte náklady na provoz tohoto scénáře. Všechny služby jsou předem nakonfigurované v kalkulačce nákladů. Pokud chcete zjistit, jak by se u konkrétního případu použití změnily ceny, změňte odpovídající proměnné tak, aby odpovídaly očekávanému provozu.
Poskytli jsme tři ukázkové profily nákladů na základě objemu provozu, který očekáváte:
- Malý: Tento příklad cen představuje komponenty nezbytné pro minimální instanci produkční úrovně, která obsluhuje několik tisíc uživatelů za měsíc. Aplikace používá jednu instanci standardní webové aplikace, která bude stačit k povolení automatického škálování. Každá z ostatních komponent se škáluje na úroveň Basic, která minimalizuje náklady, ale stále zajišťuje podporu smlouvy o úrovni služeb (SLA) a dostatečnou kapacitu pro zpracování úloh na úrovni produkčního prostředí.
- Střední: Tento příklad cen představuje komponenty potřebné pro nasazení střední velikosti. Tady odhadujeme přibližně 100 000 uživatelů v průběhu měsíce. Očekávaný provoz se zpracovává v jedné instanci služby App Service se střední úrovní Standard. Kromě toho se do kalkulačky přidají střední úrovně kognitivních a vyhledávacích služeb.
- Velký: Tento příklad cen představuje aplikaci určenou pro velké škálování v řádu milionů uživatelů za měsíc a přesouvání terabajtů dat. Na této úrovni využití se vyžadují vysoce výkonné webové aplikace úrovně Premium nasazené ve více oblastech, které provoz provozuje. Data se skládají z následujících komponent: úložiště, databáze a CDN, všechny nakonfigurované pro terabajty dat.
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autor:
- Faisal Mustafa | Vedoucí zákaznický inženýr
Další kroky
- Podrobný kurz nasazení
- Integrace služby App Service Environment s interním nástrojem pro vyrovnávání zatížení se službou Azure Application Gateway
- Integrace webových aplikací se službou Azure Application Gateway
- Geografické distribuované škálování s využitím služby App Service Environment