V architektuře mikroslužeb může klient pracovat s více než jednou front-endovou službou. Vzhledem k tomu, jak klient ví, jaké koncové body se mají volat? Co se stane, když se zavádějí nové služby nebo se refaktorují stávající služby? Jak služby zpracovávají ukončení protokolu SSL, vzájemné tls, ověřování a další obavy? S řešením těchto problémů vám může pomoct brána rozhraní API.
diagram
stáhnout soubor Visia této architektury.
Co je brána rozhraní API?
Brána rozhraní API poskytuje centralizovaný vstupní bod pro správu interakcí mezi klienty a aplikačními službami. Funguje jako reverzní proxy server a směruje požadavky klientů na příslušné služby. Může také provádět různé křížové úlohy, jako je ověřování, ukončení protokolu SSL, vzájemné šifrování TLS a omezování rychlosti.
Proč používat bránu rozhraní API?
Brána rozhraní API zjednodušuje komunikaci, vylepšuje interakce klientů a centralizuje správu běžných zodpovědností na úrovni služeb. Funguje jako zprostředkovatel a brání přímému vystavení aplikačních služeb klientům. Bez brány rozhraní API musí klienti komunikovat přímo s jednotlivými aplikačními službami, což může představovat následující výzvy:
komplexní kód klienta: Výsledkem může být složitý klientský kód. Klienti musí sledovat více koncových bodů a zpracovávat chyby odolné.
těsné párování: Vytvoří spojení mezi klientem a back-endem. Klienti potřebují porozumět rozkladu jednotlivých služeb, komplikovat údržbu služeb a refaktoring.
vyšší latence: Jedna operace může vyžadovat volání více služeb. Výsledkem může být více síťových odezv mezi klientem a serverem a tím se zvýší významná latence.
redundantní zpracování problémů: Každá veřejná služba musí zpracovávat obavy, jako je ověřování, SSL a omezování rychlosti klienta.
omezení protokolu: Služby musí vystavit protokol, který je přívětivý pro klienta, jako je HTTP nebo WebSocket. Tato expozice omezuje komunikační protokoly možnosti.
rozšířené prostor pro útoky: Veřejné koncové body zvyšují potenciální prostor pro útoky a vyžadují posílení zabezpečení.
Jak používat bránu rozhraní API
Bránu rozhraní API můžete přizpůsobit požadavkům vaší aplikace pomocí konkrétních vzorů návrhu. Tyto vzory návrhu řeší klíčové funkce, jako je směrování, agregace požadavků a průřezové aspekty:
směrování brány . Bránu rozhraní API můžete použít jako reverzní proxy server ke směrování požadavků klientů do různých aplikačních služeb. Brána rozhraní API používá směrování vrstvy 7 a poskytuje jeden koncový bod, který mají klienti používat. Směrování brány rozhraní API použijte, když chcete oddělit klienty od aplikačních služeb.
agregace brány . Bránu rozhraní API můžete použít k agregaci více požadavků klientů do jednoho požadavku. Tento vzor použijte, když jedna operace vyžaduje volání více aplikačních služeb. V agregaci rozhraní API klient odešle jeden požadavek do brány rozhraní API. Brána rozhraní API pak směruje požadavky na různé služby potřebné pro operace. Brána rozhraní API nakonec agreguje výsledky a odešle je zpět klientovi. Agregace pomáhá snížit chattnost mezi klientem a aplikačními službami.
přesměrování načítání brány. Bránu rozhraní API můžete použít k poskytování průřezových funkcí, takže je nemusí poskytovat jednotlivé služby. Může být užitečné konsolidovat průřezové funkce na jednom místě, a ne vytvářet odpovědnost za každou službu. Tady jsou příklady funkcí, které byste mohli přesměrovat na bránu rozhraní API:
- Ukončení protokolu SSL
- Vzájemné tls
- Autentizace
- Seznam povolených IP adres nebo seznam blokovaných adres
- Omezování rychlosti klienta (omezování)
- Protokolování a monitorování
- Ukládání odpovědí do mezipaměti
- Firewall webových aplikací
- Komprese GZIP
- Údržba statického obsahu
Možnosti brány rozhraní API
Tady jsou některé možnosti implementace brány rozhraní API ve vaší aplikaci.
reverzní proxy server. Nginx a HAProxy jsou opensourcové nabídky reverzního proxy serveru. Podporují funkce, jako je vyrovnávání zatížení, ukončení protokolu SSL a směrování vrstvy 7. Mají bezplatné verze a placené edice, které poskytují další funkce a možnosti podpory. Tyto produkty jsou vyspělé s bohatými sadami funkcí, vysokým výkonem a rozšiřitelností.
kontroleru příchozího přenosu dat sítě služby. Pokud používáte síť služeb, vyhodnoťte funkce kontroleru příchozího přenosu dat specifické pro tuto síť služby. Vyhledejte doplňky podporované službou AKS, jako je Istio a Open Service Mesh. Hledejte opensourcové projekty třetích stran, jako je Linkerd nebo Consul Connect. Například kontroler příchozího přenosu dat Istio podporuje směrování vrstvy 7, přesměrování HTTP, opakování a další funkce.
azure Application Gateway. Application Gateway je spravovaná služba vyrovnávání zatížení. Poskytuje směrování vrstvy 7, ukončení protokolu SSL a firewall webových aplikací (WAF).
azure Front Door. Azure Front Door je síť pro doručování obsahu (CDN). Využívá globální a místní body přítomnosti (PoPs) k zajištění rychlého, spolehlivého a zabezpečeného přístupu ke statickému a dynamickému webovému obsahu vašich aplikací globálně.
azure API Management. API Management je spravované řešení pro publikování rozhraní API pro externí a interní zákazníky. Poskytuje funkce pro správu veřejně přístupných rozhraní API, včetně omezování rychlosti, omezení IP adres a ověřování pomocí Microsoft Entra ID nebo jiných zprostředkovatelů identity. Api Management neprovádí žádné vyrovnávání zatížení, takže byste ho měli použít s nástrojem pro vyrovnávání zatížení, jako je Azure Application Gateway nebo reverzní proxy server. Informace najdete v tématu API Management se službou Azure Application Gateway.
Volba technologie brány rozhraní API
Při výběru brány rozhraní API zvažte následující faktory:
Podpora všech požadavků. Zvolte bránu rozhraní API, která podporuje požadované funkce. Všechny předchozí možnosti brány rozhraní API podporují směrování vrstvy 7. Jejich podpora pro jiné funkce, jako je ověřování, omezování rychlosti a ukončení protokolu SSL, se ale může lišit. Vyhodnoťte, jestli jedna brána splňuje vaše potřeby, nebo jestli je potřeba více bran.
Preferujete předdefinované nabídky. Při splnění požadavků na zabezpečení a řízení použijte integrovanou bránu rozhraní API a řešení příchozího přenosu dat poskytovaná vaší platformou, jako jsou Azure Container Apps a AKS. Vlastní bránu používejte jenom v případě, že předdefinované možnosti nemají potřebnou flexibilitu. Vlastní řešení k efektivní správě životního cyklu vyžadují model zásad správného řízení, jako je GitOps.
Zvolte správný model nasazení. Používejte spravované služby, jako je Azure Application Gateway a Azure API Management, a snižte provozní režii. Pokud používáte reverzní proxy servery pro obecné účely nebo nástroje pro vyrovnávání zatížení, nasaďte je způsobem, který odpovídá vaší architektuře. Brány rozhraní API pro obecné účely můžete nasadit na vyhrazené virtuální počítače nebo do clusteru AKS v jejich nabídkách kontroleru příchozího přenosu dat. Pokud chcete izolovat bránu rozhraní API od úlohy, můžete je nasadit mimo cluster, ale toto nasazení zvyšuje složitost správy.
Správa změn Když aktualizujete služby nebo přidáváte nové služby, budete možná muset aktualizovat pravidla směrování brány. Implementujte procesy nebo pracovní postupy pro správu pravidel směrování při přidávání nebo úpravách služeb, certifikátů SSL, seznamů povolených IP adres a konfigurací zabezpečení. Pomocí nástrojů infrastruktury jako kódu a automatizace můžete zjednodušit správu bran rozhraní API.
Další kroky
Předchozí články prozkoumaly rozhraní mezi mikroslužbami a mezi mikroslužbami a klientskými aplikacemi. Tato rozhraní považují každou službu za samostatnou neprůhlenou jednotku. Zásadním principem architektury mikroslužeb je, že služby by nikdy neměly zveřejňovat interní podrobnosti o tom, jak spravují data. Tento přístup má významný vliv na zachování integrity a konzistence dat, což je předmětem dalšího článku.
důležité informace o dat pro mikroslužeb
Související prostředky
- rozhraní API pro návrh pro mikroslužby
- Návrh architektury mikroslužeb
- použití analýzy domény k modelování mikroslužeb
- posouzení a připravenosti mikroslužeb