概要
サービスメッシュについて調べたことをまとめる。
サービスメッシュとは
サービス間(分散システム)の通信を管理するためのネットワークインフラストラクチャのこと。
一般的にはサービスにプロキシをサイドカーとして追加することで構成する。
サービスメッシュが解決すること
- 可観測性の向上
- サービス間の通信の管理・制御
- サービス間の通信のセキュリティ向上
サービスメッシュの機能
- サービスディスカバリ
- DNSやロードバランサーによるサービスの接続情報管理ではデリバリーの遅延が発生する
- サービスの接続情報管理をサービスメッシュに任せることでデリバリーの遅延を抑える
- サービスルーティング
- サービス間のトラフィックのルーティングをサービスメッシュに任せることで、サービス間のトラフィックのルーティングを柔軟に変更できる
- 障害の分離
- ex. サーキットブレーカー
- 負荷分散
- 認証と認可
- 各サービスごとに仕組みを用意するのではなく、サービスメッシュに任せることで、各サービスの負担を軽減できる
- オブザーバリティ
- 複数のサービスに跨るトラフィックの可観測性を向上させる
- トレーシングを可能にする
- 複数のサービスに跨るトラフィックの可観測性を向上させる
サービスメッシュのデメリット
以下は一般的なプロキシを必要とするサービスメッシュにおけるデメリット。 プロキシレスなサービスメッシュ(ex. Traffic Director)はその限りではない。
- 通信のパフォーマンス低下
- リソース使用量の増加
参考
- speakerdeck.com - Service Meshがっつり入門/Get-Started-Service-Mesh
- cloud.google.com - マイクロサービス アーキテクチャのサービス メッシュ
- www.netone.co.jp - サービスメッシュ入門
- aws.amazon.com - サービスメッシュとは何ですか?
- www.alpha.co.jp - サービスメッシュ導入の前に知っておくべきこと
- www.redhat.com - サービスメッシュとは
- qiita.com - サービスメッシュについて調査してみた件
- www.infoq.com - サービスメッシュ必読ガイド - マイクロサービス時代のサービス間通信管理
- https://dev.classmethod.jp -サービスメッシュについて理解する