NGINX Full Version

サービスメッシュ徹底解説~マイクロサービスにおける役割とは

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

サービスメッシュとは?

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

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

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

サービスメッシュの動画

サービスメッシュとは?

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

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

サービスメッシュとサービスディスカバリー

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

参考資料