Upravit

Sdílet prostřednictvím


Publikování interních rozhraní API pro externí uživatele

Azure API Management
Azure Application Gateway
Azure DevOps
Azure Monitor
Azure Virtual Network

V tomto scénáři organizace interně konsoliduje několik rozhraní API s využitím služby Azure API Management nasazené v rámci virtuální sítě.

Architektura

Diagram architektury znázorňující úplný životní cyklus interních rozhraní API, která využívají externí uživatelé

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í:

  1. 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.
  2. Agent odešle sestavení do aplikace API hostované ve službě ASE s interním nástrojem pro vyrovnávání zatížení.
  3. 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.
  4. API Management používá název DNS služby App Service Environment pro všechna rozhraní API.
  5. Application Gateway zveřejňuje portál API Management pro vývojáře a rozhraní API.
  6. Azure Privátní DNS slouží k internímu směrování provozu mezi službami ASE, API Management a Application Gateway.
  7. 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í.
  • Interní služba Load Balancer App Service Environment 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 "lift and shift" Azure nasazeného do virtuální sítě Azure je možné back-endové servery přímo řešit 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ě přes bránu Azure VPN a připojení IPSec (Site-to-Site Internet Protocol Security) nebo ExpressRoute, což je hybridní scénář Azure a místní.
  • 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 ASE) 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ě ASE.

  • Webová rozhraní API jsou hostovaná přes zabezpečený protokol HTTPS a budou používat certifikát TLS.
  • Služba Application Gateway 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.
  • Využijte zásady v rámci SLUŽBY APIM k přidání hlavičky HOSTITELE pro rozhraní API hostované ve službě ASE. Tím zajistíte, že nástroj pro vyrovnávání zatížení služby ASE bude požadavek správně předávat.
  • Služba API Management přijímá položku DNS služby ASE 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í ASE mohl rozlišovat mezi aplikacemi 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 k 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 zcela hostovaný v interní síti, služba API Management a ASE už jsou nasazené na zabezpečenou infrastrukturu (virtuální síť Azure). 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

  1. Musíte si koupit vlastní název domény.
  2. 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í.
  3. Toto konkrétní nasazení používá název domény contoso.org a certifikát TLS se zástupným znakem pro doménu.
  4. 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í

Nasazení do Azure

Součásti nasazené pomocí předchozí šablony Resource Manageru je potřeba dále nakonfigurovat následujícím způsobem:

  1. 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/24
      • apimsubnet pro interní službu API Management: 10.0.1.0/28
      • asesubnet pro službu ASE s interním nástrojem pro vyrovnávání zatížení: 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
  2. 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í.
  3. 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í.

  4. Plán služby App Service se službou ASE jako umístění

  5. Aplikace API (App Services 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á interně do virtuální sítě: noderestapidb
    • Vytvoření položek DNS ve vytvořené zóně 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ě.
  6. Vytvoření služby API Management: apim-internal

  7. 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 ASE pomocí názvu DNS služby ASE 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

    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.*

  8. Nakonfigurujte službu Application Gateway pro přístup ke službě API: apim-gateway na portu 80. Přidejte certifikáty TLS do služby Application Gateway 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:

Další přispěvatelé:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky

Migrace webové aplikace pomocí služby Azure API Management