API-Gateway-Bereitstellungsmuster

Bobur Umurzokov

Bobur Umurzokov

December 16, 2022

Technology

APIs verändern die Art und Weise, wie wir Anwendungen erstellen und Daten sowohl innerhalb als auch außerhalb unserer Organisationen verfügbar machen. Der Erfolg unserer APIs hängt von ihrer Integrität, Verfügbarkeit und Leistung ab. Mit einem API-Gateway wie Apache APISIX können wir diese Erfolgsindikatoren erreichen.

Wenn es um die Bereitstellung von API-Gateways geht, gibt es 4 bekannte Muster: Zentralisiertes Edge-Gateway, Zwei-Ebenen-Gateway, Microgateway und Sidecar. In diesem Beitrag werden wir diese Muster durchgehen und Ihnen eine Idee geben, wie Sie das richtige API-Gateway-Bereitstellungsmuster für Ihr Unternehmen auswählen können.

Was ist ein API-Gateway?

Ein API-Gateway ist ein Management-Tool, das am Rand eines Systems zwischen einem Verbraucher und einer Sammlung von Backend-Diensten sitzt und als einziger Einstiegspunkt für eine definierte Gruppe von APIs fungiert. Der Verbraucher kann eine Endbenutzeranwendung oder ein Gerät sein, wie eine Single-Page-Webanwendung oder eine mobile App, ein anderes internes System oder eine Drittanbieteranwendung oder ein Drittanbietersystem.

API-Gateway-Bereitstellungskomponenten

Ein API-Gateway wird mit zwei grundlegenden Komponenten implementiert: einer Steuerungsebene und einer Datenebene. Diese Komponenten können typischerweise zusammen gepackt oder separat bereitgestellt werden. Die Steuerungsebene ist der Ort, an dem Betreiber mit dem Gateway interagieren und Routen, Richtlinien und erforderliche Telemetrie definieren. Die Datenebene ist der Ort, an dem alle in der Steuerungsebene festgelegten Arbeiten stattfinden, die Netzwerkpakete geroutet, die Richtlinien durchgesetzt und die Telemetrie ausgegeben werden. Zum Beispiel hat APISIX drei verschiedene Bereitstellungsmodi (traditionell, entkoppelt und eigenständig) für verschiedene Produktionsanwendungsfälle.

Zentralisiertes Edge-Gateway

Ein API-Gateway wird typischerweise am Rand eines Systems bereitgestellt, aber die Definition von „System“ kann in diesem Fall sehr flexibel sein. Für Startups und viele kleine bis mittelständische Unternehmen wird ein API-Gateway oft am Rand des Rechenzentrums oder der Cloud bereitgestellt. In diesen Situationen gibt es möglicherweise nur ein einziges API-Gateway (bereitgestellt und über mehrere Instanzen für hohe Verfügbarkeit ausgeführt), das als Eingangstür für das gesamte Backend-Anwesen fungiert, und das API-Gateway wird alle Edge-Funktionen bereitstellen.

Zentralisiertes Edge-API-Gateway

Ein API-Gateway bietet übergreifende Anforderungen wie Benutzerauthentifizierung, Autorisierung, Anforderungsratenbegrenzung, Caching, Timeouts/Wiederholungen, Anforderungs-/Antworttransformation, kann Metriken, Protokolle und Ablaufverfolgungsdaten bereitstellen, um die Implementierung von Beobachtbarkeit innerhalb des Systems zu unterstützen.

Außerdem bieten viele API-Gateways zusätzliche Funktionen, die es Entwicklern ermöglichen, den Lebenszyklus einer API zu verwalten, bei der Onboarding und Verwaltung von Entwicklern, die die APIs verwenden, zu unterstützen (wie die Bereitstellung eines Entwicklerportals und verwandter Kontoverwaltung und Zugriffskontrolle), und Unternehmensgovernance bereitzustellen.

Zwei-Ebenen-Gateway

Für große Organisationen und Unternehmen wird ein API-Gateway typischerweise an mehreren Standorten bereitgestellt, oft als Teil des anfänglichen Edge-Stacks am Rand eines Rechenzentrums, und zusätzliche Gateways können als Teil jedes Produkts, Geschäftsbereichs oder Organisationsabteilung bereitgestellt werden. In diesem Kontext wären diese Gateways eher separate Implementierungen und könnten je nach geografischem Standort (erforderliche Governance) oder Infrastrukturfähigkeiten (Ausführung auf ressourcenschwachen Edge-Compute-Ressourcen) unterschiedliche Funktionalitäten bieten.

Wie das folgende Diagramm zeigt, sitzt das Apache APISIX API-Gateway oft zwischen dem öffentlichen Internet und der demilitarisierten Zone (DMZ) eines privaten Netzwerks.

Zwei-Ebenen-API-Gateway

Microgateway

Microgateways sind vollständig für die interne Kommunikation zwischen Microservices konzipiert. Jedes einzelne Microgateway kann einen anderen Satz von Richtlinien und Sicherheitsregeln haben und erfordert die Aggregation von Überwachungs- und Metrikdaten von mehreren Diensten.

Microgateway

Das Konzept besteht darin, die Fähigkeit (ein dediziertes Gateway) dem einzelnen Team, das die Microservices verwaltet, bereitzustellen, um zu kontrollieren, wie sie die Dienste sicher verfügbar machen. Das gleiche Entwicklerteam wird seine Microservices und Microgateways verwalten und warten, sodass es Fehler beheben, Updates bereitstellen, Verbesserungen unabhängig durchführen und die Änderungen schnell in die Produktion bringen kann, mit weniger Interaktion mit anderen Abhängigkeiten und ohne Auswirkungen auf andere Anwendungen in der Bereitstellung.

Sidecar-API-Gateway

Sidecar implementiert ein API-Gateway als Container, der an einen Dienst in einer unabhängigen Laufzeitumgebung wie Kubernetes angehängt ist. Sidecar ist ein Muster, das einem Beiwagen entspricht, der an ein Motorrad angehängt ist, ähnlich ist es an eine übergeordnete Anwendung (eine Softwarekomponente namens Service Mesh) angehängt und bietet unterstützende Funktionen für die Anwendung. Der Sidecar teilt auch denselben Lebenszyklus wie die übergeordnete Anwendung, wird zusammen mit der übergeordneten Anwendung erstellt und außer Betrieb genommen und führt zusätzliche Funktionen wie Überwachung, Protokollierung, Konfiguration und Netzwerkdienste ein.

Die Vorteile der Übernahme dieses Musters sind, dass jede Dienstlaufzeit ihr eigenes API-Gateway auf die beste Weise konfigurieren kann. Da die Anforderung, die API-Gateway-Funktionen und -Einrichtungen zu aktivieren, von Dienst zu Dienst variieren kann. Gleichzeitig trennt es die Anliegen, wenn ein Problem in der gemeinsamen API-Gateway-Infrastruktur auftritt, dann sind nicht alle Dienste betroffen. Zum Beispiel ist Amesh eine weitere Service-Mesh-Lösung basierend auf Apache APISIX.

Sidecar-API-Gateway

Das vorherige Diagramm zeigt einen Ingress, der als API-Lastausgleich und Ressourcenrouter in jeden Dienstendpunkt fungiert. Der Einstiegspunkt für den Dienst ist nicht der Dienstendpunkt selbst, sondern ein Sidecar-API-Gateway. Der Sidecar kann dann jede der vom API-Gateway angebotenen Funktionen zusätzlich zum Routing des Datenverkehrs zum Dienstendpunkt ausführen.

Fazit

Wie wir verstehen, gibt es kein einziges Bereitstellungsmuster, das für alle Bedingungen geeignet ist. Manchmal können Sie ein oder mehrere Gateways in Ihrem System verwenden. Die Wahl der Bereitstellung hängt von der Komplexität und den Anforderungen Ihres Unternehmens ab. Wenn Sie Hilfe bei der Entscheidung benötigen, welches Bereitstellungsmuster für Sie am besten geeignet ist, können Sie unserem Slack-Kanal beitreten und Experten helfen Ihnen bei der Entscheidung.

Verwandte Ressourcen

Apache APISIX Bereitstellungsmodelle.

Was ist ein API-Gateway und warum ist es in der Cloud-Native-Ära unerlässlich?.

Empfohlene Inhalte

➔ Lesen Sie die Blogbeiträge:

Tags: