Integration von APISIX Declarative CLI mit API7 Enterprise

March 20, 2024

Products

Was ist ADC?

ADC (APISIX Declarative CLI), eingeführt von API7.ai, ist ein deklaratives Konfigurationstool, das darauf abzielt, Benutzern bei der Implementierung von GitOps-Funktionen in Nicht-Kubernetes-Umgebungen zu unterstützen. Benutzer können es nahtlos in ihre CI/CD-Pipelines integrieren, um den Lebenszyklus von APIs zu verwalten und so Updates und Releases zu erleichtern.

In der aktuellen Version wurde ADC mit APISIX integriert, um den Export und die Synchronisierung von APISIX-Ressourcen zu ermöglichen.

Was ist API7 Enterprise?

API7 Enterprise basiert auf APISIX und bietet erweiterte API-Management-Fähigkeiten, einschließlich Gateway-Gruppierung und Service-Versionierung, mit dem Ziel, eine umfassende API-Management-Lösung für Unternehmen bereitzustellen. Es gibt einige Unterschiede im Vergleich zu GitOps-basiertem API-Management, da Benutzer die Funktionen von API7 Enterprise problemlos über eine Web-UI-Oberfläche verwalten können.

Einige Benutzer wünschen sich sehnlichst, den GitOps-Modus in API7 Enterprise zu nutzen, um den gesamten API-Lebenszyklus besser zu verwalten. Sie möchten alle API-Definitionen als deklarative Konfigurationsdateien speichern und die Korrektheit der API-Deklarationen durch Code-Review-Mechanismen bei Pull Requests sicherstellen. Sie nutzen auch CI im Repository, um API-Bereitstellungen in der Entwicklungsumgebung zu überprüfen, bevor sie in der Produktionsumgebung freigegeben werden.

ADC hat ein Framework für die Verwaltung deklarativer Konfigurationen etabliert und Aufgaben zur Änderungserkennung und Synchronisierung von API-Ressourcen abgeschlossen. Daher ist es offensichtlich, dass die Unterstützung von ADC in API7 Enterprise eine Entwicklungsrichtung darstellt.

API7 Enterprise integriert mit ADC

Neue Funktionen der ADC 0.7-Version

Um API7 Enterprise zu unterstützen, wurden mehrere wichtige Verbesserungen an ADC eingeführt, wie unten beschrieben.

API7 Enterprise-Backend

Wir haben eine neue Version von ADC veröffentlicht, die eine vorläufige Unterstützung für die Verwendung auf dem API7 Enterprise-Backend bietet. Kernfunktionen wie dump, diff und sync sind jetzt auf dem API7 Enterprise-Backend verfügbar.

Mit dieser neuen Backend-Unterstützung können Benutzer API-Ressourcen direkt aus APISIX exportieren und mit API7 Enterprise synchronisieren, um die Migration alter Konfigurationen von APISIX zu ermöglichen und die leistungsstarken Unternehmensfunktionen von API7 Enterprise voll auszuschöpfen.

Gateway-Gruppe

API7 Enterprise bietet erweiterte Verwaltungsfunktionen für mehrere Gateway-Instanzen. Benutzer können Gateway-Instanzen verschiedenen Gateway-Gruppen zuweisen, um die Isolierung von Konfigurationen in verschiedenen Umgebungen zu erreichen. Beispielsweise können verschiedene Gateway-Cluster für Entwicklungs- und Produktionszwecke erstellt werden, sodass ein Dienst separat in verschiedenen Gateway-Gruppen veröffentlicht werden kann, um unterschiedliche Anforderungen zu erfüllen. Neben Diensten werden auch globale Plugins und TLS-Zertifikate über Gateway-Gruppen verwaltet.

Die Gateway-Gruppenverwaltung ist eine wichtige neue Funktion von API7 Enterprise, und ADC bietet Unterstützung dafür. Bei der Verwendung von ADC-Kernbefehlen können Benutzer ein Befehlszeilenflag namens gateway-group angeben, das ADC anweist, die vom Benutzer angegebenen Ressourcen aus dieser Gateway-Gruppe abzurufen und zu synchronisieren.

Ressourcenfilterung basierend auf Labels

In früheren Versionen von ADC wurden API-Konfigurationen vollständig über die Admin-API abgerufen und synchronisiert. Selbst wenn wir geringfügige Änderungen an API-Konfigurationen vorgenommen haben, musste das System weiterhin alle deklarativen Konfigurationsdateien bereitstellen, auch wenn einige davon unverändert waren. Wenn diese unveränderten Konfigurationsdateien nicht bereitgestellt wurden, betrachtete das System Ressourcen, die in der Admin-API aufgeführt waren, aber nicht in der Befehlszeile angegeben wurden, als gelöscht und entfernte sie aus der Produktionsumgebung. Dies könnte den erwarteten Konfigurationszustand beeinträchtigen und die Verkehrsverarbeitung beeinflussen, was nicht wünschenswert ist.

Um dieses Problem zu lösen, bieten wir jetzt einen labelbasierten Ressourcenfilter an. Dieser Filter ermöglicht es Benutzern, ein oder mehrere Label-Schlüssel-Wert-Paare anzugeben, die von Ressourcen erfüllt werden müssen, über ein Befehlszeilenflag namens label-selector. Alle lokalen und entfernten Ressourcen, die die Anforderungen dieses Label-Filters nicht erfüllen, werden ignoriert, wodurch versehentliche Störungen der Gateway-Konfigurationen effektiv verhindert werden.

Ausblick auf neue Funktionen

Zusätzlich zu den oben genannten neuen Funktionen erkunden wir weiterhin neue Bereiche, um die Funktionalität von ADC zu erweitern und den Benutzern einen größeren Nutzen zu bieten. Einige Beispiele sind:

  • Bereitstellung eines Plugin-Mechanismus, um Benutzern die Anpassung von API-Gateway-Backends zu ermöglichen. Benutzer können ADC-deklarative Konfigurationen von jedem API-Gateway exportieren und API-Konfigurationen über ADC für die Bereitstellung auf jedem API-Gateway definieren.

  • Bereitstellung von scriptfähigen Programmierfähigkeiten, um Hooks für Benutzer bereitzustellen, um ADC-Konfigurationen in bestimmten Phasen zu überprüfen und zu modifizieren. Dies wird helfen, Sicherheitsbaseline-Prüfungen für bestimmte APIs zu implementieren und häufige unsichere Szenarien zu verhindern.

  • Bereitstellung von API-Definitionskonvertern außerhalb von OpenAPI, um das API-Tool-Ökosystem, das ADC nutzen kann, zu bereichern.

ADC 0.7 ist derzeit nur für die interne Nutzung innerhalb von API7 Enterprise verfügbar und wurde noch nicht öffentlich veröffentlicht. Diese Funktion wird im zweiten Quartal dieses Jahres an die Open-Source-Community Apache APISIX beigetragen.

Tags: