Ein API-Gateway nimmt API-Anforderungen von einem Client entgegen, verarbeitet sie auf der Grundlage definierter Richtlinien, leitet sie an die entsprechenden Dienste weiter und kombiniert die Antworten für eine vereinfachte Benutzererfahrung. In der Regel verarbeitet es eine Anforderung, indem es mehrere Microservices aufruft und die Ergebnisse zusammenfasst. Es kann auch zwischen Protokollen in Legacy-Bereitstellungen übersetzt werden.
Ein API-Gateway nimmt API-Anforderungen von einem Client entgegen, verarbeitet sie auf der Grundlage definierter Richtlinien, leitet sie an die entsprechenden Dienste weiter und kombiniert die Antworten für eine vereinfachte Benutzererfahrung. In der Regel verarbeitet es eine Anforderung, indem es mehrere Microservices aufruft und die Ergebnisse zusammenfasst. Es kann auch zwischen Protokollen in Legacy-Bereitstellungen übersetzt werden.
API-Gateways implementieren in der Regel die folgenden Funktionen:
Für zusätzliche Sicherheit auf Anwendungs- und API-Ebene können API-Gateways mit einer Web Application Firewall (WAF) und Denial-of-Service (DoS)-Schutz ausgestattet werden.
Der Einsatz eines API-Gateways für die Anwendungsbereitstellung kann wie folgt helfen:
Bei Microservices-basierten Anwendungen fungiert ein API-Gateway als zentraler Einstiegspunkt in das System. Es befindet sich vor den Microservices und vereinfacht sowohl die Client-Implementierungen als auch die Microservices-Anwendung, indem es die Komplexität einer Anwendung von ihren Clients entkoppelt.
In einer Microservices-Architektur ist das API-Gateway für die Anforderungsweiterleitung, die Zusammenstellung und die Durchsetzung von Richtlinien zuständig. Es bearbeitet einige Anforderungen, indem es sie einfach an den entsprechenden Backend-Dienst weiterleitet, und andere, indem es mehrere Backend-Dienste aufruft und die Ergebnisse zusammenfasst.
Ein API-Gateway kann weitere Funktionen für Microservices bereitstellen, z. B. Authentifizierung, Autorisierung, Überwachung, Lastausgleich und Antwortverarbeitung. Dadurch wird die Implementierung nicht-funktionaler Anforderungen auf die Infrastrukturschicht verlagert, und die Entwickler können sich auf die Kerngeschäftslogik konzentrieren, was die Veröffentlichung von Anwendungen beschleunigt.
Erfahren Sie mehr über den Building Microservices Using an API Gateway Aufbau von Microservices mithilfe eines API-Gateways in unserem Blog.
Container sind die effizienteste Art, Microservices auszuführen, und Kubernetes ist der De-facto-Standard für die Bereitstellung und Verwaltung von containerisierten Anwendungen und Workloads.
Je nach Systemarchitektur und Anforderungen an die Anwendungsbereitstellung kann ein API-Gateway vor dem Kubernetes-Cluster als Load Balancer (Multicluster-Ebene), am Rande des Clusters als Ingress-Controller (Clusterebene) oder innerhalb des Clusters als Service-Mesh (Dienst-Ebene) eingesetzt werden.
Für die Bereitstellung von API-Gateways am Netzwerkrand und innerhalb des Kubernetes-Clusters empfiehlt es sich, ein Kubernetes-eigenes Tool als API-Gateway zu verwenden. Solche Tools sind eng in die Kubernetes-API integriert, unterstützen YAML und können über die Standard-Kubernetes-CLI konfiguriert werden; Beispiele sind NGINX-Ingress-Controller und NGINX-Service-Mesh.
Erfahren Sie mehr über API-Gateways und Kubernetes in API Gateway vs. Ingress Controller vs. Service Mesh (API-Gateway im Vergleich zum Ingress-Controller im Vergleich zum Service-Mesh) in unserem Blog.
Ingress-Gateways und Ingress-Controller sind Tools, die das Ingress-Objekt, einen Teil der Kubernetes-Ingress-API, implementieren, um Anwendungen, die in Kubernetes ausgeführt werden, für externe Clients zugänglich zu machen. Sie verwalten die Kommunikation zwischen Benutzern und Anwendungen (Benutzer-zu-Dienst- oder Nord-Süd-Konnektivität). Das Ingress-Objekt selbst ist jedoch in seinen Fähigkeiten sehr eingeschränkt. Es unterstützt beispielsweise nicht die Definition der damit verbundenen Sicherheitsrichtlinien. Daher erstellen viele Anbieter benutzerdefinierte Ressourcendefinitionen (CRDs), um die Fähigkeiten ihres Ingress-Controllers zu erweitern und die sich entwickelnden Kundenbedürfnisse und -anforderungen zu erfüllen, einschließlich der Verwendung des Ingress-Controllers als API-Gateway.
Beispielsweise kann der NGINX-Ingress-Controller mit seinen benutzerdefinierten Ressourcen VirtualServer und VirtualServerRoute, TransportServer und Richtlinie als vollwertiges API-Gateway am Rand eines Kubernetes-Clusters eingesetzt werden.
Obwohl die Namen ähnlich sind, ist ein API-Gateway nicht dasselbe wie die Kubernetes-Gateway-API. Die Kubernetes- Gateway-API ist ein Open-Source-Projekt, das von der Kubernetes-Community verwaltet wird, um die Vernetzung von Diensten in Kubernetes zu verbessern und zu standardisieren. Die Gateway-API-Spezifikation hat sich aus der Kubernetes-Ingress-API entwickelt, um verschiedene Herausforderungen bei der Bereitstellung von Ingress-Ressourcen für Kubernetes-Anwendungen in der Produktion zu lösen, einschließlich der Möglichkeit, fein abgestufte Richtlinien für die Verarbeitung von Anforderungen zu definieren und die Kontrolle über die Konfiguration an mehrere Teams und Rollen zu delegieren.
Tools, die auf der Gateway-API-Spezifikation aufbauen, wie NGINX Kubernetes Gateway, können als API-Gateways für Anwendungsfälle verwendet werden, die das Routing von Anforderungen an bestimmte Microservices, die Implementierung von Datenverkehrsrichtlinien und die Ermöglichung von Canary- und Blau-Grün-Bereitstellungen umfassen.
In diesem kurzen Video erklärt Jenn Gile von NGINX den Unterschied zwischen einem API-Gateway und der Kubernetes-Gateway-API.
Ein Service-Mesh ist eine Infrastrukturschicht, die die Kommunikation zwischen den Diensten in einem Kubernetes-Cluster steuert (Dienst-zu-Dienst- oder Ost-West-Konnektivität). Das Service-Mesh bietet Kernfunktionen für Dienste, die in Kubernetes ausgeführt werden, einschließlich Lastausgleich, Authentifizierung, Autorisierung, Zugriffskontrolle, Verschlüsselung, Beobachtbarkeit und fortschrittliche Muster für die Verwaltung der Konnektivität (Sicherung, A/B-Tests sowie Blau-Grün- und Canary-Bereitstellungen), um sicherzustellen, dass die Kommunikation schnell, zuverlässig und sicher ist.
Näher an den Anwendungen und Diensten bereitgestellt, kann ein Service Mesh als leichtgewichtiges, aber umfassendes, verteiltes API-Gateway für die Kommunikation zwischen Diensten in Kubernetes verwendet werden.
Erfahren Sie mehr über Service-Mesh in How to Choose a Service Mesh (So wählen Sie einen Service-Mesh) in unserem Blog.
Die Begriffe API-Gateway und API-Verwaltung werden häufig – jedoch fälschlicherweise – zur Beschreibung derselben Funktionalität verwendet.
Ein API-Gateway ist ein Eingangspunkt auf der Datenebene für API-Aufrufe, die Client-Anforderungen an Zielanwendungen und -dienste darstellen. Es führt in der Regel die Anforderungsverarbeitung auf der Grundlage definierter Richtlinien durch, einschließlich Authentifizierung, Autorisierung, Zugriffskontrolle, SSL/TLS-Offloading, Routing und Lastausgleich.
Die API-Verwaltung ist der Prozess der Bereitstellung, der Dokumentation, des Betriebs und der Überwachung einzelner APIs. Sie wird in der Regel mit Software auf der Verwaltungsebene (z. B. einem API-Manager) durchgeführt, die Richtlinien für API-Gateways und Entwicklerportale definiert und anwendet.
Je nach den geschäftlichen und funktionalen Anforderungen kann ein API-Gateway als eigenständige Komponente auf der Datenebene oder als Teil einer integrierten API-Verwaltungslösung wie der F5 NGINX Management Suite API Connectivity Manager eingesetzt werden.
Bei der Entscheidung über die Anforderungen an Ihr API-Gateway sind mehrere Schlüsselfaktoren zu berücksichtigen:
NGINX bietet mehrere Optionen für die Bereitstellung und den Betrieb eines API-Gateways, je nach Anwendungsfällen und Bereitstellungsmustern.
Kubernetes-native Tools:
Fordern Sie jetzt Ihre kostenlose 30-Tage-Testversion des NGINX Ingress-Controllers mit NGINX App Protect WAF und DoS an, und laden Sie das stets kostenlose NGINX Service-Mesh herunter.
Universelle Tools:
Wenn Sie mehr über die Verwendung von NGINX Plus als API-Gateway erfahren möchten, fordern Sie eine kostenlose 30-Tage-Testversion an, und lesen Sie in unserem Blog den Abschnitt Bereitstellung von NGINX als API-Gateway. Wenn Sie die NGINX Management Suite testen möchten, fordern Sie eine kostenlose 30-Tage-Testversion an.