Was ist ein API Gateway?
Microservices-Architekturen liegen weiterhin stark im Trend und bieten sowohl für Entwickler als auch für Konsumenten viele Vorteile.
API Gateway - Definition
API Gateways sind ein wesentliches Ergebnis des Microservices-Trends. Sie vereinfachen und stabilisieren die Interfaces auf Seite der Clients. Darüber hinaus realisiert ein API Gateway weitere Vorteile. Dazu gehören beispielsweise:
Monitoring
Logging
Security
Traffic-Analyse
Ein API Gateway ähnelt in seiner Grundstruktur dem Strukturmuster der Fassade, nur eben auf Netzwerkebene. Die Zielsetzung ist hingegen dieselbe - das Interface soll vereinfacht, die Komplexität des Systems verborgen werden:
API Gateway - Funktion
Das API Gateway sorgt für die Entkoppelung von Clients und Services. Dabei bildet es den alleinigen Kontaktpunkt für eingehenden und ausgehenden Traffic.
Ein Microservices-Backend kann viele miteinander interagierende Services beinhalten, wobei diese eine heterogene Struktur hinsichtlich URLs und Protokollen aufweisen können. Ein API Gateway kann ein vereinheitlichtes Interface bereitstellen, mit dem die Clients interagieren - ist im Grunde also ein "Vereinfachungs-Proxy".
Ein API Gateway kann allerdings auch raffinierter ausgestaltet sein und zu einem Request die nötigen Ressourcen zusammenziehen, um sie in Form einer einzelnen Antwort auszugeben. Ein Request für ein Nutzerprofil kann beispielsweise User-Details, kürzlich versendete Nachrichten und Interessen umfassen. Das API Gateway ist in der Lage, die gewünschten Daten entsprechend anzufragen und dann eine Antwort mit allen Informationen auszugeben. Um diese Fähigkeit zu realisieren, ist allerdings eine Orchestrierung auf Architektur-Level notwendig, außerdem hat das Auswirkungen auf andere Microservices-Komponenten wie Leistungsschalter und Service Mesh.
Weil ein API Gateway in der Lage ist, Protokolle und URLs im Backend zu transformieren, eignet es sich auch gut zur Migration von Services. Darüber hinaus kann ein API Gateway die Stabilität der Schnittstellen optimieren, mit denen die Clients interagieren, während die Services selbst weiterentwickelt werden können. Generell gilt: Je komplexer die Services und je höher die Frequenz der Änderungen, desto wertvoller ist ein API Gateway. Ein weiterer Vorteil: Ein Gateway kann dazu genutzt werden, die Topologie innerhalb einer Microservices-Architektur einfacher zu managen.
API Gateway - Monitoring und Security
Durch seine Rolle innerhalb der IT-Architektur ist ein API Gateway sehr gut geeignet, um Monitoring, Alerting und Tracing zu realisieren. Auch die Einholung von Statistiken für eine breitgefächerte Analyse von Traffic und Nutzung bietet sich dabei an:
Um einen Logging-Service mit einem API Gateway zu verknüpfen, gibt es zahlreiche Möglichkeiten - zum Beispiel die Nutzung von Amazon Elasticsearch.
Sollte die Schnittstellennutzung auf einem Pay-per-Use-Modell beruhen, kann ein API Gateway außerdem dazu verwendet werden, um Rate Limits und Track Charges zu setzen. Nutzer und deren API-Nutzung zu tracken, gestaltet sich bei einem einzelnen Kontaktpunkt wesentlich einfacher.
Allerdings kann dieser Umstand auch die Notwendigkeit aufwerfen, die IT-Systeme zu härten. Das funktioniert dann ganz ähnlich wie ein Jump Host bei der Systemadministration: Die Services stellen sicher, dass ihre Kommunikation mit dem API Gateway abgesichert ist. Das stellt im Vergleich zu mehreren Public-facing APIs einen deutlich simpleren Ansatz dar.
API Gateway - Lösungen
API-Gateway-Lösungen lassen sich in zwei Kategorien einordnen:
Managed
Do-It-Yourself
Managed API Gateways gehören zum Angebot aller großen Cloud-Anbieter - etwa Microsoft, AWS und Google. Wollen Sie ein eigenes API Gateway aufsetzen, ist es ratsam, mit einem Framework zu beginnen - beispielsweise Spring Cloud oder Nginx. (fm)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.