Was ist ein API-Gateway?

Ein API-Gateway akzeptiert API-Anfragen von einem Client, verarbeitet sie basierend auf definierten Richtlinien, leitet sie an die entsprechenden Dienste weiter und kombiniert die Antworten für ein vereinfachtes Benutzererlebnis. Normalerweise verarbeitet es eine Anfrage, indem es mehrere Mikrodienste aufruft und die Ergebnisse aggregiert. Es kann auch zwischen Protokollen in Legacy-Bereitstellungen übersetzen.

Ein API-Gateway akzeptiert API-Anfragen von einem Client, verarbeitet sie basierend auf definierten Richtlinien, leitet sie an die entsprechenden Dienste weiter und kombiniert die Antworten für ein vereinfachtes Benutzererlebnis. Normalerweise verarbeitet es eine Anfrage, indem es mehrere Mikrodienste aufruft und die Ergebnisse aggregiert. Es kann auch zwischen Protokollen in Legacy-Bereitstellungen übersetzen.

BILD-ALT-TEXT HIER

API-Gateway-Funktionen

API-Gateways implementieren üblicherweise folgende Funktionen:

  • Sicherheitsrichtlinie – Authentifizierung, Autorisierung, Zugriffskontrolle und Verschlüsselung
  • Routing-Richtlinie – Routing, Ratenbegrenzung, Anfrage-/Antwortmanipulation, Leistungsschalter, Blue-Green- und Canary-Bereitstellungen, A/B-Tests, Lastausgleich, Integritätsprüfungen und benutzerdefinierte Fehlerbehandlung.
  • Richtlinie zur Beobachtung – Echtzeit- und historische Messwerte, Protokollierung und Nachverfolgung

Für zusätzliche Sicherheit auf App- und API-Ebene können API-Gateways mit einer Web Application Firewall (WAF) und einem Denial-of-Service-Schutz (DoS) erweitert werden.

Vorteile des API-Gateways

Der Einsatz eines API-Gateways für die App-Bereitstellung kann hilfreich sein:

  • Reduzieren Sie die Komplexität und beschleunigen Sie die Veröffentlichung von Apps, indem Sie die interne Anwendungsarchitektur kapseln und auf jeden Clienttyp zugeschnittene APIs bereitstellen.
  • Optimieren und vereinfachen Sie die Anfrageverarbeitung und Richtliniendurchsetzung, indem Sie die Steuerung zentralisieren und nicht-funktionale Anforderungen auf die Infrastrukturebene auslagern.
  • Vereinfachen Sie die Fehlerbehebung mit detaillierten Echtzeit- und Verlaufsmesswerten und Dashboards.

API-Gateway und Microservices-Architektur

Für auf Microservices basierende Anwendungen fungiert ein API-Gateway als einziger Einstiegspunkt in das System. Es sitzt vor den Microservices und vereinfacht sowohl die Client-Implementierungen als auch die Microservices-App, indem es die Komplexität einer App von ihren Clients entkoppelt.

In einer Microservices-Architektur ist das API-Gateway für die Anforderungsweiterleitung, -zusammenstellung und -durchsetzung verantwortlich. Einige Anfragen werden von ihm einfach durch Weiterleitung an den entsprechenden Backend-Dienst bearbeitet. Andere werden von ihm durch Aufrufen mehrerer Backend-Dienste und Zusammenfassen der Ergebnisse bearbeitet.

Ein API-Gateway könnte andere Funktionen für Mikrodienste bereitstellen, wie etwa Authentifizierung, Autorisierung, Überwachung, Lastausgleich und Antwortverarbeitung. Dadurch wird die Implementierung nicht-funktionaler Anforderungen auf die Infrastrukturebene verlagert und Entwicklern geholfen, sich auf die Kerngeschäftslogik zu konzentrieren, wodurch App-Releases beschleunigt werden.

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

API-Gateway für Kubernetes

Container stellen die effizienteste Möglichkeit zum Ausführen von Microservices dar und Kubernetes ist der De-facto-Standard für die Bereitstellung und Verwaltung containerisierter Anwendungen und Workloads.

Abhängig von der Systemarchitektur und den Anforderungen an die App-Bereitstellung 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) eingesetzt werden.

BILD-ALT-TEXT HIER

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 .

Erfahren Sie mehr über API-Gateways und Kubernetes in API Gateway vs. Ingress-Controller vs. Service Mesh auf unserem Blog.

API-Gateway und Ingress-Gateway oder Ingress-Controller

Ingress-Gateways und Ingress-Controller sind Tools, die das Ingress-Objekt , einen Teil der Kubernetes Ingress-API, implementieren, um in Kubernetes ausgeführte Anwendungen externen Clients zugänglich zu machen. Sie verwalten die Kommunikation zwischen Benutzern und Anwendungen (Benutzer-zu-Dienst- oder Nord-Süd-Konnektivität). Die Möglichkeiten des Ingress-Objekts selbst sind jedoch sehr eingeschränkt. Beispielsweise wird die Definition der damit verbundenen Sicherheitsrichtlinien nicht unterstützt. Daher erstellen viele Anbieter benutzerdefinierte Ressourcendefinitionen (CRDs), um die Funktionen ihres Ingress-Controllers zu erweitern und den sich entwickelnden Bedürfnissen und Anforderungen der Kunden gerecht zu werden, einschließlich der Verwendung des Ingress-Controllers als API-Gateway.

Beispielsweise kann NGINX Ingress Controller mit seinen benutzerdefinierten Ressourcen VirtualServer und VirtualServerRoute , TransportServer und Policy als voll funktionsfähiges API-Gateway am Rand eines Kubernetes-Clusters verwendet werden.

API-Gateway ist nicht dasselbe wie Gateway-API

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 Servicevernetzung in Kubernetes zu verbessern und zu standardisieren. Die Gateway-API-Spezifikation wurde aus der Kubernetes Ingress API entwickelt, um verschiedene Herausforderungen im Zusammenhang mit der Bereitstellung von Ingress-Ressourcen für die Bereitstellung von Kubernetes-Apps in der Produktion zu lösen. Dazu gehört die Möglichkeit, feinkörnige Richtlinien für die Anforderungsverarbeitung zu definieren und die Kontrolle über die Konfiguration an mehrere Teams und Rollen zu delegieren.

Auf der Gateway-API-Spezifikation basierende Tools wie z. B. NGINX Kubernetes Gateway können als API-Gateways für Anwendungsfälle verwendet werden, die das Weiterleiten von Anforderungen an bestimmte Mikrodienste, das Implementieren von Verkehrsrichtlinien und das Aktivieren von Canary- und Blue-Green-Bereitstellungen umfassen.

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 (Dienst-zu-Dienst- oder Ost-West-Konnektivität). Das Service Mesh bietet Kernfunktionen für in Kubernetes ausgeführte Dienste, darunter Lastausgleich, Authentifizierung, Autorisierung, Zugriffskontrolle, Verschlüsselung, Beobachtbarkeit und erweiterte 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.

Näher an den Apps und Diensten bereitgestellt, kann ein Service Mesh als leichtes, aber dennoch umfassendes, verteiltes API-Gateway für die Service-zu-Service-Kommunikation in Kubernetes verwendet werden.

Weitere Informationen zum Service Mesh finden Sie im Abschnitt „So wählen Sie ein Service Mesh aus“ in unserem Blog.

API-Gateway und API-Management

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

Ein API-Gateway ist ein Datenebenen- Einstiegspunkt für API-Aufrufe, die Clientanforderungen an Zielanwendungen und -dienste darstellen. Die Anforderungsverarbeitung erfolgt dabei normalerweise auf Grundlage definierter Richtlinien, darunter Authentifizierung, Autorisierung, Zugriffskontrolle, SSL/TLS-Offloading, Routing und Lastausgleich.

API-Management ist der Prozess der Bereitstellung, Dokumentation, Bedienung und Überwachung einzelner APIs. Dies wird normalerweise mithilfe einer Management-Plane-Software (z. B. einem API-Manager) erreicht, die Richtlinien für API-Gateways und Entwicklerportale definiert und anwendet.

Abhängig von geschäftlichen und funktionalen Anforderungen kann ein API-Gateway als eigenständige Komponente in der Datenebene oder als Teil einer integrierten API-Verwaltungslösung wie dem F5 NGINX Management Suite API Connectivity Manager bereitgestellt werden.

Überlegungen zur Auswahl eines API-Gateways

Bei der Entscheidung über die Anforderungen für Ihr API-Gateway müssen Sie mehrere wichtige Faktoren berücksichtigen:

  • Architektur – Wo Sie das API-Gateway bereitstellen, kann sich auf Ihre Werkzeugauswahl auswirken, ebenso wie die Entscheidung, integrierte Optionen Ihres Cloud-Anbieters zu verwenden. Benötigen Sie die Flexibilität eines plattform- und laufzeitunabhängigen API-Gateways?
  • Leistung – Die Leistung ist für Websites und Anwendungen mit hohem Datenverkehr von entscheidender Bedeutung. Bietet Ihr API-Gateway den hohen Durchsatz und die geringe Latenz, die Sie benötigen?
  • Skalierbarkeit – Ihr API-Gateway muss problemlos skalierbar sein, um steigenden Datenverkehrsanforderungen gerecht zu werden. Unterstützt Ihr API-Gateway vertikale (hoher Durchsatz) und horizontale (hohe Verfügbarkeit) Skalierung, um sicherzustellen, dass Ihre APIs immer schnell und verfügbar sind?
  • Sicherheit – API-Gateways sind ein wichtiger Bestandteil einer Zero-Trust-Architektur. Bietet Ihr API-Gateway Zugriffskontrolle (AuthN/AuthZ), mTLS und andere erweiterte Sicherheitsfunktionen wie eine integrierte WAF- und OpenAPI-Schemavalidierung für positive Sicherheit?
  • Kosten: Verstehen Sie die Gesamtbetriebskosten (TCO) des API-Gateways. Welche Kosten und Nachteile sind mit der Erstellung und Wartung einer benutzerdefinierten Lösung im Vergleich zum Kauf eines API-Gateways der Unternehmensklasse verbunden?

Wie NGINX helfen kann

NGINX bietet je nach Anwendungsfall und Bereitstellungsmuster mehrere Optionen für die Bereitstellung und den Betrieb eines API-Gateways.
Kubernetes-native Tools:

  • NGINX Ingress Controller – Verwaltet die App-Konnektivität am Rand eines Kubernetes-Clusters mit API-Gateway-, Identitäts- und Beobachtungsfunktionen.
  • NGINX Service Mesh – Entwicklerfreundliche Lösung für Service-zu-Service-Konnektivität, Sicherheit, Orchestrierung und Beobachtbarkeit

Fordern Sie zunächst Ihre kostenlose 30-Tage-Testversion von NGINX Ingress Controller mit NGINX App Protect WAF und DoS an und laden Sie das immer kostenlose NGINX Service Mesh herunter .

Universelle Werkzeuge:

  • NGINX Plus als API-Gateway – Leichtes, leistungsstarkes API-Gateway, das in Cloud-, On-Premises- und Edge-Umgebungen eingesetzt werden kann
  • F5 NGINX Management Suite API Connectivity Manager – Bereitstellung und Betrieb von API-Gateways mit entwicklerfreundlichen Tools für API-Management, Governance und Sicherheit

Um mehr über die Verwendung von NGINX Plus als API-Gateway zu erfahren, fordern Sie Ihre kostenlose 30-Tage-Testversion an und lesen Sie den Artikel „Bereitstellen von NGINX als API-Gateway“ in unserem Blog. Um die NGINX Management Suite auszuprobieren, fordern Sie Ihre kostenlose 30-Tage-Testversion an.