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

Azure API Management
Azure Application Gateway
Azure Functions
.NET

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 obchodním aplikacím, domácím řešením a integracím třetích stran. Mimo to se více společností snaží být produktivní a monetizovat 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.

Pomocí Azure Application Gateway je teď možné chránit a omezit přístup rozhraní API obsluhovaných prostřednictvím 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 bezpečný stav před zveřejněním přímo přes internet, ale místo toho se k němu přistupuje prostřednictvím Application Gateway.

Poznámka

Tato architektura slouží 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á komplexním rámečkem, který představuje rozsah předplatného, Privátní DNS zónu, kde se přeloží privátní domény, a oborem virtuální sítě s názvy APIM-CS VNet. Nad předplatným je pole, které označuje, že se jedná o místní úlohu. Pole obsahuje ikonu serveru. Kanál označuje připojení typu site-to-site nebo Azure ExpressRoute se připojuje k instanci API Management v předplatném Azure. Dalších sedm menších polí je uvnitř velkého rámečku s předplatným Azure. Čtyři pole jsou v horním řádku a tři v dolní řadě. Každý jednotlivý rámeček představuje samostatnou podsíť s připojenou skupinou zabezpečení sítě. Nejvíce zleva je veřejná IP adresa, která je připojená k Azure Application Gateway v poli úplně vlevo v horním řádku. Application Gateway se také nachází v jednom ze sedmi menších polí s podsítí s názvem Podsíť App GW. Vpravo je další pole, které obsahuje instanci API Management s podsítí s názvem PODsíť APIM. Vedle je třetí pole v horním řádku, které obsahuje privátní koncový bod pro instanci Azure Functions v podsíti s názvem PODsíť PE. Pravé pole v horním řádku je back-endová podsíť, která obsahuje aplikace Funkcí Azure, plán Azure App Service funkce a účet úložiště přidružený k aplikaci funkcí. V dolním řádku zleva 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 v 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 kroužky a druhý pracovní postup je označen modrými kroužky, které budou vysvětleny v dalších částech. Černý pracovní postup označuje přístup k rozhraním API, která jsou k dispozici externě. Tok se spustí od uživatele, který přistupuje k veřejné IP adrese. Šipka pak ukazuje na směr Application Gateway, z Application Gateway do privátního koncového bodu a z privátního koncového bodu do aplikace funkcí. Modrý pracovní postup začíná od místního serveru se šipkou, která ukazuje 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: z 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 zavedeny z akcelerátoru cílové zóny Azure a že struktura je hnaná směrem dolů od 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 prostřednictvím Azure API Management.
  2. API Management se připojuje 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 k dispozici 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 hostovanému 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 firewall webových aplikací, který vyžaduje certifikáty PFX pro ukončení protokolu SSL.
  3. API Management se připojuje k back-endovým rozhraním API hostovaným 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 hostuje se ve své vlastní podsíti.
  4. Privátní koncový bod bezpečně přistupuje k externě dostupnému rozhraní API hostovanému 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 multicloudovými prostředími. Api Management funguje jako fasáda pro abstrakci back-endové architektury a poskytuje kontrolu a zabezpečení pro pozorovatelnost a využití rozhraní API pro interní i externí uživatele.

  • Azure Functions je bezserverové řešení, které umožňuje zaměřit se více na bloky kódu, které je možné provádět s minimální správou infrastruktury. Funkce je možné hostovat v různých plánech hostování, zatímco tato referenční architektura používá plán Premium, a to z důvodu 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 aplikační brána 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é propojit s jednou nebo více virtuálními sítěmi prostřednictvím propojení virtuálních sítí. Vzhledem k tomu, že Azure Functions vystavené přes privátní koncový bod, který tato referenční architektura používá, musíte použít privátní zónu DNS.

  • Azure MonitorApplication Insights pomáhá vývojářům zjišťovat anomálie, diagnostikovat problémy a porozumět vzorům používání. Funkce Application Insights pro rozšiřitelnost správy výkonu a monitorování výkonu ž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 pro monitorování chování nasazené aplikace.

  • Azure MonitorLog Analytics umožňuje upravovat a spouštět dotazy na protokoly s daty v protokolech služby Azure Monitor, volitelně z Azure Portal. Vývojáři můžou spouštět jednoduché dotazy na sadu záznamů nebo používat Log Analytics k provádění pokročilých analýz. Pak můžou vizualizovat výsledky. Služba Log Analytics se konfiguruje jako součást této referenční architektury tak, aby agregovala všechny protokoly monitorování pro další analýzy a vytváření sestav.

  • Azure Virtual Machines je výpočetní prostředek, který je možné 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 pro agenta DevOps nebo GitHub Runner.

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

  • Azure Bastion je platforma jako služba, která se zřizuje 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. Se službou Azure Bastion už virtuální počítače pro připojení přes RDP/SSH nevyžadují veřejnou IP adresu. Tato referenční architektura používá Azure Bastion pro přístup k agentu DevOps, serveru spouštěče GitHubu nebo k serveru jump boxu pro správu.

Pokud používáte nástroj DevOps, jako je Azure DevOps nebo GitHub, agenti nebo spouštěče hostované v cloudu fungují přes veřejný internet. Vzhledem k tomu, že služba API Management v této architektuře je 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 umožnění vývojových týmů nasazovat změny podle rozhraní API. Spouští je běžci 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žívá 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 .NET, .NET Core, Java, Ruby, Node.js, PHP a Python. Aplikace se můžou spouštět a škálovat v prostředích založených na Windows nebo Linuxu.
  • Azure Kubernetes Service nabízí plně spravované clustery Kubernetes pro integrovanou kontinuální integraci 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. Příklad referenční architektury najdete v tématu Základní podniková integrace v Azure.
  • Azure Container Apps umožňuje spouštět mikroslužby a kontejnerizované aplikace na bezserverové platformě.

V případě 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 azure Well-Architected Framework, což je sada hlavních zásad, 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 splnit závazky, které učiníte vůči zákazníkům. Další informace najdete v tématu Přehled pilíře spolehlivosti.

  • Nasaďte alespoň dvě jednotky škálování API Management, které jsou rozdělené do dvou zón dostupnosti v každé oblasti. Tato metoda maximalizuje dostupnost a výkon.
  • Partnerský vztah virtuálních sítí poskytuje skvělý výkon v oblasti, ale má omezení škálovatelnosti– maximálně 500 sítí. Pokud potřebujete připojit více úloh, použijte návrh hvězdicové architektury nebo virtuální síť WAN Azure.

Zabezpečení

Zabezpečení poskytuje záruku proti záměrným útokům a zneužití vašich cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení.

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

  • Vzhledem k potřebě podpory zóny dostupnosti a virtuální sítě jsme podle cen pro jednotlivé oblasti vybrali úroveň Premium API Management. Kromě toho se v této úloze Azure Functions hostuje v plánu Premium, a to 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 Developer nebo Standard).

Efektivita provozu

Efektivita provozu zahrnuje provozní procesy, které nasazují aplikaci a udržují ji v provozu 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 reprezentované jako šablony ARM a měli byste si osvojit infrastrukturu jako kód.
  • Ke správě, verzi a aktualizaci konfigurací API Management použijte proces CI/CD.
  • Vytvořte vlastní sondy stavu, které vám pomůžou ověřit stav vaší instance služby API Management. Pomocí adresy URL /status-0123456789abcdef vytvořte společný koncový bod stavu pro službu APIM v bráně aplikace.
  • Certifikáty aktualizované v trezoru klíčů se automaticky obměňují v API Management, které se aktualizují během 4 hodin.
  • Nasaďte alespoň dvě jednotky škálování API Management, které jsou rozdělené do dvou zón dostupnosti v každé oblasti. Tato metoda maximalizuje dostupnost a výkon.

Nasazení tohoto scénáře

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

Přispěvatelé

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

Hlavní autoři:

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

Další kroky

Projděte si tyto klíčové zdroje informací:

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