dtyler.io

Microservicesにおけるサービス間通信とService Mesh

2018/11/11

Microservicesにおいて、サービス間の通信は高速でかつ堅牢である必要がある。 MercariのようにgRPCを採用する場合もあれば、HTTPを使う場合もある。 また、多くの場合、ActiveMQGCP Cloud Pub/SubAWS SQSなどの非同期メッセージングプロトコルも併せて採用するだろう。

しかし、Microservicesにおけるサービス間通信には下記のような課題がある。

これらの課題に解決策を提供するのが、 Service Mesh である。 KubernetesではServish Meshとして、 LinkerdIstioを選択できる。 これらは、各サービスのSide Carとして稼働する。

Service Meshは以下のような機能を提供する。

Service Meshを使用しない場合、冒頭の課題を開発者が考慮する必要がある。 まだ枯れていない技術ではあるが、大規模な分散システム(Microservices)を設計する際には考慮したいと思う。