Anypoint Service Mesh 1.2

Anypoint Service Mesh は、MuleSoft 以外のアプリケーションを Anypoint Platform のエコシステムに組み込むことで、マイクロサービスネットワークを拡張します。そして、MuleSoft 以外のアプリケーションを含めたアプリケーションネットワークを、1 つのペインからシームレスに管理および保護できます。

ご利用の MuleSoft 以外のマイクロサービスは、異なる言語やプラットフォームを使用して作成されていたり、異なる環境にデプロイされていたりする場合があります。これらのマイクロサービスの違いによる問題を緩和するため、Anypoint Service Mesh は、次のような特長を備えたアプリケーション管理を実現します。

  • ゼロトラストポリシーを使用したサービス間通信によってトラフィック制御、フォールトトレランス、そして負荷分散を処理します。

  • MuleSoft の API 管理機能を Mule 以外のサービスにも拡張して、ポリシー、セキュリティ、そして分析を直接 Anypoint Platform から適用します。

  • 今後のプロジェクトで使用できる Mule 以外のサービスを Exchange 内で検出し、サービスの再利用を最大限に高めます。

Anypoint Service Mesh のアーキテクチャ

Anypoint Service Mesh とは、Kubernetes または Red Hat OpenShift クラスターにカプセル化されている独立したアーキテクチャレイヤーです。Anypoint Service Mesh アーキテクチャでは、サービスが直接相互に通信するのではなく、サイドカープロキシを使用して同じジョブを実行します。

サイドカープロキシにより、MuleSoft 以外のマイクロサービスを、API として Kubernetes クラスターから Anypoint Platform ネットワークに組み込むことができます。そして、これらの API を API Designer、API Manager、Exchange で管理できます。さらに、API Analytics を使用して API の健全性を監視できます。

ミキサーコンポーネントは Istio v1.5 以降で廃止されるため、ミキサーの認証メカニズムとしての機能は、Anypoint Service Mesh の Envoy フィルターを利用して実装されています。Envoy フィルターを使用することで、要求が直接アダプターに送信されるため、追加処理が最小限に抑えられます。

Anypoint Service Mesh のアーキテクチャ、85%

図に示すように、アーキテクチャの頂上には Anypoint Platform が位置し、Mule Runtime Engine (Mule) で構築されたマイクロサービスに、完全なライフサイクル API 管理機能を提供します。これらの Mule インスタンスは、CloudHub や、ユーザー側の Runtime Fabric でデプロイされます。

Istio は Kubernetes の上にインストールされ、Envoy を使用してサイドカープロキシでサービスを管理します。サイドカーは、サービスとの通信を担当し、サービスと同じコンテナ内に常駐します。Anypoint Service Mesh を有効にすることで、トラフィック制御やセキュリティに特化した Istio のネイティブポリシーを継続して使用できます。

MuleSoft アダプターは、コンポーネントを Anypoint Platform に接続します。アダプターは、ブローカーと共に、メッシュで管理されるすべてのサービスを有効化してメタデータを共有できるようにし、さらに Kubernetes クラスターの既存マイクロサービスを有効化することで、Anypoint Platform によって API として認識されるようにします。

サービスが検出されると、Anypoint Exchenge はメタデータを使用して、各サービスの API (HTTP、REST、または SOAP) を自動的に検出して作成します。これらの API は API Manager 内で管理されます。同様に、Anypoint Monitoring もメタデータを使用して、サイドカープロキシから情報を取得し、API Analytics で使用できるようにします。

サービス要求フロー

サービスが呼び出されると、Anypoint Service Mesh は下図に示すようにスムーズな要求フローとセキュリティチェックを保証します。

70%

  1. クライアント (別のサービスまたは Kubernetes Ingress コンポーネント) は、サービスに要求を送信します。

  2. Envoy は、Envoy フィルターを使用して要求を取得して、MuleSoft アダプターにリダイレクトします。

    アダプターは、ポリシーチェックと検証を実行します。

  3. ポリシー違反がなければ、要求はマイクロサービスに転送されます。

  4. マイクロサービスは、サービスロジックを実行して応答をクライアントに送信します。

  5. アダプターは、定期的に Anypoint Platform と非同期に通信し、最新のポリシーとコントラクトを取得します。

  6. また、定期的に API 分析情報を Anypoint Platform に返します。