API-Gateway: Backend für Frontend
Lassen Sie uns besprechen, was ein API-Gateway ist, warum es wichtig ist, eines zu haben, und wie es APIs besser verwalten kann. Wir werden einige der besten Open-Source- und verwalteten API-Gateways für bessere Leistung und Sicherheit besprechen.
Kong Gateway
Kong Gateway ist das beliebteste Open-Source Cloud-native API-Gateway, das auf einem leichtgewichtigen Proxy aufbaut. Es ist in Lua geschrieben und läuft mit Hilfe von Nginx. Es handelt sich um eine Template-Engine, die dazu beiträgt, die Ereigniszeit zu beschleunigen. Kong garantiert eine unvergleichliche Latenzleistung und Skalierbarkeit für alle unsere Microservice-Anwendungen, unabhängig davon, wo sie ausgeführt werden.
Unternehmen wie Nasdaq, Honeywell, Cisco, FAB, Expedia, Samsung, Siemens und Yahoo Japan nutzen das Kong API-Gateway ausgiebig.
Einige der von Kong angebotenen Funktionen sind:
- Authentifizierung
- Traffic-Kontrolle
- Analytik
- Transformationen
- Protokollierung
- Serverlos
- Erweiterbar durch Plugin-Architektur
Kong verfügt über eine hervorragende Dokumentation und Integration.
Apache APISIX
Apache APISIX entstand ursprünglich bei ZhiLiu Technology in China und wurde später in den Apache-Inkubator aufgenommen und als Open-Source-Projekt veröffentlicht. Der Vizepräsident des Projekts, Ming Wen, erklärt, dass dieses API-Gateway verschiedene Herausforderungen löst, die durch Cloud-Native und Microservices entstehen.
Apache ApiSix wird von Unternehmen wie 360, HelloTalk, NetEase, TravelSky und vielen anderen eingesetzt.
Apache APISIX basiert auf Nginx und etcd und verfügt über dynamisches Routing und Plug-in Hot Loading, was sich besonders für die API-Verwaltung im Rahmen des Microservice-Systems eignet.
Tyk
Tyk ist ein Open-Source-API-Gateway, das für Unternehmen geeignet ist. Sie haben die Wahl zwischen einer selbst gehosteten und einer verwalteten Lösung.
Im Folgenden finden Sie einige der von TYK angebotenen Standardfunktionen.
- Authentifizierung
- Kontingente & Ratenbegrenzung
- Versionskontrolle
- Benachrichtigungen und Ereignisse
- Mock-out APIs
- Detaillierte Überwachung und Analyse
- Abwärtskompatibilität zugesagt
- GraphQL sofort einsatzbereit
TYK ist auch auf dem AWS-Marktplatz erhältlich. Eine gute Wahl, wenn Ihr Anwendungsstack auf AWS läuft.
Ocelot
Ocelot ist ein .NET API-Gateway.
Dieses Projekt zielt auf die Verwendung von .NET, Microservices oder serviceorientierten Architekturen ab, die einen einheitlichen Einstiegspunkt in ihr System benötigen. Es funktioniert jedoch mit allem, was HTTP spricht, und läuft auf jeder Plattform, die ASP.NET Core unterstützt.
Ocelot agiert als Middleware in einer bestimmten Reihenfolge. Es manipuliert das HttpRequest-Objekt in einen durch seine Konfiguration festgelegten Zustand, bis es eine Request Builder-Middleware erreicht. Sie erstellt ein HttpRequestMessage-Objekt, das zur Anforderung eines nachgelagerten Dienstes verwendet wird. Die Middleware, die die Anfrage stellt, ist das letzte Element in der Ocelot-Pipeline. Sie ruft nicht die nächste Middleware auf. Ein Middleware-Teil bildet die HttpResponseMessage auf das HttpResponse-Objekt ab und wird an den Client zurückgegeben.
Ocelot bietet Standardfunktionen wie Routing, Authentifizierung, Ratenbegrenzung, Caching, Lastausgleich und mehr. Es bietet keine Unterstützung für Chunked Encoding, Weiterleitung eines Host-Headers und Swagger.
Goku
Goku API Gateway ist ein Dachprojekt von EOLINK Inc. Es handelt sich um ein Golang-basiertes Microservice-Gateway, das dynamisches Hochleistungs-Routing, Service-Orchestrierung, Multi-Tenancy-Management, API-Zugriffskontrolle usw. ermöglicht.
Goku bietet eine grafische Oberfläche und ein Plug-in-System, um die Konfiguration zu erleichtern und bequemer zu erweitern. Neben den Standardfunktionen bietet Goku auch Clustering, Hot Updates, Alarmierung, Protokollierung usw.
Express-Gateway
Express Gateway ist auf Express.js aufgebaut. Express Gateway ist ein Bündel von Komponenten, die deklarativ um Express herum aufgebaut sind, um den Anwendungsfall API Gateway zu erfüllen. Die Leistungsfähigkeit von Express Gateway wird durch das reichhaltige Ökosystem rund um die Express-Middleware genutzt.
Unternehmen wie Joyent, The Linux Foundation, VIRICITI, Switch Media, Coozy und Musement nutzen Express Gateway in großem Umfang.
Es ist einfach, schnell und bietet alle grundlegenden Funktionen.
Gloo
Gloo ist ein voll funktionsfähiges API-Gateway und Ingress Controller der nächsten Generation für Cloud-native Umgebungen. Es baut auf Envoy Proxy auf, um den Datenverkehr zwischen Ihren Anwendungsdiensten zu verbinden, zu sichern und zu kontrollieren.
Gloo unterstützt die Verbindung zu einer breiten Palette von Workloads, um diese zu sichern und zu verwalten, und es ist außergewöhnlich in seinem funktionalen Level-Routing. Es ist sowohl als Open-Source- als auch als Unternehmensversion erhältlich. Die Unternehmensversion bietet Folgendes.
- Entwickler-Portal
- WAF
- Schutz vor Datenverlust
- Mehr Möglichkeiten zur Authentifizierung
- Erweiterte Ratenbegrenzung und Multi-Cluster-Verwaltung
KrakenD
KrakenD ist ein extrem leistungsstarkes Open-Source-API-Gateway. Seine Kernfunktionalität besteht darin, eine API zu erstellen, die als Aggregator vieler Microservices in einzelnen Endpunkten fungiert und die Schwerstarbeit automatisch für Sie erledigt: Aggregieren, Transformieren, Filtern, Dekodieren, Drosseln, Authentifizierung und mehr.
Es bietet eine deklarative Methode zur Erstellung der Endpunkte. Es ist gut strukturiert und vielschichtig und offen für die Erweiterung seiner Funktionalität durch Plug-and-Play-Middleware, die von der Community oder intern entwickelt wird.
KrakenD behauptet, schneller als Kong und Tyk zu sein. Sehen Sie sich die Benchmarking-Ergebnisse an.
Fusio
Fusio ist ein API-Verwaltungssystem, da es bei der Entwicklung tatsächlicher API-Endpunkte hilft (d.h. bei der Anforderung und Umwandlung von Daten aus einer Datenbank). Es ist nicht auf Proxy-Anfragen an eine andere API beschränkt. Es bietet ein einfaches und intuitives Backend zur Steuerung und Verwaltung Ihrer API.
Einige der von Fusio angebotenen Funktionen sind:
- Monetarisierung
- Unterstützung von Abonnements
- Erzeugen von OAI- und RAML-Schema-Spezifikationen
- Dokumentation
und andere Standard-API-Gateway-Funktionen.
WSO2
WSO2 ist eine API-Management-Lösung für den gesamten Lebenszyklus, die überall eingesetzt werden kann. Sie kann vor Ort, in der Cloud oder in einer hybriden Form eingesetzt werden, bei der ihre Komponenten über mehrere Cloud- und vor-Ort-Infrastrukturen verteilt und bereitgestellt werden können.
Er umfasst ein Cloud-natives API-Gateway und bietet einen Kubernetes-Operator, um rohe Microservices einfach in verwaltete APIs umzuwandeln. API Manager lässt sich in Servicenetze integrieren und bietet eine vollwertige Verwaltungs- und Steuerungsebene für die Verwaltung, Überwachung und Monetarisierung von APIs und API-Produkten.
Er unterstützt die Veröffentlichung von APIs, das Lebenszyklusmanagement, die Anwendungsentwicklung, die Zugriffskontrolle, die Ratenbegrenzung und die Analyse in einem einzigen, sauber integrierten System.
Apigee
Apigee ist eine Cloud-übergreifende API-Verwaltungsplattform von Google Cloud.
Sie ist in den folgenden Varianten erhältlich:
- Apigee: eine gehostete SaaS-Lösung, bei der Sie für das bezahlen, was Sie nutzen. Sie konzentrieren sich auf den Aufbau Ihres Geschäfts und verlagern die Verwaltung der Apigee-Umgebung auf GCP.
- Apigee Hybrid: Sie können APIs vor Ort, auf der Google Cloud Platform (GCP) oder in einer Mischung aus beidem verwalten.
Apigee bietet ein End-to-End-API-Management mit Monetarisierung und integrierter Überwachung.
Endpoints
Ein weiteres Produkt von Google Cloud.
Endpoints ist eine abgespeckte Version von Apigee von Google Cloud. Sie eignet sich am besten für Entwickler, die APIs für jedes Google Cloud-Backend entwickeln, bereitstellen und verwalten möchten. Es bietet Tools und Bibliotheken für seine Kunden aus der App Engine Anwendung.
Google Cloud Endpoints ist eng mit anderen Produkten wie Trace und Logging für die Überwachung, Auth0 und Firebase für die Authentifizierung, GKE und App Engine für die automatische Bereitstellung usw. integriert.
Amazon API-Gateway
AWS kann alles bieten, was Sie für den Betrieb Ihrer Anwendungen benötigen.
Das gilt auch für API.
Amazon API Gateway ist ein vollständig verwalteter Service, der Entwicklern die Erstellung, Veröffentlichung, Wartung und Sicherung von APIs in beliebigem Umfang ermöglicht. Er unterstützt sowohl RESTful- als auch WebSocket-APIs und ermöglicht uns die 2-Wege-Kommunikation in Echtzeit.
Unten sehen Sie die bildliche Darstellung von Amazon, die veranschaulicht, wie das Amazon API-Gateway funktioniert.
Wenn Ihre Microservices oder API bereits auf AWS gehostet werden, ist es sinnvoll, sie mit Amazon API Gateway zu integrieren. Sie bieten 1 Million API-Aufrufe im Rahmen des FREE-Tiers an, so dass Sie sehen können, wie es funktioniert.
Azure
Warum sollten Sie Azure zurücklassen?
Microsoft Azure bietet eine durchgängige API-Verwaltung in der Cloud, vor Ort oder als Hybridlösung. Sie können die API-Verwaltung programmatisch über REST API und SDK verwalten.
Gute Nachrichten, wenn Sie SOAP verwenden. Sie können die WSDL (Web Services Description Language) ihres SOAP-Dienstes importieren, und Azure erstellt ein SOAP-Frontend. Sie bieten alle Standardfunktionen, einschließlich Monetarisierung. Probieren Sie es einfach aus, um die Plattform kennenzulernen.
MuleSoft
Verwalten Sie APIs und steigern Sie die Effizienz in Ihrem Unternehmen mit MuleSoft. Damit können Sie universelle APIs von jedem beliebigen Ort aus erstellen, sichern, verwalten und steuern.
Sie können APIs über CI/CD-Pipelines zusammen mit der neuen CLI entdecken, um die Bereitstellung Ihrer Anwendungen zu beschleunigen. Mit MuleSoft können Sie APIs unter Verwendung verschiedener Protokolle entwerfen und dabei die Governance-Standards einhalten und eine hohe Qualität gewährleisten.
Sammeln Sie Daten aus APIs, um sie zu untersuchen, bereitzustellen und in einer GraphQL-Abfrage zusammenzufassen. Dies kann mit Hilfe von DataGraph geschehen. Mit dem flexiblen Gateway von MuleSoft können Sie Ihren Service verwalten, ohne sich um Größe, Cloud oder Sprache kümmern zu müssen.
MuleSoft bietet ein Control Panel, mit dem Sie Ihre APIs, Microservices und Benutzer analysieren, verwalten und sichern können. Entwickeln Sie die neuesten Geschäftsmodelle und Einnahmequellen, um den Wert Ihrer APIs zu maximieren, indem Sie sich auf die Akzeptanz, die API-Communities und die Konsumreise konzentrieren.
Darüber hinaus bietet MuleSoft Anypoint Exchange, um Ihre APIs mit einer einzigen Wahrheitsquelle zu integrieren und so Ihr Unternehmen voranzutreiben. Mit Anypoint API Governance können Sie die API-Verwaltung in Betrieb nehmen, ohne Entwicklungskosten in Kauf nehmen zu müssen.
Erstellen Sie ein Konto bei MuleSoft und nutzen Sie die kostenlose Testversion, um die Funktionalitäten zu erkunden.
Boomi
Denken Sie nicht an Komplexität, wenn Sie den Boomi API Management Service haben, der Ihr Unternehmen bei der effektiven Bereitstellung, Verwaltung und Sicherung Ihrer APIs unterstützen kann.
Boomi API Management kann den gesamten Lebenszyklus der APIs auf jeder Plattform verwalten. Damit können Sie Ihre APIs konfigurieren und die Integrationen einfach implementieren. Es verfügt über eine intelligente und einfach zu bedienende Benutzeroberfläche, die mit Hilfe des API Proxy jederzeit Daten für Ihr Unternehmen verfügbar macht.
Veröffentlichen, kontrollieren und steuern Sie APIs, egal ob in der Cloud, am Edge oder vor Ort, und verwalten und kontrollieren Sie den Datenzugriff effizient. Mit Boomi können Sie Omnichannel-Erlebnisse über soziale, IoT- und mobile Netzwerke hinweg schaffen. Über das API-Entwicklerportal können Sie von Ihren bestehenden Anwendungen aus ganz einfach auf Daten zugreifen.
Boomi bietet unendlich viele Funktionen, wie z.B. Mediation, Versionierung, Engagement, Authentifizierung, Richtlinienverwaltung, Überwachung und Anwendungsmanagement. Sie können je nach Bedarf verschiedene API-Versionen pflegen und die richtigen Aktionen dafür sicherstellen. Außerdem können Sie damit APIs mit Authentifizierungssystemen von Drittanbietern bereitstellen.
Durch die Integration mit einem einfachen Assistenten, Boomi AtmoSphere, können Sie APIs leicht entwerfen und verwalten.
Nutzen Sie eine 30-tägige Testversion, um Boomi von Grund auf zu verstehen und seine Funktionen zur Verwaltung von APIs zu erkunden.
Was ist ein API-Gateway?
Ein API-Gateway ist ein wichtiges Konzept in der Architektur eines Microservices. Es bildet einen Einstiegspunkt für externe Clients (alles, was nicht Teil des Microservice-Systems ist). Es handelt sich um eine Komponente, die als Einstiegspunkt für eine Anwendung dient.
Mit anderen Worten: Ein API-Gateway ist ein API-Verwaltungsserver, der über Informationen zu Endpunkten verfügt. Er ist außerdem in der Lage, Authentifizierung, Ratenbegrenzung, Lastausgleich und mehr durchzuführen.
Um sich ein besseres Bild von einem API-Gateway zu machen, müssen wir wissen, warum ein API-Gateway unerlässlich ist.
Warum brauchen wir ein API-Gateway?
Um die Notwendigkeit eines API-Gateways zu verstehen, lassen Sie uns einen Anwendungsfall einer E-Commerce-Anwendung besprechen.
Fallstudie
Betrachten wir eine Fallstudie einer komplexen Seite (z.B. einer Produktseite) einer E-Commerce-Anwendung. Wenn wir uns die unten abgebildete Seite eines Amazon-Produktangebots ansehen, sehen wir, dass diese Seite eine Vielzahl von Informationen bereitstellen muss.
Lassen Sie uns zur Veranschaulichung alle Microservices auflisten, die wir für die Darstellung der oben genannten Seite benötigen könnten.
Nehmen wir an, dass Produktsuche, Inventar, Versand, Bewertung und Rezensionen, Empfehlungsmaschine, Händler sowie Finanzen und Versicherung die verschiedenen sieben (7) Microservices sind, die für die Darstellung der oben genannten Seite verwendet werden.
P.S.: Die obigen sieben (7) Microservices sind nur eine Annahme, um das Konzept des API-Gateways zu erklären. In Wirklichkeit könnte Amazon eine andere Anzahl von Microservices haben.
Das Problem
Da diese Microservices separat auf einem anderen Server bereitgestellt wurden, müssen mindestens sieben (7) Aufrufe für eine einzige Seite erfolgen, wenn ein Client auf diese Services zugreifen möchte.
Aber ist das wirklich ein guter Ansatz?
Ich glaube nicht, dass es ein empfehlenswerter Ansatz ist, denn wir müssen sieben verschiedene Aufrufe machen, was sich definitiv auf die Leistung, den Ressourcenverbrauch, die Ladezeit usw. auswirken würde. Außerdem ist der Client eng mit allen Diensten gekoppelt. Angenommen, wir müssen die Microservices Reviews und Rating in zwei verschiedene Dienste aufteilen, müssen wir den Client-Code aktualisieren. Der Client muss einen Aufruf tätigen, um Bewertungen abzurufen, und einen Aufruf, um Bewertungen abzurufen, was wirklich nicht der beste Weg ist, damit umzugehen.
Die Lösung
Was ist also der empfohlene Ansatz?
Es ist ein API-Gateway.
Bei diesem Ansatz haben wir eine Schicht zwischen dem Client und den Microservices, die wir API-Gateway nennen. Es handelt sich dabei um einen Frontdienst für alle Microservices. Wenn nun ein Client auf die Microservices zugreifen möchte, muss er das API-Gateway aufrufen. Das API-Gateway wiederum ruft alle Microservices an und erhält die Antwort, die wir benötigen. Dieser Prozess wird als API-Komposition bezeichnet.
Kurz gesagt: Ein API-Gateway sitzt zwischen dem Client und den Microservices und fungiert als Gateway für alle Microservices.
Die Verwendung eines API-Gateways ist in vielerlei Hinsicht von Vorteil.
Vorteile eines API-Gateways
API-Gateways helfen uns bei der Implementierung von A/B-Tests, beim Caching, bei der Verwaltung von Zugriffskontingenten, bei der Überwachung des API-Zustands, bei der API-Versionierung, beim Testen von Chaos-Affen, bei der Monetarisierung und vielem mehr. Lassen Sie uns auf einige der folgenden Vorteile eingehen.
Sicherheit 🛡️
Jedes Mal, wenn ein API-Aufruf erfolgt, muss er über öffentliche IP-Adressen auf die Dienste zugreifen. Dies birgt Risiken.
Durch den Einsatz von API-Gateways kann auf diese Microservices nur über private IP-Adressen zugegriffen werden. Dies führt zu einer sichereren Art der Datentransaktion. Außerdem schützt die Verwendung von API Gateways die Daten vor bösartigen und DDoS-Angriffen.
Um die Sicherheit zu gewährleisten, ist ein TLS-Zertifikat erforderlich. API Gateway kümmert sich darum, indem es alle unsere APIs hinter einer einzigen statischen IP oder Domain hält und sie mit Schlüsseln, Token und IP-Filterung schützt.
Authentifizierung, Autorisierung und Fehlertoleranz 🔐
Es ist wichtig, die Authentifizierung und Autorisierung des Benutzers, der sich bei Anwendungen anmeldet, sicherzustellen. Das API Gateway erleichtert dies, indem es einen einzigen Einstiegspunkt darstellt und alle Anforderungen problemlos erfüllt. So erlaubt es nur autorisierten Benutzern, sich anzumelden, und authentifizierten Benutzern, Änderungen vorzunehmen, wodurch Fehlertoleranz erreicht wird.
Lastverteilung und Routing 🚏
Wenn mehrere Anfragen eingehen und der Datenverkehr zunimmt, hilft API Gateway, dies zu bewältigen. Dazu erstellt es mehrere Dienste und ruft sie wie ein Round-Robin-System auf. Es kann die Client-Anfragen auf der Grundlage der Benutzersegmentierung verwalten und weiterleiten. Auf diese Weise werden Inhalte in unterschiedlicher Qualität oder Geschwindigkeit für verschiedene Benutzer bereitgestellt.
Nehmen wir einen Anwendungsfall, in dem zwei Microservices für die Rückgabe von Bildern/Videos in niedriger Qualität und von Bildern/Videos in hoher Qualität für einen Desktop bzw. ein Mobiltelefon definiert sind.
In diesem Fall können wir ein API-Gateway so konfigurieren, dass es als Router fungiert. Wenn die Anfrage von einem Mobiltelefon kommt, leitet es diese Anfrage an den Dienst für Bilder/Videos in niedriger Qualität weiter, und wenn die Anfrage vom Desktop kommt, kann es an den Dienst für Bilder/Videos in hoher Qualität weiterleiten. Diese Weiterleitung kann auf der Grundlage von Kopfzeilen, Pfaden, Parametern usw. erfolgen.
Isolierung
Wenn ein oder mehrere Microservices zur Anwendung hinzugefügt oder entfernt wurden, werden wir den Client-Code nicht aktualisieren. In diesem Fall müssen wir einige Änderungen am API-Gateway selbst vornehmen, um einen Aufruf gemäß den aktualisierten Microservices zu tätigen.
Reverse Proxy und Caching
Das Servieren einer statischen Datei (HTML, JS, CSS, Schriftarten) durch einen Microservice ist nicht die beste Lösung. In diesem Fall können wir diese Dateien an den API-Gateway übertragen.
Ein API-Gateway kann alle statischen Inhalte aufbewahren und den Client direkt bedienen. Stellen Sie sich einen Dienst vor, der die Trends von Produkten auswertet, und diese Trends werden stündlich oder täglich berechnet. Sobald der Trend also für den Rest der Zeit berechnet ist, wird der Dienst wiederholt dieselbe Antwort zurückgeben. Für diesen Fall verfügt ein API-Gateway über eine Funktion namens Antwort-Cache, bei der wir eine URL und eine Schwellenzeit angeben können, für die die Antworten zwischengespeichert werden sollen.
Protokoll-Adapter
Wenn wir die Vorteile eines Protokolls wie Web Socket oder einer neueren Version von HTTP, d.h. HTTP/2, nutzen möchten und selbst wenn unsere Backend-Dienste nicht bereit oder nicht kompatibel mit HTTP/2 oder Web Socket sind, kann ein API-Gateway die Verantwortung für die Konvertierung eines neueren in ein älteres Protokoll übernehmen. Es kann als Protokolladapter fungieren.
Fazit
Sobald Ihre API fertig ist, sollten Sie nicht vergessen, sie zu überwachen und zu sichern.
Die obigen Ausführungen sollten Ihnen einen Eindruck von den verfügbaren API-Gateway- und Verwaltungslösungen vermitteln. Wenn Ihr Budget knapp bemessen ist, können Sie es mit Open-Source versuchen. Am besten installieren Sie einige von ihnen, um zu sehen, was für Sie funktioniert.