APISIX Declarative CLI 与 API7 Enterprise 的集成
March 20, 2024
ADCとは何か?
ADC (APISIX Declarative CLI)は、API7.aiによって導入された宣言型設定ツールで、非Kubernetes環境でのGitOps機能の実装を支援することを目的としています。ユーザーはCI/CDパイプラインにシームレスに統合し、APIのライフサイクルを管理し、更新とリリースを容易にすることができます。
現在のバージョンでは、ADCはAPISIXと統合され、APISIXリソースのエクスポートと同期を容易にしています。
API7 Enterpriseとは何か?
API7 EnterpriseはAPISIXを基盤として構築されており、ゲートウェイのグループ化やサービスのバージョン管理など、強化されたAPI管理機能を提供し、企業向けの包括的なAPI管理ソリューションを提供することを目指しています。GitOpsベースのAPI管理とはいくつかの違いがあり、ユーザーはWeb UIインターフェースを通じてAPI7 Enterpriseの機能を簡単に管理できます。
一部のユーザーは、API7 EnterpriseでGitOpsモードを採用し、APIの全ライフサイクルをより良く管理することを強く望んでいます。彼らはすべてのAPI定義を宣言型設定ファイルとして保存し、Pull Requestでのコードレビューメカニズムを通じてAPI宣言の正確性を確保したいと考えています。また、リポジトリ内のCIを利用して、開発環境でAPIのデプロイをプレビューし、その後本番環境にリリースすることを目指しています。
ADCは宣言型設定を管理するためのフレームワークを確立し、APIリソースの変更検出と同期タスクを完了しています。そのため、API7 EnterpriseでのADCのサポートが開発の方向性となることは明らかです。
ADC 0.7バージョンの新機能
API7 Enterpriseをサポートするために、ADCにいくつかの重要な改善が導入されました。以下にその概要を示します。
API7 Enterpriseのバックエンド
API7 Enterpriseバックエンドでの使用をサポートする新しいバージョンのADCをリリースしました。dump
、diff
、sync
などのコア機能がAPI7 Enterpriseバックエンドで利用可能になりました。
この新しいバックエンドサポートにより、ユーザーはAPISIXからAPIリソースを直接エクスポートし、API7 Enterpriseと同期させることができます。これにより、APISIXからの古い設定を移行し、API7 Enterpriseが提供する強力なエンタープライズ機能をフルに活用することが容易になります。
ゲートウェイグループ
API7 Enterpriseは、複数のゲートウェイインスタンスに対する高度な管理機能を提供します。ユーザーはゲートウェイインスタンスを異なるゲートウェイグループに割り当てることで、異なる環境での設定の分離を実現できます。例えば、開発と本番用に異なるゲートウェイクラスターを作成し、サービスを異なるゲートウェイグループに個別に公開して、異なる要件を満たすことができます。サービスに加えて、グローバルプラグインやTLS証明書もゲートウェイグループを通じて管理されます。
ゲートウェイグループ管理はAPI7 Enterpriseの重要な新機能であり、ADCはこれをサポートしています。ADCのコマンドを使用する際、ユーザーはgateway-group
という名前のコマンドラインフラグを指定できます。これにより、ADCは指定されたゲートウェイグループからユーザー指定のリソースを取得し、同期します。
ラベルに基づくリソースフィルタリング
以前のバージョンのADCでは、API設定はAdmin APIから完全にプルされ、同期されていました。しかし、API設定に小さな変更を加えた場合でも、システムはすべての宣言型設定ファイルを提供することを要求していました。変更されていない設定ファイルを提供しないと、システムはAdmin APIにリストされているがコマンドラインで提供されていないリソースを削除されたと見なし、それらを本番環境から削除してしまいます。これにより、期待される設定状態が損なわれ、トラフィック処理に影響を与える可能性があり、望ましくありません。
この問題を解決するため、ラベルベースのリソースフィルタを提供しています。このフィルタにより、ユーザーはlabel-selector
という名前のコマンドラインフラグを通じて、リソースが満たす必要のある1つ以上のラベルキーと値のペアを指定できます。このラベルフィルタの要件を満たさないローカルおよびリモートリソースは無視され、ゲートウェイ設定の誤った変更を防ぐことができます。
新機能の展望
上記の新機能に加えて、ADCの機能を強化し、ユーザーにさらなる価値を提供するための新しい領域を探求しています。いくつかの例を以下に示します:
-
プラグインメカニズムを提供し、ユーザーがAPIゲートウェイのバックエンドをカスタマイズできるようにします。ユーザーは任意のAPIゲートウェイからADCの宣言型設定をエクスポートし、ADCを通じてAPI設定を定義して任意のAPIゲートウェイにデプロイできます。
-
スクリプト可能なプログラミング機能を提供し、特定の段階でADC設定を検査および変更するためのフックをユーザーに提供します。これにより、特定のAPIに対するセキュリティベースライン検査を実装し、一般的な安全でないシナリオを防ぐことができます。
-
OpenAPI以外のAPI定義コンバータを提供し、ADCが活用できるAPIツールエコシステムを豊かにします。
ADC 0.7は現在、API7 Enterprise内での内部使用のみが可能で、一般公開されていません。この機能は今年の第2四半期にオープンソースコミュニティであるApache APISIXに提供される予定です。