Ein API-Gateway nimmt API-Anfragen von einem Client entgegen, verarbeitet sie anhand definierter Richtlinien, leitet sie an die entsprechenden Dienste weiter und führt die Antworten zusammen, um die Nutzung zu vereinfachen. In der Regel verarbeitet es eine Anfrage, indem es mehrere Microservices aufruft und die Ergebnisse aggregiert. In Legacy-Umgebungen kann es außerdem zwischen verschiedenen Protokollen übersetzen.

Was ist ein API-Gateway?

Ein API-Gateway nimmt API-Anfragen von einem Client entgegen, verarbeitet sie anhand definierter Richtlinien, leitet sie an die entsprechenden Dienste weiter und führt die Antworten zusammen, um die Benutzererfahrung zu vereinfachen. In der Regel verarbeitet es eine Anfrage, indem es mehrere Microservices aufruft und die Ergebnisse aggregiert. In Legacy-Umgebungen kann es außerdem zwischen verschiedenen Protokollen übersetzen.

Funktionen des API-Gateways

API-Gateways bieten üblicherweise unter anderem folgende Funktionen:

  • Sicherheitsrichtlinie – Authentifizierung, Autorisierung, Zugriffskontrolle und Verschlüsselung
  • Routing-Richtlinie – Routing, Ratenbegrenzung, Manipulation von Anfragen und Antworten, Circuit Breaker, Blue-Green- und Canary-Deployments, A/B-Tests, Lastverteilung, Zustandsprüfungen und benutzerdefinierte Fehlerbehandlung
  • Observability-Richtlinie – Echtzeit- und historische Metriken, Protokollierung und Tracing

Für zusätzliche Sicherheit auf App- und API-Ebene können API-Gateways um eine Web Application Firewall (WAF) und einen Schutz vor Denial-of-Service-Angriffen (DoS) erweitert werden.

Vorteile eines API-Gateways

Der Einsatz eines API-Gateways für die Anwendungsbereitstellung bietet folgende Vorteile:

  • Komplexität reduzieren und App-Releases beschleunigen, indem die interne Anwendungsarchitektur gekapselt wird und auf jeden Clienttyp zugeschnittene APIs bereitgestellt werden
  • Optimieren und vereinfachen Sie die Verarbeitung von Anfragen und die Durchsetzung von Richtlinien, indem Sie die Steuerung zentralisieren und nicht funktionale Anforderungen auf die Infrastrukturebene auslagern.
  • Vereinfachen Sie die Fehlerbehebung mit detaillierten Echtzeit- und historischen Metriken sowie Dashboards.

API-Gateway- und Microservices-Architektur

Bei Anwendungen auf Microservices-Basis fungiert ein API-Gateway als zentraler Zugangspunkt zum System. Es ist den Microservices vorgeschaltet und vereinfacht sowohl die Client-Implementierungen als auch die Microservices-Anwendung, indem es die Komplexität der Anwendung von ihren Clients entkoppelt.

In einer Microservices-Architektur ist das API-Gateway für die Weiterleitung und Zusammenführung von Anfragen sowie die Durchsetzung von Richtlinien zuständig. Einige Anfragen leitet es einfach an den entsprechenden Backend-Dienst weiter, während es für andere mehrere Backend-Dienste aufruft und deren Ergebnisse zusammenführt.

Ein API-Gateway kann weitere Funktionen für Microservices bereitstellen, etwa Authentifizierung, Autorisierung, Überwachung, Lastverteilung und Antwortverarbeitung. Dadurch wird die Umsetzung nichtfunktionaler Anforderungen auf die Infrastrukturebene verlagert, sodass sich Entwickler auf die zentrale Geschäftslogik konzentrieren und Anwendungen schneller veröffentlichen können.

Erfahren Sie mehr über die Entwicklung von Microservices mithilfe eines API-Gateways in unserem Blog.

API-Gateway für Kubernetes

Container sind die effizienteste Möglichkeit, Microservices auszuführen, und Kubernetes ist der De-facto-Standard für die Bereitstellung und Verwaltung containerisierter Anwendungen und Workloads.

Je nach Systemarchitektur und Anforderungen an die Anwendungsbereitstellung kann ein API-Gateway vor dem Kubernetes-Cluster als Load Balancer (Multi-Cluster-Ebene), an dessen Rand als Ingress-Controller (Cluster-Ebene) oder innerhalb des Clusters als Service Mesh (Service-Ebene) bereitgestellt werden.

Für API-Gateway-Bereitstellungen am Edge und innerhalb des Kubernetes-Clusters empfiehlt es sich, ein Kubernetes-natives Tool als API-Gateway zu verwenden. Solche Tools sind eng in die Kubernetes-API integriert, unterstützen YAML und können über die standardmäßige Kubernetes-CLI konfiguriert werden. Beispiele hierfür sind NGINX Ingress Controller und NGINX Service Mesh.

Weitere Informationen zu API-Gateways und Kubernetes finden Sie in unserem Blogbeitrag „API-Gateway vs. Ingress-Controller vs. Service Mesh“.

API-Gateway und Ingress-Gateway oder Ingress-Controller

Ingress-Gateways und Ingress-Controller sind Tools, die das Ingress-Objekt, einen Bestandteil der Kubernetes Ingress API, implementieren, um in Kubernetes ausgeführte Anwendungen für externe Clients zugänglich zu machen. Sie verwalten die Kommunikation zwischen Benutzern und Anwendungen (Benutzer-zu-Service- bzw. Nord-Süd-Konnektivität). Das Ingress-Objekt selbst bietet jedoch nur sehr begrenzte Möglichkeiten. So unterstützt es beispielsweise nicht die Definition der damit verknüpften Sicherheitsrichtlinien. Daher erstellen viele Anbieter benutzerdefinierte Ressourcendefinitionen (Custom Resource Definitions, CRDs), um die Funktionen ihres Ingress-Controllers zu erweitern und den sich wandelnden Bedürfnissen und Anforderungen der Kunden gerecht zu werden. Dazu gehört auch die Verwendung des Ingress-Controllers als API-Gateway.

Beispielsweise kann der NGINX Ingress Controller mit seinen benutzerdefinierten Ressourcen VirtualServer und VirtualServerRoute, TransportServer und Policy als vollwertiges API-Gateway am Rand eines Kubernetes-Clusters eingesetzt werden.

Ein API-Gateway ist nicht dasselbe wie die Gateway API

Trotz der ähnlichen Bezeichnungen ist ein API-Gateway nicht dasselbe wie die Kubernetes Gateway API. Die Kubernetes Gateway API ist ein von der Kubernetes-Community verwaltetes Open-Source-Projekt, das die Vernetzung von Diensten in Kubernetes verbessern und standardisieren soll. Die Gateway-API-Spezifikation ging aus der Kubernetes Ingress API hervor, um verschiedene Herausforderungen bei der Bereitstellung von Ingress-Ressourcen zu lösen, mit denen Kubernetes-Anwendungen in Produktionsumgebungen zugänglich gemacht werden. Dazu gehören die Möglichkeit, detaillierte Richtlinien für die Verarbeitung von Anfragen zu definieren, sowie die Delegierung der Kontrolle über die Konfiguration an mehrere Teams und Rollen.

Tools, die auf der Gateway-API-Spezifikation basieren, wie etwa NGINX Kubernetes Gateway, können als API-Gateways für Anwendungsfälle eingesetzt werden, darunter das Weiterleiten von Anfragen an bestimmte Microservices, die Implementierung von Datenverkehrsrichtlinien sowie die Unterstützung von Canary- und Blue-Green-Bereitstellungen.

Sehen Sie sich dieses kurze Video an, in dem Jenn Gile von NGINX den Unterschied zwischen einem API-Gateway und der Kubernetes Gateway API erklärt.

Service Mesh vs. API-Gateway

Ein Service Mesh ist eine Infrastrukturschicht, die die Kommunikation zwischen Diensten in einem Kubernetes-Cluster steuert (Service-to-Service- bzw. Ost-West-Konnektivität). Das Service Mesh stellt zentrale Funktionen für in Kubernetes ausgeführte Dienste bereit, darunter Lastverteilung, Authentifizierung, Autorisierung, Zugriffskontrolle, Verschlüsselung, Beobachtbarkeit sowie fortschrittliche Muster zur Verwaltung der Konnektivität (Circuit Breaker, A/B-Tests sowie Blue-Green- und Canary-Bereitstellungen), um eine schnelle, zuverlässige und sichere Kommunikation zu gewährleisten.

Ein Service Mesh wird näher an den Anwendungen und Diensten bereitgestellt und kann als schlankes, aber dennoch umfassendes, verteiltes API-Gateway für die Kommunikation zwischen Diensten in Kubernetes eingesetzt werden.

Erfahren Sie mehr über Service Meshes in unserem Blogbeitrag „So wählen Sie das richtige Service Mesh aus“.

API-Gateway und API-Management

Die Begriffe API-Gateway und API-Management werden häufig – jedoch fälschlicherweise – zur Beschreibung derselben Funktionalität verwendet.

Ein API-Gateway ist ein Einstiegspunkt auf der Datenebene für API-Aufrufe, die Clientanfragen an Zielanwendungen und -dienste darstellen. Es verarbeitet Anfragen in der Regel anhand definierter Richtlinien, unter anderem durch Authentifizierung, Autorisierung, Zugriffskontrolle, SSL/TLS-Offloading, Routing und Lastverteilung.

API-Management bezeichnet den Prozess der Bereitstellung, Dokumentation, des Betriebs und der Überwachung einzelner APIs. Dies erfolgt in der Regel mithilfe von Management-Plane-Software (z. B. einem API-Manager), die Richtlinien für API-Gateways und Entwicklerportale definiert und anwendet.

Je nach geschäftlichen und funktionalen Anforderungen kann ein API-Gateway als eigenständige Komponente in der Datenebene oder als Teil einer integrierten API-Management-Lösung bereitgestellt werden, wie etwa F5 NGINX Management Suite API Connectivity Manager.

Überlegungen zur Auswahl eines API-Gateways

Bei der Festlegung der Anforderungen an Ihr API-Gateway sind mehrere wichtige Faktoren zu berücksichtigen:

  • Architektur – Der Bereitstellungsort des API-Gateways kann sich ebenso auf die Wahl Ihrer Tools auswirken wie die Entscheidung, integrierte Optionen Ihres Cloud-Anbieters zu nutzen. Benötigen Sie die Flexibilität eines plattform- und laufzeitunabhängigen API-Gateways?
  • Performance – Für Websites und Anwendungen mit hohem Datenverkehr ist die Performance entscheidend. Bietet Ihr API-Gateway den erforderlichen hohen Durchsatz und die benötigte niedrige Latenz?
  • Skalierbarkeit – Ihr API-Gateway muss sich problemlos skalieren lassen, um steigende Datenverkehrsanforderungen zu bewältigen. Unterstützt Ihr API-Gateway sowohl die vertikale Skalierung (hoher Durchsatz) als auch die horizontale Skalierung (hohe Verfügbarkeit), damit Ihre APIs jederzeit schnell und verfügbar sind?
  • Sicherheit – API-Gateways sind ein wichtiger Bestandteil einer Zero-Trust-Architektur. Bietet Ihr API-Gateway Zugriffskontrollen (AuthN/AuthZ), mTLS und weitere fortschrittliche Sicherheitsfunktionen wie eine integrierte WAF und eine OpenAPI-Schemavalidierung für ein Positiv-Sicherheitsmodell?
  • Kosten – Machen Sie sich mit den Gesamtbetriebskosten (TCO) des API-Gateways vertraut. Welche Kosten und Kompromisse sind mit der Entwicklung und Wartung einer individuellen Lösung im Vergleich zum Kauf eines API-Gateways für Unternehmen verbunden?

Wie NGINX Sie unterstützen kann

NGINX bietet je nach Ihren Anwendungsfällen und Bereitstellungsmustern verschiedene Optionen für die Bereitstellung und den Betrieb eines API-Gateways.
Kubernetes-native Tools:

  • NGINX Ingress Controller – Verwaltet die Anwendungskonnektivität am Rand eines Kubernetes-Clusters und bietet Funktionen für API-Gateway, Identitätsmanagement und Observability
  • NGINX Service Mesh – Entwicklerfreundliche Lösung für die Konnektivität, Sicherheit, Orchestrierung und Beobachtbarkeit von Diensten untereinander

Legen Sie los und fordern Sie Ihre kostenlose 30-Tage-Testversion von NGINX Ingress Controller mit NGINX App Protect WAF und DoS an und laden Sie das dauerhaft kostenlose NGINX Service Mesh herunter.

Universelle Tools:

  • NGINX Plus als API-Gateway – Ein schlankes, leistungsstarkes API-Gateway, das in Cloud-, On-Premises- und Edge-Umgebungen bereitgestellt werden kann
  • F5 NGINX Management Suite API Connectivity Manager – Stellen Sie API-Gateways bereit und betreiben Sie sie mit entwicklerfreundlichen Tools für API-Management, Governance und Sicherheit

Wenn Sie mehr über den Einsatz von NGINX Plus als API-Gateway erfahren möchten, fordern Sie Ihre kostenlose 30-Tage-Testversion an und lesen Sie den Beitrag NGINX als API-Gateway bereitstellen in unserem Blog. Wenn Sie die NGINX Management Suite ausprobieren möchten, fordern Sie Ihre kostenlose 30-Tage-Testversion an.