先頃のInfoQポッドキャストで、Lin Sun氏とNeeraj Poddar氏が Istio 1.5 のリリースについて話し合い、サービスメッシュスペースの将来について調査した。取り上げられたトピックには、「istiod」モノリシックコントロールプレーンへの移行に対する Istio コミュニティの動機、WebAssembly データプレーン (Envoy プロキシ) 拡張サポートの追加、および Istio 内のマルチクラスタサポートの将来が含まれている。
IBMのシニアテクニカルスタッフメンバでありMaster InventorであるSun氏と、Aspen Meshのエンジニアリングリード兼アーキテクトであるPoddar氏は、サービスメッシュテクノロジーの概要を説明することから議論を始めた。マイクロサービスベースのアーキテクチャを採用する場合、サービスメッシュは、サービスディスカバリ、トラフィック管理、および通信の横断的関心事を提供するための1つのアプローチだ。Sun氏は次のように指摘した:
[...] 人々がマイクロサービスとクラウドネイティブに移行するにつれて、多くの人々が解決しようとするこれらのマイクロサービスの間に共通の一連の問題があることがわかりました。たとえば、マイクロサービスにどのように接続するのか? どのように再試行するのか? マイクロサービスをどのように監視するのか? マイクロサービスの通信をどのように保護するのか?
サービスメッシュの「データプレーン」コンポーネントは、サービスネットワークエンドポイントとの間で送受信されるすべてのネットワークパケットを条件付きで変換、転送 (forwards) 、および監視するプロキシだ。「コントロールプレーン」は、データプレーン (プロキシ) の個々のインスタンスをすべて取得し、オペレーターが視覚化および制御できる分散システムに変換する。
最新のサービスメッシュ実装のデータプレーンは、プロキシサイドカーとして外部プロセスで実行される。Envoy プロキシは、Istio を含む多くのサービスメッシュ実装で一般的に使用されている。
Istio 1.5 の先頃のリリースでは、コントロールプレーンのデプロイメントパッケージが、マイクロサービスベースのアプローチから「istiod」という名前のモノリシック実装に移行した。最近の Istio ブログ投稿「Introducing istiod: simplifying the control plane」で、Google CloudのKubernetes / IstioアドボカシーリードのCraig Box氏が、Istio コントロールプレーンの歴史の概要を説明し、複雑さのコストと統合のメリットの両方について説明した。
Solo.ioのグローバルフィールドCTOであるChristian Posta氏は、「Istio as an Example of When Not to Do Microservices」も公開した。これは、潜在的に非常に重要なアーキテクチャの変更についての追加の根拠を提供した。Sun氏とPoddar氏は、このような変更に関連する意思決定と計画の質が、Istio コミュニティ内の成長と成熟の兆候であることに同意した。
Istio 1.5 は、WebAssembly (Wasm) で記述されたデータプレーン拡張をサポートするようになった。これらの拡張機能は、ネットワークの要求と応答を変更し、認証や認可などの帯域外アクションを実行できる。Poddar氏は次のようにコメントした:
これにより、ユーザーは [データプレーン] を動的にプログラムして、ユーザエクスペリエンスを大幅に向上させることができます。私はこれがどこに着陸するか本当に興奮しています。これは、Istio だけでなく、プロキシランドスケープ全体にとってもゲームチェンジャになる可能性があると思います。
オープンスタンダードのトピックもポッドキャストで議論された。Poddar氏は、Service Mesh Interface (SMI) のような標準化は多くの価値を付加できると主張したが、ユーザ要件、一般的なユースケース、および基盤となるテクノロジーのコア抽象化を十分に理解する必要がある。
将来を見据えて、Sun氏は、マルチクラスタおよびメッシュ拡張 (外部クラスタ) のサポートが、Istio および他の多くのサービスメッシュ実装で継続的に改善されていることを指摘した:
マルチクラスタの周りでは、すでにかなり豊富なサポートがあります [...] xDS サービス用に1つのクラスタで Istio を実行できますが、他のクラスタでは証明書とサイドカーインジェクションを管理するためだけの xDS サービスを実行せずに軽量の Istio を実行できます。将来的には、実際にはこのスペースにもう少し関与する予定です。
Sun氏はまた、Istio には複製されたコントロールプレーンとマルチクラスタパターンがあり、エンジニアはクラスタ内にデプロイされたサービスに関してクラスタが同じである必要がない異種クラスタを構成できると述べた。しかし、トラブルシューティングは難しい場合がある:
時々、マルチクラスタシナリオを実行して、失敗した場合、今日のトラブルシューティングは少し難しいことに気付くことがあります。これは、ユーザにより多くのガイダンスと自動化を提供するために、私たちが明確に調査したい領域です。
ポッドキャストオーディオ、ショーノート、および完全なトランスクリプトは、記事「Lin Sun and Neeraj Poddar on Istio, Wasm, and the Future of Service Mesh」を視聴してください。