• Erledigen Sie die Anwendungssicherheit auf die richtige Weise! Erkennen, schützen, überwachen, beschleunigen und mehr…
  • API Gateway: Backend für Frontend

    Lassen Sie uns diskutieren, was API Gateway ist, warum es wichtig ist, eines zu haben und wie es APIs besser verwalten kann. Wir werden auch einige der besten Open-Source- und Manged-API-Gateways auf dem Markt untersuchen und auflisten.

    Was ist API Gateway?

    Ein API-Gateway ist ein wichtiges Konzept in der Microservices-Architektur. Es bildet einen Einstiegspunkt für externe Clients (alles, was nicht Teil des Microservice-Systems ist). Es ist eine Komponente, die als Einstiegspunkt für eine Anwendung fungiert.

    Mit anderen Worten, ein API-Gateway ist ein API-Verwaltungsserver, der Informationen zu Endpunkten enthält. Es ist auch in der Lage, Authentifizierung, Ratenbegrenzung, Lastausgleich und mehr durchzuführen.

    Um ein besseres Bild von einem API-Gateway zu erhalten, müssen wir wissen, warum ein API-Gateway unbedingt erforderlich ist.

    Warum brauchen wir API Gateway?

    Um die Notwendigkeit eines API-Gateways zu verstehen, diskutieren wir einen Anwendungsfall von a e-commerce Anwendung.

    Fallstudie

    Stellen Sie sich eine Fallstudie einer komplexen Seite (z. B. Produktseite) einer E-Commerce-Anwendung vor. Wenn wir uns die folgende Seite der Amazon-Produktliste ansehen, sehen wir viele Informationen, die von dieser bestimmten Seite gerendert werden müssen.

    Lassen Sie uns zur Veranschaulichung alle Microservices auflisten, die wir möglicherweise zum Rendern der obigen Seite benötigen.

    Geht davon Suchen Sie nach Produkt, Inventar, Versand, Bewertung und Bewertungen, Empfehlungs-Engine, Händlern sowie Finanzen und Versicherungen sind die verschiedenen sieben (7) Mikrodienste, die zum Rendern der obigen Seite verwendet werden.

    PS: Über sieben (7) Mikrodienste sind nur eine Annahme, um das API-Gateway-Konzept zu erklären. In Wirklichkeit könnte Amazon eine andere Anzahl von Microservices haben.

    Das Problem

    Da diese Mikrodienste separat auf einem anderen Server bereitgestellt wurden, wenn ein Client auf diese Dienste zugreifen möchte, müssen mindestens sieben (7) Aufrufe für eine einzelne Seite angefordert werden.

    Aber ist es wirklich ein guter Ansatz?

    Ich denke nicht, dass dies ein empfohlener Ansatz ist, da wir sieben verschiedene Anrufe tätigen müssen, was sich definitiv auf die Leistung, den Ressourcenverbrauch, die Ladezeit usw. auswirken würde. Der Client ist auch eng mit allen Diensten verbunden und nimmt an, wenn wir müssen trennen Sie die Bewertungen und Bewertung Microservices in zwei verschiedenen Diensten müssen wir den Client-Code aktualisieren. Der Kunde muss einen Anruf tätigen, um Bewertungen zu erhalten, und einen Anruf, um Bewertungen zu erhalten. Dies ist wirklich nicht der beste Weg, um damit umzugehen.

    Die Lösung

    Was ist der empfohlene Ansatz?

    Es ist ein API-Gateway.

    Bei diesem Ansatz haben wir eine Schicht zwischen dem Client und den Microservices, die als API-Gateway bezeichnet wird. Es ist ein nach vorne gerichteter Service für alle Microservices. Jetzt muss jeder Client, der auf die Microservices zugreifen möchte, das API-Gateway aufrufen. Jetzt ruft das API-Gateway wiederum alle Microservices auf und erhält die Antwort, die wir möglicherweise benötigen. Dieser Prozess wird als API-Komposition bezeichnet.

    Kurz gesagt, ein API-Gateway befindet sich zwischen dem Client und den Microservices und fungiert als Gateway für alle Microservices.

    Nicht nur das, sondern auch die Verwendung eines API-Gateways kommt uns in vielerlei Hinsicht zugute.

    Vorteile eines API-Gateways

    API-Gateways unterstützen uns bei der Implementierung von A / B-Tests, dem Caching, der Verwaltung von Zugriffskontingenten, der Überwachung des API-Zustands und der API-Versionierung. Chaos Affentest, Monetarisierung und vieles mehr. Lassen Sie uns einige der folgenden Vorteile ansprechen.

    Sicherheit 🛡️

    Jedes Mal, wenn ein API-Aufruf ausgeführt wird, muss er über öffentliche IP-Adressen auf die Dienste zugreifen. Dies birgt Risiken.

    Durch das Einschalten auf API-Gateways kann auf diese Mikrodienste nur über private IP-Adressen zugegriffen werden. Dies führt zu einer sichereren Art der Datentransaktion. Darüber hinaus schützt die Verwendung von API Gateway die Daten vor böswilligen und DDoS-Angriffen.

    Um die Sicherheit zu gewährleisten, a TLS-Zertifikat Wenn dies erforderlich ist, verarbeitet API Gateway alle diese APIs, indem alle unsere APIs hinter einer einzigen statischen IP-Adresse oder Domäne gespeichert werden, und hilft, sie mit Schlüsseln, Token und IP-Filterung zu schützen.

    Authentifizierung, Autorisierung und Fehlertoleranz 🔐

    Authentifizierung unterbrochen

    Es ist wichtig, die Authentifizierung und Autorisierung des Benutzers sicherzustellen, der sich bei Anwendungen anmeldet. Das API-Gateway macht es einfacher, da es ein einziger Einstiegspunkt ist und alle Anforderungen problemlos erfüllt. Somit können sich nur autorisierte Benutzer anmelden und authentifizierte Benutzer können Änderungen vornehmen, sodass die Fehlertoleranz erhöht wird.

    Lastausgleich und Routing 🚏

    Bei mehreren eingehenden Anfragen und steigendem Datenverkehr hilft API Gateway, sich darum zu kümmern. Dazu werden mehrere Dienste erstellt und auf ähnliche Weise aufgerufen Round-Robin. Es kann die Clientanforderungen basierend auf der Benutzersegmentierung verwalten und weiterleiten. Somit wird für verschiedene Benutzer eine unterschiedliche Qualität oder Geschwindigkeit des Inhalts bereitgestellt.

    Lastverteilung

    Stellen Sie sich einen Anwendungsfall vor, in dem zwei Mikrodienste für die Rückgabe von Bildern / Videos mit geringer Qualität und von Bildern / Videos mit 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 Anforderung von einem Mobiltelefon stammt, wird diese Anforderung an den Bild- / Videodienst mit geringer Qualität weitergeleitet, und wenn die Anforderung von kommt Auf dem Desktop kann ein qualitativ hochwertiger Bild- / Videodienst aufgerufen werden. Dieses Routing kann basierend auf Headern, Pfaden und Parametern usw. durchgeführt werden.

    Isolierung

    Wenn der Anwendung ein oder mehrere Microservices hinzugefügt oder entfernt wurden, wird der Clientcode nicht aktualisiert. In diesem Fall müssen wir einige Änderungen am API-Gateway selbst vornehmen, um einen Anruf gemäß den aktualisierten Microservices zu tätigen.

    Reverse Proxy und Caching

    Das Bereitstellen einer statischen Datei (HTML, JS, CSS, Schriftarten) durch einen Microservice ist nicht die beste Verwendung. In diesem Fall können wir diese Dateien auf das API-Gateway verschieben.

    Ein API-Gateway kann alle statischen Inhalte speichern und den Client direkt bedienen. Stellen Sie sich in ähnlicher Weise einen Service vor, der die Trendprodukte bewertet und diese Trends stündlich oder täglich berechnet. Sobald der Trend für den Rest der Zeit berechnet ist, gibt der Service wiederholt dieselbe Antwort zurück. In diesem Fall verfügt ein API-Gateway über eine Funktion namens Antwort-Cache, Hier können wir eine URL und eine Schwellenzeit angeben, für die die Antworten zwischengespeichert werden müssen.

    Protokolladapter

    Wenn wir ein Protokoll wie einen Web-Socket oder eine neuere Version von HTTP nutzen möchten, z. HTTP / 2Selbst wenn unsere Backend-Dienste nicht bereit oder nicht mit HTTP / 2 oder Web-Socket kompatibel sind, kann ein API-Gateway die Verantwortung für die Konvertierung eines neueren in ein älteres Protokoll übernehmen. Es kann als Protokolladapter fungieren.

    Lassen Sie uns das API-Gateway untersuchen.

    Vorname, Open-Source- und selbst gehostete Lösungen.

    Kong Gateway

    Kong-Gateway ist das beliebteste Open-Source-Cloud-native API-Gateway, das auf einem kompakten Proxy basiert. Es ist geschrieben in Lua Laufen mit Hilfe der Nginx. Es ist eine Vorlagen-Engine, die hilft, die Ereigniszeit zu beschleunigen. Es garantiert eine beispiellose Latenzleistung und Skalierbarkeit für alle unsere Microservice-Anwendungen, unabhängig davon, wo sie ausgeführt werden.

    Unternehmen mögen Nasdaq, Honeywell, Cisco, FAB, Expedia, Samsung, Siemens, . Yahoo Japan Verwenden Sie das Kong API-Gateway ausgiebig.

    Einige der von Kong angebotenen Funktionen sind:

    • Beglaubigung
    • Verkehrskontrolle
    • Analyse
    • Transformationen
    • Protokollierung
    • Serverlos
    • Erweiterbar mit Plugin-Architektur

    Kong wurde sehr gut Dokumentation . Integration.

    Sie können Kong nach Ihren Wünschen ausführen Cloud-Plattform.

    Apache APISIX

    Apache APISIX wurde ursprünglich bei China geboren ZhiLiu Technologie und ein späteres Stadium, es trat in den Apache-Inkubator ein und machte Open Source. Der Vizepräsident des Projekts, Ming Wengibt an, dass dieses API-Gateway verschiedene Herausforderungen löst, die durch Cloud-native und Microservices entstehen.

    Apache ApiSix wird von Unternehmen wie verwendet 360, HelloTalk, NetEase, TravelSkyund viele mehr.

    Apache APISIX basiert auf Nginx . usw., und es verfügt über dynamisches Routing und Plug-in-Hot-Loading, was besonders für die API-Verwaltung unter dem Microservice-System geeignet ist.

    Tyk

    Dick ist ein unternehmensfähiges Open-Source-API-Gateway. Sie haben die Möglichkeit, sich entweder selbst zu hosten oder zu verwalten.

    Im Folgenden finden Sie einige der sofort einsatzbereiten Funktionen von TYK.

    • Beglaubigung
    • Quoten & Ratenbegrenzung
    • Versionskontrolle
    • Benachrichtigungen und Ereignisse
    • APIs verspotten
    • Detaillierte Überwachung und Analyse
    • Der Abwärtskompatibilität verpflichtet
    • GraphQL sofort einsatzbereit

    TYK ist auch auf der erhältlich AWS-Marktplatz. Eine gute Wahl, wenn sich Ihr Anwendungsstapel in AWS befindet.

    Ocelot

    Ozelot ist ein .NET API-Gateway.

    Dieses Projekt zielt darauf ab, .NET zu verwenden, Microservices oder eine serviceorientierte Architektur auszuführen, die einen einheitlichen Einstiegspunkt in ihr System benötigt. Es funktioniert jedoch mit allem, was HTTP spricht, und kann auf jeder Plattform ausgeführt werden, die von ASP.NET Core unterstützt wird.

    Ocelot fungiert in einer bestimmten Reihenfolge als Middleware. Es manipuliert das HttpRequest-Objekt in einen durch seine Konfiguration angegebenen Zustand, bis es eine Middleware für den Request Builder erreicht. Es wird ein HttpRequestMessage-Objekt erstellt, mit dem ein Downstream-Service angefordert wird. Die Middleware, die die Anforderung stellt, ist das Letzte in der Ocelot-Pipeline. Die nächste Middleware wird nicht aufgerufen. Ein Middleware-Teil ordnet die HttpResponseMessage dem HttpResponse-Objekt zu und wird an den Client zurückgegeben.

    Ocelot bietet Standardfunktionen wie Routing, Authentifizierung, Ratenbegrenzung, Caching, Lastausgleich und mehr. Chunked Encoding, Weiterleiten eines Host-Headers und Swagger werden nicht unterstützt.

    Goku

    Goku API-Gateway ist ein Dachprojekt von EOLINK Inc. Es handelt sich um ein Golang-basiertes Microservice-Gateway, das dynamisches Routing mit hoher Leistung, Service-Orchestrierung, Mandantenfähigkeitsverwaltung, API-Zugriffskontrolle usw. ermöglicht.

    Goku bietet eine grafische Oberfläche und ein Plug-In-System, um die Konfiguration zu vereinfachen und bequemer zu erweitern. Neben den Standardfunktionen bietet Goku Clustering, Hot Updates, Alarmierung, Protokollierung usw.

    Express Gateway

    Express-Gateway ist aufgebaut auf Express.js. Express Gateway ist eine Reihe von Komponenten, die deklarativ auf Express aufbauen, um den Anwendungsfall des API-Gateways zu erfüllen. Die Leistung von Express Gateway wird durch das reichhaltige Ökosystem rund um die Express-Middleware genutzt.

    Unternehmen mögen Joyent, Linux Foundation, VIRICITI, Switch Media, Coozy, . musement nutzen das Express-Gateway ausgiebig.

    Es ist einfach, schnell und bietet alle grundlegenden Funktionen.

    Gloo

    Glo ist ein voll funktionsfähiges API-Gateway und Ingress Controller der nächsten Generation für Cloud-native Umgebungen. Es basiert auf Envoy Proxy, um Datenverkehr über Ihre Anwendungsdienste zu verbinden, zu sichern und zu steuern.

    Gloo unterstützt die Verbindung zu einer Vielzahl von Workloads, um dies zu sichern und zu verwalten, und ist in Bezug auf das Routing auf Funktionsebene außergewöhnlich. Es ist sowohl als Open Source als auch als Enterprise verfügbar. Die Enterprise-Version bietet Folgendes.

    • Entwicklerportal
    • WAF
    • Verhinderung von Datenverlust
    • Mehr Möglichkeiten zur Authentifizierung
    • Erweiterte Ratenbegrenzung und Multi-Cluster-Verwaltung

    KrakenD

    KrakenD ist ein Open-Source-API-Gateway mit ultrahoher Leistung. Die Kernfunktionalität besteht darin, eine API zu erstellen, die als Aggregator für viele Mikrodienste in einzelnen Endpunkten fungiert und das Schwergewicht automatisch für Sie erledigt: Aggregieren, Transformieren, Filtern, Dekodieren, Drosseln, Authentifizieren und mehr.

    Es bietet eine deklarative Möglichkeit, die Endpunkte zu erstellen. Es ist gut strukturiert und vielschichtig und offen für die Erweiterung seiner Funktionalität mithilfe von Plug-and-Play-Middleware, die von der Community oder intern entwickelt wurde.

    KrakenD behauptet, schneller zu sein als Kong und Tyk. Probier das aus Benchmarking-Ergebnisse.

    Fusio

    Verschmelzung ist ein API-Management-System, da es bei der Entwicklung tatsächlicher API-Endpunkte hilft (dh Daten aus einer Datenbank anfordern und transformieren). Es ist nicht auf Proxy-Anforderungen 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:

    • Monetisierung
    • Abonnementunterstützung
    • Generieren Sie eine OAI- und RAML-Schemaspezifikation
    • Dokumentation

    und andere Standard-API-Gateway-Funktionen.

    WSO2

    WSO2 ist eine API-Verwaltungslösung für den gesamten Lebenszyklus, die überall ausgeführt werden kann. Es kann vor Ort, in der Cloud oder auf hybride Weise bereitgestellt werden, wobei seine Komponenten auf mehrere Cloud- und On-Prem-Infrastrukturen verteilt und bereitgestellt werden können.

    Es umfasst ein Cloud-natives API-Gateway und bietet einen Kubernetes-Operator, mit dem rohe Microservices einfach in verwaltete APIs konvertiert werden können. API Manager lässt sich in Service-Meshes integrieren und bietet eine vollwertige Verwaltungsebene und Steuerungsebene für die Verwaltung, Überwachung und Monetarisierung von APIs und API-Produkten.

    Es unterstützt API-Publishing, Lifecycle-Management, Anwendungsentwicklung, Zugriffskontrolle, Ratenbegrenzung und Analyse in einem sauber integrierten System.

    WeiterLassen Sie uns die kommerziellen Plattformen erkunden.

    Apigee

    Apigee ist eine Cloud-übergreifende API-Verwaltungsplattform von Google Cloud.

    Apigee

    Es kommt in den folgenden Geschmacksrichtungen:

    • Apigee: Eine gehostete SaaS-Lösung, bei der Sie für das bezahlen, was Sie verwenden. Sie konzentrieren sich auf den Aufbau des Geschäfts und die Auslagerung der Verwaltung der Apigee-Umgebung an GCP.
    • Apigee Hybrid: Sie können APIs lokal, auf der Google Cloud Platform (GCP) oder in einer Mischung aus beiden verwalten.

    Apigee bietet ein End-to-End-API-Management mit Monetarisierung und integrierter Überwachung.

    Cloud Endpoints

    Ein weiterer von Google Cloud.

    Endpunkte ist eine leichtere Version von Apigee von Google Cloud. Entwickler können APIs in jedem Google Cloud-Backend am besten entwickeln, bereitstellen und verwalten. Es bietet seinen Clients Tools und Bibliotheken aus der App Engine-Anwendung. Es hilft beim Erstellen und Konfigurieren mit Google Codelab. Codelab hilft beim Ausführen der Beispiel-API mit App Engine in Java 8 und Maven 3.6.0.

    Google Cloud Endpoints lassen sich eng in andere Produkte wie Trace und Protokollierung für die Überwachung, Auth0 und Firebase für die Authentifizierung, GKE und App Engine für die automatisierte Bereitstellung usw. integrieren.

    Amazon API Gateway

    AWS bietet möglicherweise alles, was Sie zum Ausführen Ihrer Anwendungen benötigen.

    API auch.

    Amazon API-Gateway ist ein vollständig verwalteter Dienst, mit dem Entwickler APIs in jeder Größenordnung einfach erstellen -> veröffentlichen -> warten und sichern können. Es unterstützt beide RESTfulWebSocket APIs und ermöglicht es uns, eine bidirektionale Echtzeitkommunikation zu ermöglichen.

    Unten sehen Sie die bildliche Darstellung von Amazon, die zeigt, wie das Amazon API-Gateway funktioniert.

    Wenn Ihre Microservices oder API bereits auf AWS gehostet sind, ist eine Integration in Amazon API Gateway sinnvoll. Sie bieten 1 Million API-Aufrufe unter der KOSTENLOSEN Stufe an, was gut für Sie ist, um zu sehen, wie es funktioniert.

    Azure

    Warum Azure zurücklassen?

    Microsoft Azure Bietet End-to-End-API-Verwaltung in der Cloud, lokal oder hybride. Sie können die API-Verwaltung programmgesteuert über die REST-API und das 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-Front-End. Sie bieten alle Standardfunktionen, einschließlich der Monetarisierung. Probieren Sie die Plattform aus.

    Fazit

    Vergessen Sie nicht, sobald Ihre API fertig ist Monitor . Verbindung Sie. Wenn Sie sich noch in der Entwicklung befinden, sehen Sie sich diese an Werkzeuge um das Testen und Entwickeln der API zu beschleunigen.

    Das Obige soll Ihnen eine Vorstellung von den verfügbaren API-Gateway- und Verwaltungslösungen geben. Wenn Sie ein knappes Budget haben, können Sie Open Source ausprobieren. Am besten installieren Sie einige davon auf Ihrem Cloud-VM um zu sehen, was für Sie funktioniert.

    Viel Glück!