Akcelerátor cílových zón Azure API Management

API Management
Application Gateway
Developer Tool Integrations
Functions
.NET Core

Rozhraní API jsou stále důležitější v tom, jak společnosti a zákazníci přistupují ke službám interně i externě. Interně se rozhraní API používají pro přístup k podnikovým aplikacím, home-built řešením a integracím třetích stran. Externě více společností vypadá jako produktivní a zpeněžuje svá rozhraní API. S ohledem na tento trend se API Management stává centrální součástí standardního přístupu ke správě, řízení a publikování rozhraní API pro interní i externí cílové skupiny.

Díky Azure Application Gateway je teď možné chránit a omezit přístup k rozhraním API, která se obsluhují přes Azure API Management. Tento článek popisuje řešení, ve kterém můžete spravovat interní i externí rozhraní API prostřednictvím jedné instance API Management. Můžete udržovat zabezpečený stav před zveřejněním přímo přes internet, ale místo toho je přístupný prostřednictvím Application Gateway.

Poznámka

Tato architektura se používá jako základ akcelerátoru cílových zón Azure API Management v Cloud Adoption Framework.

Architektura

Diagram znázorňující architekturu akcelerátoru cílové zóny API Management

Tento diagram architektury začíná polem zahrnujícím vše, které představuje rozsah předplatného, zónu Privátní DNS, kde se přeloží privátní domény, a rozsah názvů virtuálních sítí APIM-CS. Nad předplatným je pole, které označuje, že se jedná o místní úlohu. V poli je ikona serveru. Kanál označuje připojení typu site-to-site nebo Azure ExpressRoute se připojí k instanci API Management v předplatném Azure. Sedm dalších menších polí je uvnitř velkého rámečku, ve které se zobrazuje předplatné Azure. Čtyři z polí jsou na horním řádku a tři jsou na dolním řádku. Každé jednotlivé pole představuje samostatnou podsíť s připojenou skupinou zabezpečení sítě. Zleva nejvíce existuje veřejná IP adresa, která je připojená k Azure Application Gateway na levém horním řádku. Application Gateway také žije v jednom ze sedmi menších polí s podsítí s názvem Podsíť App GW. Napravo je další pole, které obsahuje instanci API Management s podsítí s názvem APIM. Vedle něj je třetí pole v horním řádku, které obsahuje privátní koncový bod pro instanci Azure Functions v podsíti s názvem PE. Nejvíce vpravo na horním řádku je back-endová podsíť, která obsahuje aplikace funkcí Azure, plán Azure App Service pro funkci a účet úložiště, který je přidružený k aplikaci funkcí. Na dolním řádku odleva je pole, které obsahuje Azure Bastion v podsíti Bastion. Druhé pole obsahuje virtuální počítač jumbox pro správu v podsíti Jump Box. Poslední pole na dolním řádku je agent DevOps obsažený v podsíti DevOps. V pravém dolním rohu obrázku jsou tři sdílené prostředky s příslušnými ikonami. Zleva doprava jsou následující pole: trezor klíčů, Application Insights a pracovní prostor služby Log Analytics. Existují dvě sady pracovních postupů. První pracovní postup je označen černými kruhy a druhý pracovní postup je označen modrými kruhy, které budou vysvětleny v pozdějších částech. Černý pracovní postup označuje přístup k rozhraním API, která jsou k dispozici externě. Tok začíná od uživatele, který přistupuje k veřejné IP adrese. Šipka pak odkazuje na směr Application Gateway, z Application Gateway na privátní koncový bod a z privátního koncového bodu do aplikace funkcí. Modrý pracovní postup začíná z místního serveru se šipkou, která odkazuje na instanci API Management, prostřednictvím ikony kanálu, která označuje připojení typu site-to-site nebo přes ExpressRoute. Zbytek toku je stejný, jak je popsáno výše: od API Management do privátního koncového bodu a z privátního koncového bodu do funkce Azure Functions.

Tato architektura předpokládá, že zásady jsou na místě z akcelerátoru cílové zóny Azure a že struktura je řízena směrem dolů ze skupiny pro správu.

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

Pracovní postup

Hybridní scénář (modré kruhy)

Tento scénář vyžaduje připojení typu site-to-site nebo Azure ExpressRoute k místnímu prostředí.

  1. Místní aplikace vyžaduje přístup k internímu rozhraní API, které se obsluhuje přes Azure API Management.
  2. API Management se připojí k back-endovým rozhraním API hostovaným na Azure Functions. Toto připojení je prostřednictvím privátního koncového bodu, který je dostupný prostřednictvím plánu Azure Functions Premium a je hostovaný ve vlastní podsíti.
  3. Privátní koncový bod bezpečně přistupuje k internímu rozhraní API, které je hostované na Azure Functions.

Scénář externího přístupu (černé kruhy)

  1. Externí aplikace přistupuje k veřejné IP adrese nebo vlastnímu plně kvalifikovanému názvu domény, který je připojený k Azure Application Gateway.
  2. Application Gateway funguje jako brána firewall webových aplikací, která vyžaduje certifikáty PFX pro ukončení protokolu SSL.
  3. API Management se připojí k back-endovým rozhraním API, která jsou hostovaná na Azure Functions prostřednictvím privátního koncového bodu. Tento koncový bod je dostupný prostřednictvím plánu Azure Functions Premium a je hostovaný ve vlastní podsíti.
  4. Privátní koncový bod bezpečně přistupuje k externě dostupnému rozhraní API, které je hostované na Azure Functions.

Komponenty

Architektura používá následující komponenty:

  • Azure API Management je spravovaná služba, která umožňuje spravovat služby napříč hybridními a více cloudovými prostředími. Správa rozhraní API funguje jako fasáda pro abstrakci back-endové architektury a poskytuje kontrolu a zabezpečení pro pozorovatelnost a spotřebu rozhraní API pro interní i externí uživatele.

  • Azure Functions je bezserverové řešení, které umožňuje soustředit se více na bloky kódu, které je možné s minimální správou infrastruktury provést. Funkce je možné hostovat v různých plánech hostování, zatímco tato referenční architektura používá plán Premium kvůli použití privátních koncových bodů.

  • Azure Application Gateway je spravovaná služba, která funguje jako nástroj pro vyrovnávání zatížení vrstvy 7 a firewall webových aplikací. V tomto scénáři služba Application Gateway chrání interní instanci APIM, která umožňuje používat interní a externí režim.

  • Zóny Azure DNSPrivátní DNS umožňují spravovat a překládat názvy domén ve virtuální síti, aniž byste museli implementovat vlastní řešení DNS. Zónu Privátní DNS je možné zarovnat k jedné nebo více virtuálním sítím prostřednictvím propojení virtuální sítě. Vzhledem k tomu, že Azure Functions vystavené prostřednictvím privátního koncového bodu, který tato referenční architektura používá, musíte použít privátní zónu DNS.

  • Application Insights služby Azure Monitor pomáhá vývojářům zjišťovat anomálie, diagnostikovat problémy a porozumět vzorům použití. Application Insights nabízí rozšiřitelnou správu výkonu aplikací a monitorování živých webových aplikací. Podporují se různé platformy, včetně .NET, Node.js, Javy a Pythonu. Podporuje aplikace hostované v Azure, místně, v hybridním prostředí nebo v jiných veřejných cloudech. Application Insights je součástí této referenční architektury, která monitoruje chování nasazené aplikace.

  • Log Analytics služby Azure Monitor umožňuje upravovat a spouštět dotazy protokolu s daty v protokolech služby Azure Monitor, volitelně z Azure Portal. Vývojáři můžou spouštět jednoduché dotazy pro sadu záznamů nebo pomocí Log Analytics provádět pokročilou analýzu. Výsledky pak můžou vizualizovat. Log Analytics je nakonfigurován jako součást této referenční architektury, aby agregoval všechny protokoly monitorování pro další analýzu a vytváření sestav.

  • Azure Virtual Machines je výpočetní prostředek, který se dá použít k hostování mnoha různých úloh. V této referenční architektuře se virtuální počítače používají k poskytování serveru jumpboxu pro správu a také hostitele agenta DevOps nebo GitHubu Runneru.

  • Azure Key Vault je cloudová služba, která bezpečně ukládá a přistupuje k tajným kódům, od klíčů rozhraní API a hesel až po certifikáty a kryptografické klíče. Tato referenční architektura používá Azure Key Vault k ukládání certifikátů SSL používaných Application Gateway.

  • Azure Bastion je platforma jako služba, která je zřízená ve virtuální síti vývojáře. Poskytuje zabezpečené připojení RDP/SSH k virtuálním počítačům vývojáře přes protokol TLS z Azure Portal. U Služby Azure Bastion už virtuální počítače nevyžadují k připojení přes protokol RDP/SSH veřejnou IP adresu. Tato referenční architektura používá Azure Bastion pro přístup k agentu DevOps nebo serveru GitHub Runner nebo k serveru jump boxu pro správu.

Pokud používáte nástroj DevOps, například Azure DevOps nebo GitHub, pak agenti hostovaní v cloudu nebo běžci pracují přes veřejný internet. Vzhledem k tomu, že je správa rozhraní API v této architektuře nastavená na interní síť, budete muset použít agenta DevOps, který má přístup k virtuální síti. Agent DevOps vám pomůže nasadit zásady a další změny rozhraní API ve vaší architektuře. Tyto šablony CI/CD je možné použít k přerušení procesu a k tomu, aby vývojářské týmy mohly nasazovat změny podle rozhraní API. Spouští je vývojáři DevOps.

Alternativy

Pro back-endové služby, ke kterým se instance API Management připojuje, je k dispozici několik alternativ kromě Azure Functions, které se používají v této referenční implementaci:

  • Azure App Service je plně spravovaná služba založená na protokolu HTTP, která sestavuje, nasazuje a škáluje webové aplikace. Podporují se všechny platformy .NET, .NET Core, Java, Ruby, Node.js, PHP a Python. Aplikace můžou běžet a škálovat v prostředích se systémem Windows nebo Linux.
  • Azure Kubernetes Service nabízí plně spravované clustery Kubernetes pro integrované prostředí kontinuální integrace a průběžné doručování (CI/CD), zásady správného řízení a zabezpečení.
  • Azure Logic Apps je cloudová platforma, která vytváří a spouští automatizované pracovní postupy. Ukázkovou referenční architekturu najdete v základní podnikové integraci v Azure.
  • Azure Container Apps umožňuje spouštět mikroslužby a kontejnerizované aplikace na bezserverové platformě.

U nasazení ve více oblastech zvažte použití služby Azure Front Door k zajištění rychlého, spolehlivého a zabezpečeného přístupu mezi vašimi uživateli a statickým a dynamickým webovým obsahem vašich aplikací.

Další příklady, jak Application Gateway chránit rozhraní API, najdete v tématu Ochrana rozhraní API pomocí Application Gateway a API Management.

Požadavky

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

Spolehlivost

Spolehlivost zajišťuje, že vaše aplikace dokáž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.

  • Nasaďte alespoň dvě jednotky škálování API Management, které jsou rozložené do dvou zón dostupnosti v jednotlivých oblastech. Tato metoda maximalizuje vaši dostupnost a výkon.
  • Partnerský vztah virtuálních sítí poskytuje skvělý výkon v oblasti, ale má limit škálovatelnosti maximálně 500 sítí. Pokud potřebujete připojení k více úlohám, použijte návrh hvězdicového paprsku nebo azure vWAN.

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

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

  • Vzhledem k potřebě zóny dostupnosti a podpory virtuální sítě jsme vybrali úroveň Premium API Management podle cen pro každou oblast. V této úloze se navíc Azure Functions hostuje v plánu Premium kvůli potřebě přístupu k virtuální síti.
  • Pro testování konceptu nebo prototypů doporučujeme použít jiné úrovně API Management (například Vývojář nebo Standard).

Efektivita provozu

Efektivita provozu se zabývá provozními procesy, které nasazují aplikaci a udržují ji v produkčním prostředí. Další informace najdete v tématu Přehled pilíře efektivity provozu.

  • API Management konfigurace by měly být reprezentovány jako šablony ARM a měli byste přijmout infrastrukturu jako kód.
  • Ke správě, verzi a aktualizaci konfigurace API Management použijte proces CI/CD.
  • Vytvořte vlastní sondy stavu, které vám pomůžou ověřit stav instance služby API Management. Pomocí adresy URL /status-0123456789abcdef vytvořte společný koncový bod stavu pro službu APIM ve službě App Gateway.
  • Certifikáty aktualizované v trezoru klíčů se automaticky otočí v API Management, které se aktualizují do 4 hodin.
  • Nasaďte alespoň dvě jednotky škálování API Management, které jsou rozložené do dvou zón dostupnosti v jednotlivých oblastech. Tato metoda maximalizuje dostupnost a výkon.

Nasazení tohoto scénáře

Tato architektura je dostupná na GitHubu. Obsahuje všechny potřebné soubory infrastruktury jako kódu a pokyny k nasazení.

Další kroky

Podívejte se na tyto klíčové zdroje informací:

Další informace o těchto klíčových službách: