Erkunden von API-Gateways
Ihre Lösung kann mehrere Front-End- und Back-End-Dienste enthalten. Woher weiß ein Client in diesem Szenario, welche Endpunkte aufgerufen werden sollen? Was passiert, wenn neue Dienste eingeführt oder vorhandene Dienste umgestaltet werden? Wie behandeln Dienste SSL-Beendigung, Authentifizierung und andere Anliegen?
Das Gateway von API Management (auch Datenebene oder Runtime genannt) ist die Dienstkomponente, die als Proxy für API-Anforderungen fungiert sowie Richtlinien anwendet und Telemetriedaten sammelt.
Ein API-Gateway befindet sich zwischen Clients und Diensten. Es fungiert als Reverseproxy und leitet Anforderungen von Clients an Dienste weiter. Darüber hinaus kann es verschiedene übergreifende Aufgaben wie Authentifizierung, SSL-Beendigung und Ratenbegrenzung übernehmen. Wenn Sie kein Gateway bereitstellen, müssen Clients Anforderungen direkt an Back-End-Dienste senden. Der direkte Kontakt zwischen Diensten und Clients kann jedoch problematisch sein:
- Er kann zu komplexem Clientcode führen. Der Client muss den Überblick über mehrere Endpunkte behalten und über eine robuste Fehlerbehandlung verfügen.
- Er führt zu einer Kopplung zwischen Client und Back-End. Der Client benötigt Informationen zur Aufspaltung der einzelnen Dienste. Dies erschwert die Verwaltung des Clients sowie die Umgestaltung von Diensten.
- Für einen einzelnen Vorgang müssen möglicherweise mehrere Dienste aufgerufen werden.
- Jeder öffentliche Dienst muss Aspekte wie Authentifizierung, SSL und Clientratenbegrenzung behandeln.
- Dienste müssen ein clientfreundliches Protokoll wie HTTP oder WebSocket verfügbar machen. Dies schränkt die in Frage kommenden Kommunikationsprotokolle ein.
- Dienste mit öffentlichen Endpunkten stellen ein potenzielles Angriffsziel dar und müssen gehärtet werden.
Ein Gateway trägt zur Bewältigung dieser Herausforderungen bei, indem es Clients von Diensten entkoppelt.
Verwaltet und selbstgehostet
API Management bietet sowohl verwaltete als auch selbstgehostete Gateways:
Verwaltet: Das verwaltete Gateway ist die Standardgatewaykomponente, die in Azure für jede API Management-Instanz auf jeder Dienstebene bereitgestellt wird. Beim verwalteten Gateway wird der gesamte API-Datenverkehr über Azure geleitet – unabhängig davon, wo die Back-Ends, die die APIs implementieren, gehostet werden.
Selbstgehostet: Das selbstgehostete Gateway ist eine optionale, containerisierte Version des standardmäßigen verwalteten Gateways. Es ist hilfreich für Hybrid- und Multicloudszenarien, in denen die Gateways unabhängig von Azure in den gleichen Umgebungen ausgeführt werden müssen, in denen API-Back-Ends gehostet werden. Das selbstgehostete Gateway ermöglicht es Kunden mit hybrider IT-Infrastruktur, lokal und in Clouds gehostete APIs über einen einzelnen API Management-Dienst in Azure zu verwalten.