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í kompletní ž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

Data teče následujícím způsobem:

  1. Vývojáři se změnami kódu do úložiště GitHub, 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 HOSTITELE zadaných v zásadách API Management.
  4. API Management používá název DNS App Service Environment pro všechna rozhraní API.
  5. Application Gateway zveřejňuje portál pro vývojáře a rozhraní API API Management.
  6. Azure Privátní DNS slouží k internímu směrování provozu mezi službou ASE, API Management a Application Gateway.
  7. Externí uživatelé využívají vystavený portál pro vývojáře k využívání rozhraní API prostřednictvím veřejné IP adresy 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, partnerský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ý pomáhá spravovat provoz do webových aplikací.
  • Interní Load Balancer App Service Environment je Azure App Service funkce, která poskytuje plně izolované a vyhrazené prostředí pro bezpečné spouštění App Service aplikací ve velkém měřítku.
  • Azure DevOps je služba pro správu životního cyklu vývoje a obsahuje funkce pro plánování a řízení projektů, správu kódu, sestavování a vydávání verzí.
  • Application Insights je rozšiřitelná služba APM (Application Performance Management) pro webové vývojáře na různých platformách.
  • Azure Cosmos DB je globálně distribuovaná databázová služba Microsoftu pro více modelů.

Alternativy

Podrobnosti scénáře

V tomto scénáři organizace hostuje více rozhraní API pomocí služby APLIKACE AZURE Service Environment (ILB ASE) a chce tato rozhraní API interně konsolidovat pomocí Azure API Management (APIM) nasazeného v Virtual Network. Interní API Management instance by také mohla být zpřístupněna externím uživatelům, aby bylo možné využít plný potenciál rozhraní API. Tohoto externího vystavení je možné dosáhnout pomocí Azure Application Gateway předávání požadavků interní službě API Management, která následně 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.
  • 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.
  • Projděte si navrhované konfigurace sítě pro prostředí App Service.
  • Je potřeba explicitně zmínit port 3443, který API Management umožňuje správu prostřednictvím Azure Portal nebo PowerShellu.
  • Využijte zásady v rámci APIM k přidání hlavičky HOSTITELE pro rozhraní API hostované ve službě ASE. Tím se zajistí, že nástroj pro vyrovnávání zatížení služby ASE požadavek správně přepošlá.
  • API Management přijímá položku DNS služby ASE pro všechny aplikace hostované v prostředích App Service. Přidejte zásadu APIM, která explicitně nastaví hlavičku HOST, aby služba ASE mohla rozlišovat mezi aplikacemi v App Service Environment.
  • Zvažte integraci se službou Aplikace Azure Insights, která také nabízí metriky prostřednictvím služby Azure Monitor pro účely 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ř Virtual Network.

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

  • Po provedení změny zákazníka interně synchronizujte informace o adrese zákazníka.
  • Přilákejte vývojáře k vaší platformě zveřejněním jedinečných datových prostředků.

Požadavky

Tyto aspekty implementují pilíře azure Well-Architected Framework, což je sada hlavních zásad, které lze použít ke zlepšení kvality úloh. Další informace najdete v tématu Microsoft Azure Well-Architected Framework.

Spolehlivost

Spolehlivost zajišťuje, aby vaše aplikace splňovala závazky, které jste vůči zákazníkům udělali. 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, abyste měli vyšší dostupnost a také snížili 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 z prostředí App Service. ApiM můžete použít také pro rozhraní API hostovaná v interní místní infrastruktuře.

App Service Environment může využívat profily Traffic Manageru k distribuci provozu hostovaného v prostředích App Service pro zajištění vyššího škálování a dostupnosti.

Odolnost

I když tento ukázkový scénář popisuje více o konfiguraci, rozhraní API hostovaná v prostředích App Service by měla být dostatečně odolná, aby zvládla chyby v požadavcích, které jsou nakonec spravovány službou API Management a Application Gateway. V návrhu rozhraní API zvažte vzory Opakování a Jistič . 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áruku před úmyslnými útoky a zneužitím vašich 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, jsou API Management a služba ASE už nasazené v zabezpečené infrastruktuře (virtuální síť Azure). Služby Application Gateway můžete integrovat se službou Microsoft Defender for Cloud a poskytnout tak bezproblémový způsob, jak předcházet hrozbám prostředí, zjišťovat 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ů spočívá v hledání způsobů, jak snížit zbytečné výdaje a zlepšit provozní efektivitu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.

API Management se nabízí ve čtyřech úrovních: Developer, Basic, Standard a Premium. Podrobné pokyny k rozdílům v těchto úrovních najdete v pokynech k cenám Azure API Management tady.

Zákazníci můžou škálovat API Management přidáním nebo odebráním jednotek. Každá jednotka má kapacitu, která závisí na její úrovni.

Poznámka

K vyhodnocení funkcí API Management můžete použít úroveň Developer. Pro produkční prostředí byste neměli používat úroveň Developer.

Pokud chcete zobrazit předpokládané náklady a přizpůsobit se potřebám nasazení, můžete upravit počet jednotek škálování a App Service instancí v cenové kalkulačce Azure.

Podobně najdete pokyny k cenám App Service Environment.

V závislosti na požadované úrovni a prostředcích můžete nakonfigurovat Application Gateway ceny.

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ířů efektivity výkonu.

Škálovatelnost

V závislosti na řadě 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, můžete škálovat API Management instancí. Možnosti škálování na více instancí jsou k dispozici na úrovních Basic, Standard a Premium, ale jsou vázány horním limitem škálování na úrovních Basic a Standard. Instance se označují jako jednotky a ve vrstvě Basic je možné vertikálně navýšit kapacitu na maximálně dvě jednotky, na úrovni Standard na čtyři jednotky a na libovolný počet jednotek na ú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.

App Service Prostředí jsou navržená pro škálování s limity na základě cenové úrovně. V závislosti na požadavcích aplikace můžete nakonfigurovat aplikace hostované v prostředích App Service Pro horizontální navýšení kapacity (počet instancí) nebo vertikální navýšení kapacity (velikost instance).

Azure Application Gateway je automatické škálování dostupné 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 si také opatřit certifikát podepsaný svým držitelem pro scénáře vývojových testů.
  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í dohromady

Nasazení do Azure

Komponenty nasazené pomocí předchozí šablony Resource Manager 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
      • apimsubnetpro 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
      • VMSubnet pro testovací virtuální počítače a virtuální počítač s interním agentem hostovaným DevOps: 10.0.3.0/24
  2. Privátní DNS službu (Public Preview), protože přidání služby DNS vyžaduje, aby virtuální síť byla prázdná.

  3. App Service Environment s možností Interní Load Balancer (ILB): aseinternal (DNS: aseinternal.contoso.org). Po dokončení nasazení nahrajte certifikát se zástupným znakem pro interní nástroj pro vyrovnávání zatížení.

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

  5. Aplikace API (pro jednoduchost App Services) – srasprest (ADRESA URL: https://srasprest.contoso.org) – ASP.NET webové rozhraní API založené na 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ě ve virtuální síti: noderestapidb
    • Vytvoření záznamů DNS ve vytvořené zóně Privátní DNS
    • Azure Pipelines můžete použít ke konfiguraci agentů na Virtual Machines k nasazení kódu pro webovou aplikaci v interní síti.
    • Pokud chcete aplikaci API testovat interně, vytvořte testovací virtuální počítač v rámci podsítě virtuální sítě.
  6. Vytvoření služby API Management:apim-internal

  7. Nakonfigurujte službu tak, aby se připojila 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
      • Portál rozhraní API (api.contoso.org)
      • Portál pro vývojáře (portal.contoso.org)
      • V části ROZHRANÍ API nakonfigurujte aplikace ASE pomocí názvu DNS služby ASE a přidejte zásadu pro hlavičku HOSTITELE pro webovou aplikaci.
      • Pomocí výše vytvořeného testovacího virtuálního počítače otestujte interní API Management službu na Virtual Network

    Poznámka

    Testování rozhraní API API SLUŽBY APIM z Azure Portal nebude fungovat, protože api.contoso.org není možné veřejně přeložit.*

  8. Nakonfigurujte Application Gateway (WAF v1) pro přístup ke službě API: apim-gateway na portu 80. Přidejte certifikáty TLS do Application Gateway a odpovídajících sond 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 registrátora api.contoso.org a portal.contoso.org s veřejným názvem DNS Application Gateway: ase-appgtwy.westus.cloudapp.azure.com. Ověřte, že se k portálu pro vývoj dostanete z veřejného a že můžete otestovat rozhraní API služeb API služby APIM pomocí Azure Portal.

Poznámka

Pro služby APIM není vhodné používat stejnou adresu URL pro interní a externí koncové body (i když v této ukázce jsou obě adresy URL stejné). Pokud se rozhodnete používat různé adresy URL pro interní a externí koncové body, můžete využít Application Gateway WAF v2, který podporuje přesměrování http a mnoho dalšího.

Přispěvatelé

Tento článek spravuje Microsoft. Původně ji napsal následující přispěvatel.

Hlavní autor:

Další přispěvatelé:

Pokud chcete zobrazit neveřejné profily Služby LinkedIn, přihlaste se k LinkedInu.

Další kroky

Migrace webové aplikace pomocí Azure API Management