Finanzpraktiken zur Förderung der Cloud-Native-Transformation mit APISIX als API-Gateway
Yonghui Lu
January 13, 2023
Dieser Artikel basiert auf dem Vortrag von Yonghui Lu, Director of API Gateway bei Essence Securities, auf der ApacheCon Asia 2022. Yonghui teilte die Praxis von Essence Securities' cloud-nativem API-Gateway basierend auf Apache APISIX.
Überblick
Herausforderungen
- Die ursprüngliche Technologie-Stack war komplex und bestand aus NGINX, Spring Cloud Gateway und selbstentwickelten Systemen.
- Schwierigkeiten bei der Systemverwaltung aufgrund des fehlenden einheitlichen Technologie-Stacks.
- Doppelte Arbeit und hohe Kosten in verschiedenen Geschäftsprojekten.
Ziele
- Cloud-nativ und einfach in die Geschäftssysteme von Essence Securities integrierbar.
- Verwaltung der Bereitstellung, Überwachung und Alarmierung.
- Hohe Leistung und Skalierbarkeit.
- Funktionsanpassung und schnelle Integration in die Systeme.
- Ermöglichung leistungsstarker und umfangreicher Funktionen wie Traffic-Governance, Sicherheit, Protokollumwandlung, Autorisierung, Authentifizierung usw.
Ergebnisse
- Förderung der Traffic-Governance, sichere Verwaltung von Spitzentraffic.
- Verbesserte Entwicklungsleistung und Benutzerfreundlichkeit.
- Stärkung der cloud-nativen Entwicklung von Essence Securities.
- Verbesserte Datensicherheit und Berechtigungsverwaltung durch die Einrichtung unabhängiger Domänen.
Über Essence Securities
Essence Securities Co., Ltd. (Essence Securities) ist eines der führenden Wertpapierunternehmen in China. Seit seiner Gründung im Jahr 2006 ist Essence Securities schnell zu einem der Top 15 Wertpapierunternehmen Chinas geworden und hat sich durch die Bereitstellung hochwertiger Dienstleistungen für den privaten und öffentlichen Sektor einen Namen gemacht. Es verfügt über vier unabhängige Tochtergesellschaften und mehr als 120 Filialen in 25 großen Provinzen landesweit.
Die Kernaktivitäten von Essence Securities reichen von Wertpapierhandel, Wertpapierberatung, Finanzberatung im Zusammenhang mit Wertpapierhandel und -investitionen, Wertpapieremission und -sponsoring, Wertpapierinvestitionen und Vermögensverwaltung bis hin zu anderen von der China Securities Regulatory Commission genehmigten Geschäften.
Warum APISIX?
Seit 2021 hat Essence Securities begonnen, Anwendungen in die Cloud zu migrieren und einen API-Gateway-Plan durchzuführen. Im Jahr 2022 begann das Unternehmen mit der Einrichtung eines API-Gateways. Nach sorgfältiger Prüfung wählte Essence Securities Apache APISIX unter einer Vielzahl von API-Gateway-Lösungen aufgrund mehrerer entscheidender Vorteile:
Hochleistungsfähig
Wertpapierfirmen haben eine typische Eigenschaft: Es gibt Traffic-Spitzen während der Stoßzeiten. Apache APISIX ist das leistungsstärkste API-Gateway mit einem Single-Core-QPS von 23.000 und einer durchschnittlichen Verzögerung von nur 0,6 Millisekunden.
„Wir brauchen ein API-Gateway, das Spitzentraffic bewältigen kann und nicht unser nächster Engpass wird. Nachdem wir einige API-Gateways basierend auf OpenResty oder anderen Technologie-Stacks verglichen haben, hebt sich Apache APISIX mit seinem wettbewerbsfähigen Vorteil der hohen Leistung hervor und kann unsere Anforderungen an das API-Gateway erfüllen.“ sagte Yonghui.
Skalierbar und Entwicklerfreundlich
APISIX unterstützt seine Benutzer mit umfangreichen Funktionen. Bei Essence Securities werden Rate-Limiting, Circuit Breaker, Autorisierung und Authentifizierung sowie Canary Release am häufigsten verwendet.
Dafür hat Essence Securities einige Plugins selbst entwickelt, um die internen Anforderungen der Geschäftsgruppen zu erfüllen. APISIX unterstützt offiziell viele Programmiersprachen, darunter Java, Golang, Python und Lua. In Übereinstimmung mit der Community hat Essence Securities Lua gewählt. Dadurch war der gesamte Entwicklungsprozess sehr reibungslos. Essence Securities wird auch erwägen, die selbstentwickelten Plugins der Community zur Verfügung zu stellen.
Virtuelle Maschine und Container-Szenarien
Derzeit ist die Migration von Anwendungen in die Cloud eine entscheidende Strategie von Essence Securities. Es gibt jedoch einige Szenarien, die auf virtuellen Maschinen bereitgestellt werden.
„Wir müssen die Kompatibilität dieser beiden Zustände von Anwendungen berücksichtigen, wenn wir ein API-Gateway auswählen, obwohl unser Plan mehr auf Containern basiert. APISIX bietet viel Unterstützung in der Szenariokompatibilität.“ sagte Yonghui.
Cloud-native Entwicklungsrichtung
Apache APISIX ist hervorragend in der Unterstützung von cloud-nativen Szenarien, während Essence Securities mit dem cloud-nativen Trend Schritt hält. Mit APISIX, APISIX Ingress Controller und Service Mesh freut sich Essence Securities auch auf neue Fortschritte und Entwicklungen von APISIX.
Aktive Community
Als Open-Source-Projekt ist APISIX in seiner Community aktiv. Probleme können zeitnah diskutiert und gelöst werden. Im Jahr 2022 wurden fast 40 persönliche und Online-APISIX-Community-Events von APISIX veranstaltet. Menschen, die mit APISIX vertraut sind, sind von diesen Aktivitäten begeistert.
Wie profitiert Essence Securities von der Nutzung von APISIX?
Unten ist die Microservices-Architektur von Essence Securities dargestellt, die häufig in cloud-nativen Szenarien zu sehen ist.
-
Berechtigung und Authentifizierung: Vor der Nutzung von APISIX wurden die Berechtigung und Authentifizierung von mehreren Microservices kontrolliert, was zu viel wiederholter Entwicklungsarbeit führte.
-
Traffic-Governance: Essence Securities realisierte Traffic-Governance durch die Integration mit APISIX, wobei die typischsten Szenarien Rate-Limiting und Canary Release sind. Vor der Nutzung von APISIX wurden diese Funktionen durch NGINX realisiert, was die Änderung der Konfiguration und den Neustart der Knoten erforderte. Im Gegensatz dazu bringen APISIX’s sichtbares Dashboard und das Hot-Reloading-Feature erhebliche Vorteile für die Traffic-Governance von Essence Securities.
-
Canary Release: APISIX ist flexibel in Canary Release, das durch Portion und Traffic-Eigenschaften erreicht werden kann, einschließlich Anfrageheader, Anfrageparameter, Cookie usw. Zum Beispiel muss Essence Securities den Benutzerverkehr an Canary-Release-Version-Server durch Benutzer-ID weiterleiten.
-
Beobachtbarkeit: Früher musste Essence Securities die beobachtbare Verwaltung durch Metriken, Tracing und Protokolle realisieren. Es ist schwierig, eine mehrdimensionale Governance zu erreichen. Nach der Nutzung von APISIX kann jedoch durch die Aktivierung von drei Plugins mit einfachen Konfigurationen der gleiche Effekt erzielt werden. Was für ein bemerkenswerter Fortschritt!
Innovationen basierend auf APISIX
CAS Single Sign-On
Essence Securities verwendet CAS (Central Authentication Service) als Standard-Authentifizierungsmethode, die sich gut für die Platzierung der Authentifizierung auf dem Gateway eignet.
Essence Securities erweitert APISIX und fügt eine neue Funktion hinzu, CAS Single Sign-On. Es gibt mehrere Vorteile, dies zu tun.
Die Platzierung von CAS auf der Gateway-Ebene ermöglicht den einfachen Zugriff auf CAS und die Einführung seiner Funktionen. Zum Beispiel gibt es einheitliche Zertifizierungsdienste, um Benutzerinformationen abzurufen.
Darüber hinaus setzt CAS Benutzerinformationen in den Anfrageheader und bringt sie zum Upstream-Service, um den Anmeldezustand der Benutzer zu speichern. Daher ist es nicht notwendig, sich wiederholt in andere Systeme einzuloggen, was viel Zeit der Benutzer spart und die Benutzerfreundlichkeit verbessert.
authz - casbin Authentifizierungs-Plugin
Das APISIX authz-casbin
Authentifizierungs-Plugin ist ein Autorisierungs-Plugin basierend auf Lua Casbin. Dieses Plugin unterstützt leistungsstarke Autorisierungsszenarien basierend auf dem RBAC-Modell (Role-Based Access Control).
Es unterstützt die Speicherung in CSV-Dateien, die APISIX-Plugin-Konfiguration und die Speicherung von Richtlinien durch die Konfiguration von Metadaten.
Unten ist ein Beispiel.
Bei Essence Securities gibt es ein wichtiges Konzept: Domäne. Benutzer haben in verschiedenen Domänen unterschiedliche Berechtigungen. Zum Beispiel ist Mitarbeiter A ein Manager in Domäne A, aber möglicherweise nur ein Betrachter in Domäne B.
Bei der Definition von Anfragen, Richtlinien und Rollen sollte die Domäne angegeben werden. Daher hat Essence Securities Casbin angepasst, um dieses Szenario zu unterstützen. Das Plugin basiert auf dem Lua-Repository, das RBAC mit Domänen unterstützt. Folglich kann die oben genannte Anforderung nur durch den Aufruf der entsprechenden Schnittstelle des Lua-Repositorys erfüllt werden, was sehr einfach ist. Auf diese Weise kann die Datensicherheit und Berechtigungsverwaltung erheblich verbessert werden.
Beobachtbarkeit
APISIX bietet mehrdimensionale Überwachung wie Metriken, Tracing und Protokollsammlung. Alle diese Funktionen können durch einfache Konfigurationen erreicht werden.
Nach der Aktivierung des Prometheus-Plugins können Metriken wie Anfrageverzögerung, Bandbreite und die Übertragungsrate des HTTP-Statuscodes beobachtet werden. Diese können bei der Fehlerbehebung nützlich sein.
In Bezug auf Tracing-Analyse, wenn der Upstream mit Skywalking verbunden ist, kann das vollständige Aufruf-Tracing verfolgt werden, sobald Skywalking aktiviert ist.
Essence Securities plant, mehr Wert aus der Protokollsammlung zu ziehen. Das Pushen der Zugriffsprotokolle an Kafka kann Essence Securities helfen, Daten zu analysieren und zu zählen.
Zukunftspläne
Multi-Tenancy
Bisher hatten die Systeme von Essence Securities unabhängige Cluster, um Fehlerrisiken zu minimieren und Benutzerinformationen zu trennen. Apache APISIX verwendet etcd für sein Konfigurationszentrum, was für die aktuelle Phase geeignet ist.
Gemeinsame Cluster sind hilfreich bei der einheitlichen Ressourcenverwaltung und der Verbesserung der O&M-Effizienz. Essence Securities würde unabhängige Cluster mit Multi-Tenancy kombinieren, um seine Verwaltungsfähigkeiten zu erweitern.
Anwendungsmarktplatz
Essence Securities würde viele Microservices als Produkte für die Benutzer bereitstellen, wie Protokollierung, Überwachung, Alarmierungsplattformen und Datenzentren, deren zentralisierte Verwaltung durch APISIX realisiert werden kann.
Nach der Einführung der Gateway-Ebene wurden viele API-Gateway-Governance-Funktionen hinzugefügt, wie Authentifizierung, Autorisierung und Traffic-Governance.
Beobachtbare Datenüberwachung
Das APISIX-Plugin kafka-logger kann Essence Securities helfen, die Zugriffsprotokolle des Gateways an Kafka zu pushen. Kafka kann die Informationen bereinigen, formatieren und zählen und dann wertvollere Statistiken erhalten, wie die Top N der Aufrufe, abnormale Anfragen und Anfrageverzögerungen.
„Oder wir können die Verteilung der Statuscodes, die Verteilung der Client-IPs, Traffic-Statistiken, Traffic-Spitzen, Verteilung der Nebenzeiten, Erkennung von abnormalem Traffic usw. erhalten. Dieser Teil ist von großer Bedeutung für die Erweiterung der beobachtbaren Fähigkeiten unseres Systems.“ sagte Yonghui.
Essence Securities freut sich auch auf weitere Zusammenarbeit mit APISIX Ingress Controller und Service Mesh.
Benötigen Sie APISIX-Unterstützung?
Apache APISIX ist ein Open-Source-, dynamisches, skalierbares und leistungsstarkes cloud-natives API-Gateway für alle Ihre APIs und Microservices. Als von API7.ai an die Apache Software Foundation gespendetes Projekt ist APISIX zu einem Top-Level-Open-Source-Apache-Projekt herangewachsen.
Möchten Sie Ihre Entwicklung wie Essence Securities mit Zuversicht beschleunigen? Um die APISIX-Unterstützung zu maximieren, benötigen Sie API7. Wir bieten umfassende Unterstützung für APISIX und API-Management-Lösungen basierend auf Ihren Anforderungen!
Kontaktieren Sie uns jetzt: https://api7.ai/contact.