V tomto scénáři organizace interně konsoliduje více rozhraní API pomocí služby Azure API Management nasazené ve virtuální síti.
Architektura
Stáhněte si soubor aplikace Visio s touto architekturou.
Předchozí diagram popisuje kompletní životní cyklus interních rozhraní API, která využívají externí uživatelé.
Tok dat
Toky dat jsou následující:
- Vývojáři kontrolují kód do úložiště GitHubu, které je připojené k agentovi kanálu CI/CD nainstalovanému na virtuálním počítači Azure.
- Agent odešle sestavení do aplikace API hostované ve službě App Service Environment s interním nástrojem pro vyrovnávání zatížení.
- Azure API Management využívá předchozí rozhraní API prostřednictvím hlaviček hostitelů, které jsou zadané v zásadách služby API Management.
- API Management používá název DNS služby App Service Environment pro všechna rozhraní API.
- Application Gateway zveřejňuje portál api Management pro vývojáře a rozhraní API.
- Azure Privátní DNS slouží k internímu směrování provozu mezi app Service Environment, API Management a službou Application Gateway.
- Externí uživatelé využívají vystavený vývojářský portál k využívání rozhraní API prostřednictvím veřejné IP adresy služby Application Gateway.
Komponenty
- Azure Virtual Network umožňuje prostředkům Azure bezpečně komunikovat mezi sebou, internetem a místními sítěmi.
- Azure Privátní DNS umožňuje překlad názvů domén ve virtuální síti bez nutnosti přidávat vlastní řešení DNS.
- Azure API Management pomáhá organizacím publikovat rozhraní API externím, partnerům a interním vývojářům, aby mohli používat svá data a služby.
- Application Gateway je nástroj pro vyrovnávání zatížení webového provozu, který vám pomůže spravovat provoz do webových aplikací.
- App Service Environment interního nástroje pro vyrovnávání zatížení je funkce Aplikace Azure Service, která poskytuje plně izolované a vyhrazené prostředí pro bezpečné spouštění aplikací App Service ve velkém měřítku.
- Azure DevOps je služba pro správu životního cyklu vývoje a zahrnuje funkce pro plánování a řízení projektů, správu kódu, sestavení a vydání.
- Application Insights je rozšiřitelná služba APM (Application Performance Management) pro webové vývojáře na více platformách.
- Azure Cosmos DB je globálně distribuovaná databázová služba Microsoftu s více modely.
Alternativy
- Ve scénáři migrace metodou "lift and shift" nasazených do virtuální sítě Azure je možné back-endové servery přímo adresovat prostřednictvím privátních IP adres.
- Pokud používáte místní prostředky, může se instance SLUŽBY API Management připojit k interní službě soukromě prostřednictvím služby Azure VPN Gateway a připojení IPSec (Site-to-Site Internet Protocol Security) NEBO ExpressRoute , která vytváří hybridní azure a místní scénář.
- Existující nebo opensourcové poskytovatele DNS je možné použít místo služby DNS založené na Azure.
- Interní rozhraní API nasazená mimo Azure můžou být stále přínosná tím, že rozhraní API zveřejňují prostřednictvím služby API Management.
Podrobnosti scénáře
V tomto scénáři organizace hostuje více rozhraní API pomocí Aplikace Azure lication Service Environment (ILB App Service Environment) a chce tato rozhraní API interně konsolidovat pomocí služby Azure API Management (APIM) nasazené ve virtuální síti. Interní instance služby API Management může být také vystavena externím uživatelům, aby bylo možné využít úplný potenciál rozhraní API. Tuto externí expozici je možné dosáhnout pomocí Aplikace Azure lication Gateway předávací požadavky interní službě API Management, která zase využívá rozhraní API nasazená ve službě App Service Environment.
- Webová rozhraní API jsou hostovaná přes zabezpečený protokol HTTPS a budou používat certifikát TLS.
- Aplikační brána je také nakonfigurovaná přes port 443 pro zabezpečená a spolehlivá odchozí volání.
- Služba API Management je nakonfigurovaná tak, aby používala vlastní domény pomocí certifikátů TLS.
- Kontrola navrhované konfigurace sítě pro službu App Service Environment
- Musí existovat explicitní zmínka o portu 3443, který umožňuje službě API Management spravovat prostřednictvím webu Azure Portal nebo PowerShellu.
- Pomocí zásad v APIM přidejte hlavičku HOSTITELE pro rozhraní API hostované ve službě App Service Environment. Tím se zajistí, že nástroj pro vyrovnávání zatížení služby App Service Environment správně předá požadavek.
- Služba API Management přijímá položku DNS služby App Service Environment pro všechny aplikace hostované v rámci služby App Service Environment. Přidejte zásadu APIM, která explicitně nastaví hlavičku HOSTITELE, aby nástroj pro vyrovnávání zatížení služby App Service Environment odlišil aplikace v rámci služby App Service Environment.
- Zvažte integraci se službou Aplikace Azure lication Insights, která také poskytuje metriky prostřednictvím služby Azure Monitor pro monitorování.
- Pokud pro nasazení interních rozhraní API používáte kanály CI/CD, zvažte vytvoření vlastního hostovaného agenta na virtuálním počítači uvnitř virtuální sítě.
Potenciální případy použití
- Synchronizujte informace o adrese zákazníka interně poté, co zákazník provede změnu.
- Přilákejte vývojáře na vaši platformu zveřejněním jedinečných datových prostředků.
Důležité informace
Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.
Spolehlivost
Spolehlivost zajišťuje, že vaše aplikace může splňovat závazky, které uděláte pro vaše zákazníky. Další informace najdete v tématu Přehled pilíře spolehlivosti."
Dostupnost
Službu Azure API Management můžete nasadit jako nasazení ve více oblastech pro zajištění vyšší dostupnosti a také snížit latence. Tato funkce je dostupná jenom v režimu Premium. Služba API Management v tomto konkrétním scénáři využívá rozhraní API ze služby App Service Environment. ApiM můžete také použít pro rozhraní API hostovaná na interní místní infrastruktuře.
Služba App Service Environment by mohla využít profily Traffic Manageru k distribuci provozu hostovaného ve službě App Service Environment za účelem vyššího škálování a dostupnosti.
Odolnost
I když tento ukázkový scénář hovoří o konfiguraci více, rozhraní API hostovaná ve službě App Service Environment by měla být dostatečně odolná pro zpracování chyb v požadavcích, které jsou nakonec spravovány službou API Management a službou Application Gateway. Zvažte vzory opakování a jističe v návrhu rozhraní API. Obecné pokyny k návrhu odolných řešení najdete v tématu Návrh odolných aplikací pro Azure.
Zabezpečení
Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení.
Vzhledem k tomu, že předchozí ukázkový scénář je hostovaný zcela v interní síti, služba API Management a App Service Environment už jsou nasazené v zabezpečené infrastruktuře (Azure Virtual Network). Application Gateways můžete integrovat s Microsoft Defenderem pro cloud , abyste zajistili bezproblémový způsob, jak zabránit hrozbám v prostředí, detekovat je a reagovat na ně. Obecné pokyny k návrhu zabezpečených řešení najdete v dokumentaci k zabezpečení Azure.
Optimalizace nákladů
Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.
Api Management se nabízí ve čtyřech úrovních: vývojář, Basic, Standard a Premium. Podrobné pokyny k rozdílům v těchto úrovních najdete tady v doprovodných materiálech k cenám služby Azure API Management.
Zákazníci můžou škálovat službu API Management přidáváním a odebíráním jednotek. Každá jednotka má kapacitu podle své úrovně.
Poznámka:
Úroveň Vývojář můžete použít k vyhodnocení funkcí služby API Management. Pro produkční prostředí byste neměli používat úroveň Vývojář.
Pokud chcete zobrazit předpokládané náklady a přizpůsobit si potřeby nasazení, můžete upravit počet jednotek škálování a instancí služby App Service v cenové kalkulačce Azure.
Podobně najdete doprovodné materiály k cenám služby App Service Environment.
Ceny služby Application Gateway můžete nakonfigurovat v závislosti na požadované úrovni a prostředcích.
Efektivita výkonu
Efektivita výkonu je schopnost úlohy škálovat se tak, aby efektivním způsobem splňovala požadavky, které na ni kladou uživatelé. Další informace najdete v tématu Přehled pilíře efektivity výkonu.
Škálovatelnost
Instance služby API Management můžete škálovat podle řady faktorů, jako je počet a rychlost souběžných připojení, druh a počet nakonfigurovaných zásad, velikosti požadavků a odpovědí a latence back-endu v rozhraních API. Možnosti horizontálního navýšení kapacity instance jsou k dispozici na úrovních Basic, Standard a Premium, ale jsou vázané horním limitem škálování na úrovni Basic a Standard. Instance se označují jako Jednotky a lze je škálovat až na maximální počet dvou jednotek úrovně Basic, čtyři jednotky úrovně Standard a libovolný počet jednotek v úrovni Premium. K dispozici jsou také možnosti automatického škálování , které umožňují horizontální navýšení kapacity na základě pravidel.
Služba App Service Environment je navržená pro škálování s omezeními na základě cenové úrovně. Aplikace hostované v rámci služby App Service Environment můžete nakonfigurovat tak, aby škálovat (počet instancí) nebo vertikálně navýšit kapacitu (velikost instance) v závislosti na požadavcích aplikace.
Aplikace Azure automatické škálování brány je k dispozici jako součást zónově redundantní skladové položky ve všech globálních oblastech Azure. Podívejte se na funkci Public Preview týkající se automatického škálování služby App Gateway.
Nasazení tohoto scénáře
Požadavky a předpoklady
- Musíte si koupit vlastní název domény.
- Potřebujete certifikát TLS (použili jsme certifikát se zástupným znakem ze služby Azure Certificates Service), abyste ho mohli použít pro všechny naše vlastní domény. Můžete také získat certifikát podepsaný svým držitelem pro scénáře vývoje testování.
- Toto konkrétní nasazení používá název domény contoso.org a certifikát TLS se zástupným znakem pro doménu.
- Nasazení používá názvy prostředků a adresní prostory uvedené v části Nasazení. Můžete nakonfigurovat názvy prostředků a adresní prostory.
Nasazení a sestavení částí
Součásti nasazené pomocí předchozí šablony Resource Manageru je potřeba dále nakonfigurovat následujícím způsobem:
Virtuální síť s následujícími konfiguracemi:
- Název:
ase-internal-vnet
- Adresní prostor pro virtuální síť: 10.0.0.0/16
- Čtyři podsítě
backendSubnet
pro službu DNS: 10.0.0.0/24apimsubnet
pro interní službu API Management: 10.0.1.0/28asesubnet
pro ILB App Service Environment: 10.0.2.0/24- Virtuální síť VMSubnet pro testovací virtuální počítače a virtuální počítač hostovaného agenta DevOps: 10.0.3.0/24
- Název:
Privátní DNS služba (Public Preview), protože přidání služby DNS vyžaduje, aby byla virtuální síť prázdná.
- Další informace najdete v pokynech k nasazení.
App Service Environment s možností
aseinternal
interního nástroje pro vyrovnávání zatížení (ILB): (DNS:aseinternal.contoso.org
). Po dokončení nasazení nahrajte certifikát se zástupným znakem pro interní nástroje pro vyrovnávání zatížení.Plán služby App Service se službou App Service Environment jako umístění
Aplikace API (App Service pro jednoduchost) –
srasprest
(URL:https://srasprest.contoso.org
) – ASP.NET webové rozhraní API založené na modelu -View-Controller (MVC). Po nasazení nakonfigurujte:- Webová aplikace pro použití certifikátu TLS
- Application Insights do předchozích aplikací:
api-insights
- Vytvořte službu Azure Cosmos DB pro webová rozhraní API hostovaná v interní síti:
noderestapidb
- Vytvoření položek DNS ve vytvořené zóně Azure Privátní DNS
- Azure Pipelines můžete využít ke konfiguraci agentů ve službě Virtual Machines k nasazení kódu pro webovou aplikaci v interní síti.
- Pro interní testování aplikace API vytvořte testovací virtuální počítač v podsíti virtuální sítě.
Vytvoření služby API Management:
apim-internal
Nakonfigurujte službu pro připojení k interní virtuální síti v podsíti:
apimsubnet
. Po dokončení nasazení proveďte následující další kroky:- Konfigurace vlastních domén pro služby APIM pomocí protokolu TLS
- Rozhraní API Portal (
api.contoso.org
) - Vývojový portál (
portal.contoso.org
) - V části Rozhraní API nakonfigurujte aplikace App Service Environment pomocí názvu DNS služby App Service Environment přidané zásady hlavičky HOSTITELE pro webovou aplikaci.
- Použití předchozího vytvořeného testovacího virtuálního počítače k otestování interní služby API Management ve virtuální síti
- Rozhraní API Portal (
Poznámka:
Testování rozhraní APIM z webu Azure Portal nebude fungovat, protože
api.contoso.org
není možné je veřejně vyřešit.*- Konfigurace vlastních domén pro služby APIM pomocí protokolu TLS
Nakonfigurujte aplikační bránu pro přístup ke službě API:
apim-gateway
na portu 80. Přidejte certifikáty TLS do aplikační brány a odpovídající sondy stavu a nastavení HTTP. Nakonfigurujte také pravidla a naslouchací procesy tak, aby používaly certifikát TLS.
Po úspěšném dokončení předchozích kroků nakonfigurujte položky DNS v záznamech CNAME webového api.contoso.org
registrátora a portal.contoso.org
s veřejným názvem DNS služby Application Gateway: ase-appgtwy.westus.cloudapp.azure.com
Ověřte, že se můžete připojit k webu Dev Portal z veřejného webu a že můžete otestovat rozhraní API služeb APIM pomocí webu Azure Portal.
Poznámka:
Není vhodné použít stejnou adresu URL pro interní a externí koncové body pro služby APIM.
Přispěvatelé
Tento článek spravuje Microsoft. Původně byl napsán následujícím přispěvatelem.
Hlavní autor:
- Srikant Sarwa | Vedoucí zákaznický inženýr
Další přispěvatelé:
- Shawn Kupfer | Technický spisovatel
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- Kurz: Import a publikování prvního rozhraní API
- Kurz: Vytvoření a publikování produktu
- Kurz: Publikování několika verzí rozhraní API