APISIX ermöglicht Netzwerk für einen großen CDN-Cloud-Dienstleister
January 31, 2023
Überblick
Über UPYUN
UPYUN, ein führender chinesischer Anbieter von Unternehmens-Cloud-Diensten, spezialisiert sich auf szenariobasierte CDN-Lösungen (Content Delivery Network). Mit 10 Datenverarbeitungszentren, über 1000 nationalen CDN-Knoten, fast 100 globalen CDN-Knoten, 40.000 Servern und 10 TB reservierter Bandbreite bietet UPYUN sichere Lösungen für verschiedene Szenarien und verarbeitet täglich mehr als 150 Milliarden Anfragen.
Herausforderungen
-
UPYUN stand vor der Herausforderung, den Datenverkehr mit Kong zu verwalten, der als Gateway für das öffentliche Netzwerk diente.
-
Beim Ingress-Controller gab es Probleme mit Ingress-Nginx, darunter komplexe Komponentenabhängigkeiten, schlechte Portierbarkeit und schwache semantische Fähigkeiten, was die Wartung des Gateways erschwerte.
Ergebnisse
-
APISIX zeichnet sich durch die Handhabung des Datenverkehrs aus und erfüllt die Anforderungen für Backup und Verkehrslast durch seine dynamische Routing-Fähigkeit. UPYUN hat auch die Komponenteneinheitlichkeit mit Hilfe von APISIX verbessert, was zu einer gesteigerten Effizienz bei der Verkehrsverarbeitung und Protokollierung führt.
-
Durch die Verwendung von APISIX-Plugins hat UPYUN die erfolgreiche Implementierung der Mitarbeiterauthentifizierung und die Integration mit Lark erreicht, wodurch die Funktionalität seines Gateways für das öffentliche Netzwerk verbessert wurde.
-
APISIX hat die Überwachung und Gesundheitsprüfungen für UPYUNs System durch die Unterstützung von Prometheus und SkyWalking vorangetrieben.
Hintergrund
Geschäftsmerkmale von UPYUN
Die Gateways sind unverzichtbar im Geschäftsökosystem von UPYUN. Sie können verschiedene Dienste koordinieren, optimieren und den reibungslosen Betrieb sicherstellen, wodurch UPYUN effiziente, sichere und stabile Lösungen bietet. Daher arbeitet UPYUN kontinuierlich an der Verbesserung seiner internen Gateway-Architektur.
Geschäftsszenarien von UPYUN
Intern verwendet UPYUN APISIX als Gateway für das öffentliche Netzwerk und als Ingress-Controller.
-
Das Gateway für das öffentliche Netzwerk konzentriert sich auf die Verarbeitung von Internetdatenverkehr und dient als Gateway für externe Dienste.
-
Der Ingress-Controller spezialisiert sich auf die Verwaltung des externen Zugriffs auf Dienste innerhalb des Kubernetes-Clusters und ermöglicht durch die Konfiguration von Ingress-Ressourcen flexibles Routing und Kontrolle des Datenverkehrs.
Probleme vor der Verwendung von APISIX
Vor der Einführung von APISIX verwendete UPYUN Kong als Gateway für das öffentliche Netzwerk und Ingress-Nginx als Ingress-Controller. Allerdings stieß UPYUN schnell auf mehrere Probleme.
-
Hohe Belastung der Datenbankverbindungen: Die Verbindung zur PostgreSQL-Datenbank innerhalb der Kong-Architektur bei UPYUN kann zu einer erheblichen Anzahl von Verbindungen führen, was die Datenbankleistung beeinträchtigen kann.
-
Komplexität bei der Steuerung des Verbindungssystems: Trotz der Hinzufügung von Proxys auf der Vorderseite steht UPYUN vor Herausforderungen bei der effektiven Verwaltung des Verbindungssystems während Systemupdates oder Neustarts, was die Systemwartung erschwert.
-
Betriebliche Komplexität mit Ingress-Nginx: Ingress-Nginx stellt UPYUN vor Herausforderungen bei der Plugin-Entwicklung aufgrund komplexer Abhängigkeiten, was die Portierbarkeit behindert und die Komplexität in Entwicklung und Wartung erhöht. Zudem weist es Schwächen in den semantischen Fähigkeiten auf, was die Flexibilität für komplexe Geschäftsszenarien beeinträchtigt. Die Notwendigkeit eines Reloads bei jeder Änderung der Ingress-Regeln führt zu unfreundlichen Aspekten, insbesondere für Szenarien, die auf persistente Verbindungen angewiesen sind.
Bei der Bewältigung der Komplexität der Wartung bestehender Logik stellten diese Probleme UPYUN vor eine erhebliche Herausforderung. Folglich begann das Team mit der Suche nach effizienteren und fortschrittlicheren Alternativen in Gateways, um die betriebliche Effizienz zu steigern.
Warum UPYUN APISIX gewählt hat
Erhöhte Flexibilität mit robustem Plugin-Architektur
Durch die Nutzung des Plugin-Systems von Apache APISIX hat UPYUN eine Suite interner Plugins entwickelt, darunter Funktionen wie die Validierung des internen Berechtigungssystems und präzise Rate Limiting. Diese strategische Initiative hat dem Unternehmen nicht nur eine anpassungsfähigere Funktionsanpassung ermöglicht, sondern auch vielfältige interne Unterstützung in die Gateway-Cluster integriert.
Hervorragende Stabilität
Im Bereich der Cloud-basierten Operationen hat Stabilität Priorität, insbesondere für kleinere Unternehmen oder solche mit begrenzten Betriebsteammitgliedern. Die Wahl von APISIX als Gateway-Lösung gewährleistet nicht nur ein stabiles Benutzererlebnis für externe Benutzer, sondern verwaltet auch effektiv die Betriebskosten der internen Geschäftsbereitstellung.
Unterstützende Open-Source-Community
Für das UPYUN-Technikteam ist die Entscheidung, ob ein Gateway Open Source ist, ein entscheidender Faktor. APISIX, als Open-Source-Lösung, nutzt die Unterstützung seiner lebendigen Community, um schnelle Reaktionen und Lösungen für gemeldete Fehler zu gewährleisten.
Beeindruckende Skalierbarkeit
Im Gegensatz zu Closed-Source-Software bietet APISIX eine bemerkenswerte Skalierbarkeit, die Entwicklern eine nahtlose Anpassung und Integration ermöglicht. Die Mehrsprachen-Erweiterung von APISIX ermöglicht es UPYUN beispielsweise, zusätzliche Funktionen zu entwickeln, die auf ihre Geschäftsanforderungen im Kontext der Geschäftserweiterung zugeschnitten sind. Diese Funktion steigert nicht nur die Entwicklungseffizienz von UPYUN erheblich, sondern bringt auch größere Bequemlichkeit für nachfolgende Funktionsiterationen und Wartung.
Nahtlose Integration und vereinfachte Anpassung
UPYUN hat Ingress-Nginx in bestimmten Kubernetes-Clustern integriert. Ohne ein Plugin-System in Ingress-Nginx zuvor, haben sie spezifische Plugins angepasst. Mit einer bemerkenswerten funktionalen Überschneidung zwischen Apache APISIX und NGINX in den Gateways der internen Rechenzentren und containerisierten Umgebungen, ist UPYUN bereit, alle zuvor verwendeten Ingress-Nginx-containerisierten Gateways durch den Apache APISIX Ingress Controller zu ersetzen. Dieser Schritt zielt darauf ab, die Komponenten auf Gateway-Ebene zu harmonisieren und potenzielle Redundanzen in zukünftigen Entwicklungs- und Betriebsbemühungen zu mindern.
Verbesserte Reload-Unterstützung
Der APISIX Ingress Controller bietet Reload-Unterstützung, was die betriebliche Effizienz auf ein neues Niveau hebt. Diese Funktion ermöglicht dynamische Updates der Konfigurationen ohne Dienstunterbrechungen, was eine schnelle Bereitstellung und flexible operative Manöver ermöglicht. Das Ergebnis ist eine erhebliche Steigerung der betrieblichen Effizienz, die die Systemwartung vereinfacht und beschleunigt.
Implementierung von APISIX
Die aktuelle interne Gateway-Architektur von UPYUN ist im folgenden Diagramm dargestellt. Externer Datenverkehr wird zunächst über Apache APISIX geleitet, dann über APISIX an den APISIX Ingress Controller weitergeleitet und erreicht schließlich die Backend-Dienste für die weitere Geschäftsverarbeitung.
Gateway für das öffentliche Netzwerk
Verkehrskontrolle
Das Gateway für das öffentliche Netzwerk fungiert als primärer Eingang für externen Datenverkehr und trägt eine erhebliche Verantwortung, die eine präzise Kontrolle und Verwaltung jedes eingehenden Datenflusses in das interne Rechenzentrum erfordert. In diesem entscheidenden Aspekt hat APISIX UPYUN eine Reihe von Verkehrskontroll-Diensten durch seine leistungsstarken Funktionen geboten.
Zunächst hat das APISIX-Gateway den Datenverkehr durch die Handhabung des API-Zugriffs von CDN-Edge-Knoten verwaltet. Diese Unterstützung hat nicht nur zur Optimierung der Leistung der CDN-Knoten beigetragen, sondern auch die Grundlage für die nachfolgende Verkehrsverwaltung gelegt. Darüber hinaus hat APISIX geschickt den Datenverkehr im Zusammenhang mit den statischen Seiten der offiziellen Website und dem technischen Support verarbeitet, was seine vielseitigen Verkehrskontrollfähigkeiten unterstreicht. Dieser gezielte Ansatz zur Verkehrssteuerung hat UPYUN befähigt, flexibel auf verschiedene Zugriffsanforderungen zu reagieren und letztendlich die Gesamteffizienz des Systems zu steigern.
Identitätsauthentifizierung
Plugins spielen eine zentrale Rolle innerhalb von UPYUN, insbesondere im Kontext des Mitarbeiterzugriffs auf die interne Plattform. Derzeit durchlaufen Mitarbeiter die Authentifizierung mit Methoden wie E-Mail und Lark. Dank des robusten openid-connect
-Plugins von Apache APISIX wurde eine nahtlose Integration mit diesen Plattformen erreicht, was eine bequeme Authentifizierung der Mitarbeiteridentitäten ermöglicht. Diese innovative Anwendung hat die leistungsstarken Fähigkeiten der APISIX-Plugins deutlich demonstriert und UPYUN eine effiziente und einheitliche Identitätsauthentifizierungslösung für den Zugriff auf die Managementplattform geboten.
Intelligente Koordination und Sicherheitsschutz
In spezifischeren Szenarien hat UPYUN das openid-connect
-Plugin in Verbindung mit dem serverless-post-function
-Plugin genutzt, um eine intelligente Koordination mit der Feishu-Anwendung zu erreichen. Durch die gemeinsame Aktion dieser Plugins wurden relevante Benutzerinformationen wie Benutzername, E-Mail oder die eindeutige Kennung innerhalb von Lark an den Dienst weitergeleitet, nachdem sie das Gateway für das öffentliche Netzwerk passiert hatten. Sobald das Gateway die relevanten Kennungsinformationen erhält, leitet es diese effizient an den Server weiter, wodurch Funktionen wie Benachrichtigungen und Erwähnungen in Lark ermöglicht werden. Bemerkenswert ist, dass während dieses Prozesses das consumer-restriction
-Plugin auch spezifische Berechtigungseinschränkungen für Benutzer auferlegen kann, was die Gesamtsicherheit und Kontrollierbarkeit des Systems erhöht.
Ingress-Controller
Interne Architekturverschiebung
Nach der Integration des Apache APISIX Ingress Controllers zeigt die interne Architektur von UPYUN nun die folgende Struktur.
Im Gegensatz zum zuvor erwähnten Ingress-Nginx-Framework wurde die grundlegende Datenebene durch einen Apache APISIX-Cluster ersetzt. Der übergeordnete Controller überwacht aktiv Änderungen im API-Server und verteilt dann Konfigurationsressourcen über alle Knoten des Apache APISIX-Clusters durch etcd.
Ein entscheidender Unterschied zeigt sich in der Fähigkeit von Apache APISIX, dynamische Route-Änderungen vorzunehmen, was es von der Ingress-Nginx-Konfiguration auf der rechten Seite unterscheidet. In Apache APISIX konvergiert der gesamte eingehende Geschäftsverkehr an einem einheitlichen Ort, wobei die Routenauswahl durch Lua-Code ausgeführt wird. Diese Effizienz führt zu einem vereinfachten und leicht verwaltbaren Code-Deployment. Im Gegensatz dazu ist die nginx.conf-Konfigurationsdatei auf der rechten Seite für Ingress-Nginx komplex und erfordert einen Reload bei jeder Ingress-Änderung.
Dynamisches Routing und deklarative Konfiguration
Durch die Nutzung der dynamischen Routing-Fähigkeit von Apache APISIX hat der Apache APISIX Ingress Controller seine Funktionen effektiv implementiert. Seine Hauptaufgabe besteht darin, Ressourcenänderungen innerhalb des APIServers zu überwachen, sorgfältige Datenstrukturtransformationen, Validierungen und die Berechnung des entscheidenden DIFFs durchzuführen. Der letzte Schritt besteht darin, diese Änderungen auf die Apache APISIX Admin API anzuwenden. Darüber hinaus führt der Apache APISIX Ingress Controller eine Hochverfügbarkeitslösung direkt durch den Kubernetes-Leader-Election-Mechanismus ein, wodurch externe Komponenten überflüssig werden.
In Bezug auf die deklarative Konfiguration hat UPYUN die CRD-Ressource gewählt, die für ihre robuste Semantik geschätzt wird. Dieser strukturierte Datenkonfigurationsansatz ermöglicht die Implementierung jeder von Apache APISIX unterstützten Fähigkeit.
Erfolge nach der Verwendung von APISIX
Verbesserung der Verkehrsverwaltung
Apache APISIX hat die Effizienz der Verkehrsverarbeitung von UPYUN erheblich gesteigert. Seine robusten Backup-Mechanismen und herausragenden Fähigkeiten zur Handhabung von Verkehrslasten gewährleisten die Stabilität von UPYUN, insbesondere bei der Bewältigung großer Datenverkehrsmengen. Durch präzise Verkehrskontrolle bewältigt APISIX effektiv die Herausforderungen im Zusammenhang mit Backup und Verkehrsverwaltung und bietet UPYUN zuverlässige Geschäftsunterstützung sowie eine Optimierung der Systemleistung.
Vereinfachung der Integration und Authentifizierung
APISIX zeichnet sich durch Identitätsauthentifizierung und Plugin-Integration aus. Mit dem openid-connect
-Plugin unterstützt APISIX effizient verschiedene Authentifizierungsmethoden und bietet UPYUN eine effektive Identitätsauthentifizierungslösung. Die kombinierte Funktionalität von Plugins wie serverless-post-function
und consumer-restriction
ermöglicht eine intelligente Datenübertragung und robuste Zugriffskontrolle, was die Gesamtintegrationsfähigkeiten des Systems erheblich verbessert.
Steigerung der Effizienz bei der Protokollverarbeitung
In Bezug auf die Protokollverarbeitung hat UPYUN intern mehrere Apache APISIX-Cluster implementiert, um eine einheitliche Nutzung über Rechenzentrums-Gateways und Container-Gateways sicherzustellen. Diese Kohärenz schafft eine standardisierte Logik für die nachfolgende Protokollverarbeitung und -nutzung. Bemerkenswert ist die robuste Funktionalität des Protokoll-Plugins von Apache APISIX. Intern hat UPYUN den Kafka-Logger
gewählt, ein Plugin, das benutzerdefinierte Protokollformate unterstützt.
Optimierung der Überwachung und Gesundheitsprüfungen
Für die Überwachung verwendet UPYUN Tools wie Prometheus
und SkyWalking
, wobei Prometheus
die bevorzugte Option ist. Als grundlegender Proxy kann Apache APISIX den Statuscode und die Anfragen der Anwendung überwachen.
Zusammenfassung
Als führender Akteur im Bereich der CDN-Cloud-Dienste hat UPYUN Apache APISIX in seine Infrastruktur integriert, insbesondere in das Gateway für sein öffentliches Netzwerk und den Ingress-Controller. Das robuste Plugin-System und die herausragenden Fähigkeiten zur Verkehrsverwaltung von APISIX haben eine wichtige Rolle bei der erheblichen Verbesserung der Betriebsqualität und -effizienz für UPYUN gespielt.
In Zukunft erwartet UPYUN eine weitere Zusammenarbeit mit APISIX, um szenariobasiertes CDN zu stärken und eine Reihe von Diensten wie Cloud-Speicher, Cloud-Verarbeitung, Cloud-Sicherheit und Verkehrsmarketing anzubieten.