海外コメンタリー

サービスメッシュとは何か、なぜ重要か

Scott Fulton III (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子

2019-01-29 06:30

 「サービスメッシュ」とは、分散コンピューティング向けとして新たに台頭してきているサービスマネージャの一種だ。

 サービスメッシュという新たなアーキテクチャによって、サーバ側アプリケーションを構成する小さなコンポーネント群(代表的なものとしてはマイクロサービス)が互いに動的にリンクされ、1つのアプリケーションとして機能できるようになる。これらのコンポーネント群は、単一のアプリケーションを実現するために意図的に作り上げられたコンポーネントである場合や、他のアプリケーションとワークロードを共有することでメリットを生み出そうとする、出自の異なるコンポーネントである場合もある。

実世界で今使用できるサービスメッシュ

 この分野における最も古い取り組みはおそらく、「Linkerd」(リンカーディーと読む)というオープンソースプロジェクトであり、同プロジェクトはその開発を通じてサービスメッシュの必要性を初めて明らかにした。同プロジェクトは現在、Cloud Native Computing Foundation(CNCF)によって開発が続けられている。「Twitter」プロジェクトから派生したLinkerdプロジェクトによって、各種サービスを実現するプロキシが、専用のネットワーク経由で類似のプロキシと通信できる能力を備えるという考え方が普及した。サービスメッシュの商用化を目指すBuoyantは最近、「Conduit」という類似の取り組みをLinkerdプロジェクトにマージした。その結果、「Linkerd 2.0」が生み出されている。

 一方、ライドシェアリングサービスLyftのエンジニアであるMatt Klein氏は、既存コード(レガシーな「一枚岩」に縛られているものであっても)がAPIを備えたマイクロサービスのようなかたちで表現されるネットワークを構築するための手法を考え出した。この手法は「Envoy」として実装されている。そしてEnvoyは現在、IBMやGoogleの成果とともに、「Istio」というフレームワークを作り上げるプロジェクトの構成コンポーネントの1つとなっている。


ジャン・メッツァンジェによって1912年に描かれ、現在はオールブライト=ノックス美術館に所蔵されている「Dancer in a Cafe」(カフェのダンサー)の一部。パブリックドメインにある。

これまでの経緯

 サービスメッシュが期待通りに動作する際には、分散されたデータセンタープラットフォームを共有する、数千にもおよぶマイクロサービスが互いにやり取りし、アプリケーションの一部として連携動作するようになる。そしてこうしたことは、これらのマイクロサービスが当初から該当アプリケーションのコンポーネントとして作り出されていない場合でも実現できる。

 クライアント/サーバやウェブアプリケーションの世界でサービスメッシュに相当するのはミドルウェアだ(ミドルウェアについてはなじみがあるかもしれない)。21世紀に入ってから、ウェブアプリケーションのコンポーネントは非同期的に(互いに異なるタイミングで)処理されるようになったため、プロセス内で連携とまでは言わないが、通信するための何らかの手段が必要となった。エンタープライズサービスバス(ESB)は縁の下でこうした通信を実現するミドルウェアの一種であり、これによって初めて、サーバ側のアプリケーション同士を統合できるようになった。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]