API-Gateway
Ein API-Gateway ist ein einziger Einstiegspunkt für alle Client-Anfragen in einer Microservice-Architektur. Es nimmt Anfragen entgegen, leitet sie an die benötigten Dienste weiter, führt Authentifizierung, Begrenzung der Anfragelast, Aggregation von Antworten und andere Querschnittsfunktionen aus und entlastet so die Microservices selbst.
Inhalt
Was ist ein API-Gateway in einfachen Worten
Ein API-Gateway ist ein Reverse-Proxy-Server, der als einziger Einstiegspunkt für alle Client-Anfragen in einer Architektur mit vielen Microservices fungiert. In einfachen Worten ist es der „Torwächter“ und „Dispatcher“ Ihres Dienstes: Es nimmt alle Anfragen von Benutzern entgegen, bestimmt, an welchen Microservice sie zu senden sind, und liefert die Antwort zurück.
Stellen Sie sich ein großes Büro mit vielen Abteilungen vor. Statt dass der Kunde alle Abteilungen abklappert, gibt es eine Empfangstheke (das API-Gateway). Der Kunde sagt, was er braucht (eine Anfrage), die Empfangstheke leitet sie an die benötigte Abteilung (Microservice) weiter, erhält die Antwort und gibt sie dem Kunden. Der Kunde weiß nicht einmal, in welcher Abteilung der benötigte Spezialist sitzt – er kommuniziert einfach mit der Empfangstheke.
Lesen Sie darüber, wie eine Microservice-Architektur funktioniert, im Artikel Client-Server-Architektur.
Hauptfunktionen eines API-Gateways
- Routing: Weiterleitung einer Anfrage vom Kunden an einen bestimmten Microservice auf der Grundlage von URL, Headern oder anderen Parametern.
- Authentifizierung und Autorisierung: Überprüfung der Identität und der Zugriffsrechte des Benutzers, bevor die Anfrage den Microservice erreicht.
- Begrenzung der Anfragelast (Rate Limiting): Schutz der Dienste vor Überlastung und DoS-Angriffen – Begrenzung der Anzahl der Anfragen von einem Kunden.
- Datentransformation: Umwandlung von Anfrage- und Antwortformaten (zum Beispiel XML in JSON), Hinzufügen oder Entfernen von HTTP-Headern.
- Aggregation von Antworten: Zusammenführen von Daten aus mehreren Microservices in eine Antwort für den Kunden, damit dieser nicht mehrere Anfragen stellen muss.
- Überwachung und Protokollierung: Erhebung von Statistiken über Anfragen, Antwortzeiten und Fehler zur Analyse und Fehlersuche.
- Lastverteilung (Load Balancing): Verteilung der Anfragen auf mehrere Instanzen eines Microservices.
Beliebte API-Gateway-Lösungen
- Cloud-Lösungen (Managed): Yandex API Gateway, AWS API Gateway, Azure API Management, Google Cloud Endpoints. Fertige Dienste, die keine Verwaltung der Infrastruktur erfordern.
- Open Source: Kong, Traefik, Envoy, Tyk, NGINX. Können auf eigenen Servern bereitgestellt werden.
- On-premise-Lösungen: Apigee (Google), IBM API Connect. Vollständige API-Verwaltungsplattformen.
Wie ein API-Gateway in der Praxis funktioniert
- Der Kunde sendet eine Anfrage an die Adresse des API-Gateways (zum Beispiel api.company.com).
- Das API-Gateway prüft die Authentifizierung – hat der Kunde ein gültiges Token? Wenn nicht, gibt es einen 401-Fehler zurück.
- Das API-Gateway prüft die Zugriffsrechte – darf dieser Benutzer die angeforderte Aktion ausführen? Wenn nicht, ein 403-Fehler.
- Das API-Gateway prüft die Limits – hat der Kunde das Anfragelimit pro Minute überschritten? Wenn ja, ein 429-Fehler.
- Routing: Anhand des URL-Pfads und der HTTP-Methode bestimmt das Gateway den benötigten Microservice (zum Beispiel /users an den Benutzerdienst, /orders an den Bestelldienst).
- Transformation: Falls erforderlich, wandelt das Gateway die Anfrage in ein Format um, das der Microservice versteht.
- Weiterleitung der Anfrage an den Microservice.
- Erhalten der Antwort vom Microservice.
- Aggregation: Falls erforderlich, fasst das Gateway Antworten aus mehreren Microservices zusammen.
- Transformation der Antwort: Umwandlung der Antwort in das vom Kunden erwartete Format.
- Rückgabe der Antwort an den Kunden.
Lesen Sie über die API-Sicherheit im Artikel WAF (Web Application Firewall).
Vorteile der Verwendung eines API-Gateways
- Einziger Einstiegspunkt: Kunden kennen die Existenz vieler Microservices nicht – sie arbeiten mit einer einzigen API.
- Vereinfachte Sicherheit: Alle Authentifizierungs- und Autorisierungsprüfungen werden zentral durchgeführt.
- Geringere Belastung der Microservices: Microservices befassen sich nicht mit Authentifizierung, Limits und Protokollierung – sie führen nur ihre Geschäftslogik aus.
- Flexibilität: Sie können die Backend-Architektur ändern (Microservices hinzufügen, entfernen, ändern), ohne dass sich dies auf die Kunden auswirkt.
- Skalierbarkeit: Die Möglichkeit, die Last auf mehrere Microservice-Instanzen zu verteilen.
Nachteile eines API-Gateways
- Single Point of Failure: Wenn das API-Gateway ausfällt, wird das gesamte System unverfügbar.
- Latenz: Jede Anfrage durchläuft eine zusätzliche „Schicht“, was die Antwortzeit erhöht.
- Konfigurationskomplexität: Erfordert eine sorgfältige Konfiguration von Routen, Transformationsregeln und Sicherheitsrichtlinien.
Lesen Sie über Hochverfügbarkeit im Artikel Server-Cluster.
Häufig gestellte Fragen
Was ist ein API-Gateway in einfachen Worten?
Ein API-Gateway ist ein einziger Einstiegspunkt für alle Anfragen an Microservices. Es nimmt eine Anfrage entgegen, prüft die Rechte des Benutzers, begrenzt die Häufigkeit der Anfragen und leitet sie an den benötigten Microservice weiter. Wie eine Empfangstheke in einem großen Büro. Lesen Sie über Microservices im Artikel Client-Server-Architektur.
Wofür wird ein API-Gateway benötigt?
Ein API-Gateway übernimmt zentral Authentifizierung, Autorisierung, Anfragebegrenzung, Routing, Datentransformation und Aggregation von Antworten. Dadurch werden Microservices entlastet und die API-Verwaltung vereinfacht. Lesen Sie über Sicherheit im Artikel WAF.
Welche API-Gateways gibt es?
Cloud: Yandex API Gateway, AWS API Gateway, Azure API Management. Open Source: Kong, Traefik, Tyk, Envoy, NGINX. On-premise: Apigee, IBM API Connect. Die Wahl hängt von der Infrastruktur und dem Budget ab. Lesen Sie über Lösungen im Artikel Proxy-Server.
Wie unterscheidet sich ein API-Gateway von einem Proxy?
Ein gewöhnlicher Proxy leitet Anfragen einfach „wie sie sind“ weiter. Ein API-Gateway ist ein „intelligenter“ Proxy: Es prüft die Authentifizierung, begrenzt Anfragen, transformiert Daten, aggregiert Antworten aus mehreren Diensten und sammelt Analysen. Lesen Sie über Proxys im Artikel Proxy-Server.
Ist ein API-Gateway ein Load Balancer?
Nicht ganz. Ein Load Balancer verteilt die Last zwischen Instanzen eines Dienstes. Ein API-Gateway kann mehr: Es routet zwischen verschiedenen Diensten, prüft Rechte und transformiert Daten. Es kann Lastverteilung enthalten, aber das ist nur eine seiner Funktionen. Lesen Sie über Lastverteilung im Artikel Server-Cluster.
Weitere Begriffe in «Infrastruktur»
War diese Information hilfreich?
Zuverlässige IT-Infrastruktur aufbauen
Bauen Sie eine moderne, fehlertolerante IT-Infrastruktur auf. Planung, Gerätelieferung, Installation und Wartung schlüsselfertig.