ポリシー開発キットのアーキテクチャの概要

Flex Gateway ポリシー開発キット (PDK) は次のコンポーネントから構成されています。

Anypoint CLI PDK プラグイン

Anypoint CLI PDK プラグインは PDK プロジェクトを作成し、ポリシーアセットを Exchange にアップロードします (接続モードのみ)。プロジェクトの作成後、PDK は以降のすべての開発ステップを完了するための簡易コマンドセットを ​Makefile​ で提供します。

ポリシーテンプレート

PDK はポリシーを作成する際に、いくつかの簡易スキャフォールディングを生成します。

生成されたすべてのファイルには、ポリシーを適切にコンパイルするために必要な情報が含まれています。

内部についての詳細は、​「プロジェクト構造」​を参照してください。

SDK ビルドツール

Flex Gateway は Envoy 上に構築されており、開発されるポリシーは、イベント駆動型の proxy-wasm​ アーキテクチャとの互換性を持っている必要があります。

proxy-wasm​ のイベント駆動型アーキテクチャでは、1 つの要求を処理するさまざまなイベントをユーザーが管理する必要があります。そのため、次のような問題が生じ、イベント駆動型コードの開発や保守にコストがかかってしまいます。

  • ビジネスロジックとエントリポイントの結合によるコードの複雑化

  • 共通のロジックをモジュール化できないことに起因するモノリシックなコード

  • 関数のコールバックとエラー伝搬を困難にする、冗長な非線形の制御フロー

PDK は、Reactor パターンと Executor パターンを使用することで、イベント指向のコーディングアプローチを抽象化するビルドツールを提供します。PDK は開発者に、受信要求をリニア方式でコーディングする方法を提供することで、以下を実現します。

  • 正しくないコンテキストでのメソッドの使用によるコンパイルエラーやランタイムエラーを減少

  • 学習曲線を短縮

  • コールスタックの最小化によりデバッグ性を向上

  • コードの重複を削減

  • パラメーターインジェクションを改善

  • 動的メモリの使用を削減し、不確定性とカスタムメモリ管理の必要性を低減