Nutzen Sie Amazon für das Ökosystem und das Wachstum von Apache APISIX

Chao Zhang

Chao Zhang

October 26, 2022

Ecosystem

Autor Chao Zhang ist ein Apache APISIX PMC-Mitglied sowie ein technischer Experte bei API7.ai. Er ist der Produktleiter von API7 Cloud und ein Open-Source-Enthusiast. Dieser Artikel fasst die Inhalte zusammen, die Chao auf dem "AWS Summit Greater China 2022" präsentiert hat.

Apache APISIX

Im Jahr 2019 mieteten zwei Software-Ingenieure ein kleines Büro, entwickelten ein API-Gateway-Projekt von Grund auf, machten es Open Source und spendeten es an die Apache Software Foundation. Das Projekt, APISIX, wurde später ein Top-Level-Apache-Projekt und das beliebteste Open-Source-API-Gateway-Projekt mit einer aktiven Community und schnellem Wachstum. Die beiden Ingenieure, die API7.ai gründeten, werden nun von vielen Gleichgesinnten aus der ganzen Welt unterstützt, die weiterhin zu Apache APISIX beitragen und es zu einem leuchtenden Stern im Bereich des API-Managements machen.

Ultimative Leistung & reichhaltige Erweiterungen

APISIX hatte von Anfang an hohe Leistungsanforderungen als Cloud-natives API-Gateway. Daher sind die unmittelbarsten Eindrücke der Benutzer bei der Verwendung von Apache APISIX hohe Leistung und niedrige Latenz. Gleichzeitig verfügt APISIX über umfangreiche Fähigkeiten zur Verkehrssteuerung. Daher wird APISIX oft für Canary Releases und Blue-Green-Deployments verwendet. Darüber hinaus verfügt APISIX auch über eine Authentifizierungsfunktion in Bezug auf die API-Sicherheit und unterstützt verschiedene Authentifizierungsmethoden wie JWT Auth, HMAC Auth, Open ID Connect-Protokoll usw.

Außerdem ist APISIX freundlich gegenüber Entwicklern, die an Erweiterungen und individuellen Entwicklungen arbeiten. Abgesehen davon, dass APISIX selbst Lua unterstützt, können Sie auch den APISIX Plugin Runner verwenden, um Hochsprachen wie Java, Go, Python und WebAssembly zu nutzen, um APISIX zu erweitern. Mit der Unterstützung von Multi-Sprache-Plugins können Sie individuelle Entwicklungen ohne zusätzliche Lernkosten durchführen.

Vielfältiges Ökosystem & aktive Open-Source-Community

APISIX hat viele Aktivitäten in Bezug auf das Ökosystem und hat integrierte Entwicklungen basierend auf vielen verschiedenen Projekttypen durchgeführt. Das Hauptrepository von APISIX verfügt über mehr als 70 verschiedene Plugins.

Sie können eine schnelle Integration und Bereitstellung mit Plattformen wie AWS durch die Verwendung dieser Plugins erreichen, und sie können auch die zusätzlichen Entwicklungskosten der Benutzer während der Nutzung reduzieren.

Gleichzeitig liegt die Anzahl der monatlichen Mitwirkenden in der APISIX-Community normalerweise bei etwa 30, was eine sehr aktive Zahl ist. In den APISIX-Github-Repositories können Sie auch viele Community-Benutzer sehen, die bei der Beantwortung und Lösung von Problemen, PRs und Fragen in den Diskussionen helfen. Die positive Community-Umgebung beschleunigt auch Produktupgrades und bereichert das Ökosystem.

Daher hat APISIX bereits Unternehmenskunden weltweit, wie Airwallex, Sina Weibo, European Factory Platform, NASA und Nayuki, usw. Darüber hinaus ist APISIX dank der Nutzung und Beiträge von immer mehr Unternehmen bekannter geworden. Derzeit haben die Mitwirkenden von APISIX 300 überschritten, und die Gesamtzahl der Mitwirkenden an den APISIX-bezogenen Open-Source-Projekten im Laufe der Zeit hat 500 überschritten.

github_contributors.PNG

Architektur-Upgrade

Auf der Ebene der Produktarchitektur verwendet APISIX das Datenebene + Steuerungsebene-Modell, wie im folgenden Bild gezeigt.

apisix_architecture.PNG

Die linke Seite ist APISIX selbst, das auch die Datenebene des gesamten API-Gateways ist und hauptsächlich den Geschäftsverkehr der Benutzer verarbeitet. Darüber hinaus bietet APISIX Dienstverwaltungsfunktionen wie Ratenbegrenzung, Lastausgleich usw. Die rechte Seite ist die Steuerungsebene des API-Gateways, die die Betriebskomponenten von APISIX steuert, einschließlich der mit der Beobachtbarkeit verbundenen Protokollierungskomponenten, um Betriebsstatusdaten zu sammeln. Gleichzeitig kann APISIX mit etcd und der Admin API den Benutzern helfen, verwandte Regeln zu konfigurieren, damit APISIX wie beabsichtigt betrieben werden kann.

multi_language_plugin_architecture.PNG

Wie bereits erwähnt, können Multi-Sprache-Plugins in die Architektur der Datenebene auf der linken Seite eingebettet werden. Beispielsweise können Benutzer Programmiersprachen wie C++ oder Rust verwenden, um APISIX über das wasm plugin-Modul in APISIX zu erweitern. Die rechte Seite zeigt, wie APISIX basierend auf dem Plugin Runner mit mehreren Sprachen erweitert werden kann. Es würde den sprachspezifischen Plugin Runner (wie den Java Plugin Runner) aufrufen, um Anfragen von APISIX über traditionelle Unix-Domain-Sockets auf RPC-Weise zu empfangen und APISIX bei der Verarbeitung dieses Verkehrs zu unterstützen.

APISIXs Erkundungen auf Amazon

Derzeit hat APISIX einige Erkundungen in Bezug auf Produkte und Leistung basierend auf Amazon durchgeführt.

Amazon Marketplace

apisix_amazon_market.PNG Hinweis: API7.ai ist auch als Zhiliu Technology bekannt

Wenn Sie APISIX im Amazon Marketplace suchen, werden Sie die oben genannten Ergebnisse sehen. Es ist seit 2021 auf der Plattform gelistet. Mit der oben genannten Software können Sie APISIX schnell auf allen Amazon EC2-Instanzen bereitstellen. Außerdem ist diese Software kostenlos, sodass Sie nur die EC2-Instanzgebühren zahlen müssen.

Diese Software führt eine APISIX- und eine etcd-Instanz in der EC2-Instanz aus. Daher ist sie eher für bestehende Amazon-Benutzer geeignet, wenn Sie APISIX direkt verwenden oder POC (Proof of Concept) verwenden möchten, um festzustellen, ob APISIX die Anforderungen Ihrer Zielszenarien erfüllt.

CDK APISIX

CDK ist ein Open-Source-Softwareentwicklungsframework, das von Amazon bereitgestellt wird und darauf abzielt, Benutzern zu helfen, die Cloud-Infrastruktur durch Programmierung zu manipulieren.

Der APISIX-Community-Mitwirkende Pahud Hsieh entwickelte cdk-apisix basierend auf CDK. Dieses Projekt ermöglicht es Benutzern, APISIX-Instanzen durch Programmier- und Automatisierungsmethoden zu erstellen. Im Gegensatz zu dem, was wir oben erwähnt haben, kann es APISIX direkt auf AWS Fargate bereitstellen. Daher können wir in einigen Szenarien, die Ereignisauslöser benötigen, automatische Bereitstellung und Zerstörung erreichen. Der gesamte Prozess erfordert keine manuelle Bedienung und wird auch reaktionsschneller.

aws-cdk.PNG

Basierend auf der oben genannten Architektur wird der Verkehr des Clients über Cloud ELB zu APISIX geleitet, und APISIX führt anschließend einige grundlegende Verarbeitungen durch, wie Authentifizierung, Ratenbegrenzung usw. Schließlich wird der Verkehr an die tatsächlichen Anwendungsinstanzen im Backend gesendet.

Durch die Verwendung der CDK-Methode können Benutzer Apache APISIX mit ihren vertrauten Programmiersprachen bereitstellen, und es kann die Attribute dieser Hochsprachen nutzen, um APISIX auf Amazon bequemer bereitzustellen. Gleichzeitig kann, wenn Sie eine Vorlagenkonfiguration der Bereitstellung abgeschlossen haben, diese kopiert und angepasst werden. Daher können Sie diese Vorlagenkonfiguration direkt verwenden, wann immer Sie sie in der Zukunft benötigen, um den Bereitstellungsprozess zu vereinfachen.

Amazon-Lambda-Plugin

Wenn Sie Lambda oder Serverless verwenden, um Anwendungen bereitzustellen, gibt es eine extrem kostengünstige Möglichkeit, die verwandten Projekte auszuführen, und sie kann sofortige Skalierung sowie einige andere Geschäftsszenarien erreichen. Bei dieser Art der Anwendungsbereitstellung benötigen wir normalerweise einen Ereignisauslöser, damit das API-Gateway zu einem Weg für den Ereignisauslöser wird.

Wenn der Benutzer das amazon-lambda-Plugin von APISIX im Routing konfiguriert, kann es den gesamten Verkehr an die vom Benutzer konfigurierten Lambda-Funktionsadressen umleiten. Die Lambda-Funktion verarbeitet diese Anfragen und sendet die Ergebnisse über APISIX an den Client zurück.

Dieses Plugin unterstützt auch Amazon IAM-Identifikation und Key Auth. In diesem Fall kann die im Backend bereitgestellte Lambda-Funktion besser mit APISIX integriert werden, ohne die Sicherheit zu opfern.

Verwandte Leistungstests

Im Mai 2022 wurden die AWS Graviton 3-Prozessoren offiziell veröffentlicht. Dank DDR5-Speicher bieten Graviton3-Prozessoren bis zu 25 % bessere Rechenleistung, bis zu 2x höhere Gleitkommaleistung und 50 % mehr Speicherbandbreite im Vergleich zu AWS Graviton2-Prozessoren; Graviton3-basierte Instanzen verbrauchen bis zu 60 % weniger Energie für die gleiche Leistung als vergleichbare EC2-Instanzen.

Kurz nach der Veröffentlichung der AWS Graviton3-Prozessoren führte APISIX einen vollständigen Regressionstest basierend auf den AWS Graviton3-Prozessoren durch, was bedeutet, dass Benutzer APISIX sicher auf den Graviton3-EC2-Instanzen verwenden können. Es wird keine Kompatibilitätsprobleme geben. Gleichzeitig haben wir auch Leistungstests auf der Familie der AWS Graviton-Prozessoren durchgeführt. Bezugnehmend auf die folgenden beiden Szenarien haben wir die Leistungstests auf AWS Graviton2- und AWS Graviton3-Prozessoren durchgeführt.

  • Einzelnes Upstream: In diesem Szenario verwenden wir nur ein einzelnes Upstream (ohne Plugins) und testen hauptsächlich die Leistung von APISIX im reinen Back-to-Source-Proxy-Modus.
  • Einzelnes Upstream + mehrere Plugins: In diesem Szenario verwenden wir ein einzelnes Upstream und zwei Plugins und testen hauptsächlich die Leistung von APISIX, wenn wir limit-count und prometheus aktivieren, die zwei leistungsintensive Kern-Plugins sind.

aws-graviton.PNG aws-graviton-plugin.PNG

Aus den obigen Bildern können wir ersehen, dass APISIX eine herausragende Leistung in Bezug auf Stabilität und Verkehrsverarbeitungsfähigkeit hat. AWS Graviton3-Prozessoren bieten bis zu 76 % bessere Leistung in IO-intensiven Rechen

Tags: