サービス開発者はサービス メッシュを利用することで、ネットワーク通信の作業を軽減し、ビジネス ロジックに集中できるようになります。

サービス メッシュとは何か

サービス メッシュは、マイクロサービス アプリケーションのための設定可能なインフラストラクチャ レイヤです。サービス インスタンス間での柔軟かつ信頼性の高い高速通信を可能にします。メッシュは、サービス検出、ロード バランシング、暗号化、認証と認可、サーキット ブレーカー パターンのサポートなどの機能を提供します。

通常は、各サービス インスタンスにサイドカーと呼ばれるプロキシ インスタンスを提供することで、サービス メッシュが実装されます。サイドカーは、サービス間の通信、監視、セキュリティ関連の問題など、個々のサービスから抽象化できるものを扱います。これにより、開発者はサービス内のアプリケーション コードの開発、サポート、保守を行い、運用チームはサービス メッシュの保守とアプリケーションの実行を行うことができます。

Google、IBM、Lyftが支援するIstioは、現在最も有名なサービス メッシュ アーキテクチャです。現在のところ、Istioがサポートするコンテナ オーケストレーション フレームワークは、Googleが独自に設計したKubernetesのみです。

サービス メッシュのビデオ

マイクロサービス アーキテクチャにおけるサービス メッシュとは何か

サービス メッシュは、マイクロサービス アーキテクチャを実現する上での重要ないくつもの課題を解決します。サービス メッシュを使用すると、サービス間のネットワーク機能に時間をかけるのではなく、ビジネス ロジックに注力することができ、さらに、多様なマイクロサービス実装技術をより自由に選択できるようになります。

サービス メッシュとサービス検出

サービス メッシュは、サービス検出プロトコルと連携して、起動したサービスを検出します。そして、停止したサービスを適切に管理します。サービス検出はコンテナ管理フレームワークであり、他のサービスからのリクエストを受け付ける(他のサービスによって検出される)準備が整っているインスタンスのリストを保持します。この2つが連携することで、サービス間通信に耐障害性が生まれます。

参考資料