マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法
by James Gough, Daniel Bryant, Matthew Auburn, 石川 朝久
4章
サービスメッシュ:サービス間トラフィック管理
前章では、APIゲートウェイを利用してAPIを公開し、エンドユーザや他の外部システムからの外部トラフィックに対して信頼性を高める方法を説明しました。オブザーバビリティを確保し、安全に管理する方法について説明しました。4章では、内部API、すなわちサービス間通信を管理する方法を学びます。
簡単に言えば、サービスメッシュは、サービス間通信をルーティング、監視、保護する機能を提供します。しかし、この技術の採用も検討すべきことが複数あります。すべてのアーキテクチャにはトレードオフがあります。アーキテクトの役割を果たす上で、フリーランチは存在しません。
この章では、レガシーカンファレンスシステムから講演機能(セッション)を抽出し、新しい内部向けのSessionサービスにすることで、ケーススタディを発展させます。この際、既存のモノリシックアーキテクチャを採用したレガシーカンファレンスシステムとともにデプロイ・実行される新しいサービスと、APIを作成・抽出することによって発生するコミュニケーションの課題について学びます。前章で紹介したAPIとトラフィック管理のテクニックはすべてここで適用されますので、新しいSessionサービスを公開するためにAPIゲートウェイを利用するのが自然な流れかもしれません。しかし、要件を考えると、これは最適な解決策ではない可能性があります。そこで、サービスメッシュパターンと関連する技術が、最適なアプローチを提供できます。
4.1 サービスメッシュは唯一の解決策なのか?
実際には、ほとんどのWebアプリケーションは、データベースと連動するモノリシックアプリケーションであっても、サービス間通信を行う必要があります。 ...