サービスメッシュについて

インフラストラクチャ

概要

サービスメッシュについて調べたことをまとめる。

サービスメッシュとは

サービス間(分散システム)の通信を管理するためのネットワークインフラストラクチャのこと。

一般的にはサービスにプロキシをサイドカーとして追加することで構成する。

サービスメッシュが解決すること

  • 可観測性の向上
  • サービス間の通信の管理・制御
  • サービス間の通信のセキュリティ向上

サービスメッシュの機能

  • サービスディスカバリ
    • DNSやロードバランサーによるサービスの接続情報管理ではデリバリーの遅延が発生する
    • サービスの接続情報管理をサービスメッシュに任せることでデリバリーの遅延を抑える
  • サービスルーティング
    • サービス間のトラフィックのルーティングをサービスメッシュに任せることで、サービス間のトラフィックのルーティングを柔軟に変更できる
  • 障害の分離
    • ex. サーキットブレーカー
  • 負荷分散
  • 認証と認可
    • 各サービスごとに仕組みを用意するのではなく、サービスメッシュに任せることで、各サービスの負担を軽減できる
  • オブザーバリティ
    • 複数のサービスに跨るトラフィックの可観測性を向上させる
      • トレーシングを可能にする

サービスメッシュのデメリット

以下は一般的なプロキシを必要とするサービスメッシュにおけるデメリット。 プロキシレスなサービスメッシュ(ex. Traffic Director)はその限りではない。

  • 通信のパフォーマンス低下
  • リソース使用量の増加

参考