マイクロソフトやHashiCorpらが「Service Mesh Interface」(SMI)を発表。Kubernetes上のサービスメッシュAPIが標準化へ

2019年5月22日

Kubernetes上で提供されるサービスメッシュのAPIや基本的な機能の標準仕様となる「Service Mesh Interface」(SMI)を、マイクロソフトやHashiCorpらが共同で発表しました

Service Mesh Interface fig1

発表はスペインのバルセロナで開催中のKubeCon+CloudNativeCon Europe 2019の基調講演でも行われ、多くのベンダが参加していることも紹介されました。

Service Mesh Interface fig2

現在、サービスメッシュを提供するソフトウェアはそれぞれAPIや機能などが異なっているため、サービスメッシュを利用するアプリケーションは、特定のサービスメッシュソフトウェアに依存したものにならざるを得ません。

SMIではサービスメッシュが提供する基本的な機能とAPIが標準として策定されるため、サービスメッシュに対する一定のポータビリティの実現が期待されます。

サービスメッシュとはアプリケーションレベルでの便利機能を提供する

Kubernetesは、多数のDockerコンテナをクラスタ化する際の管理機能を提供するオーケストレーションツールとして事実上の標準となりました。

具体的には、コンテナのクラスタへの割り当てや死活管理、スケーラビリティの提供など、コンテナを用いた分散アプリケーション基盤としての基本的な機能をKubernetesは提供してくれます。

その基盤の上で分散アプリケーションを構築しようとした場合、アプリケーションを構成するさまざまなサービス間の認証や通信の暗号化によるセキュリティの実現、サービスのモニタリングやログ収集などの運用管理に必要な機能など、分散アプリケーションに共通して求められるさまざまな機能があります。

もちろんアプリケーションが個々にこうした機能を実現してもいいのですが、共通する機能なのであればそれを集約し、共通サービスとして分散アプリケーションに組み込んだ方が、開発効率の点でも、それぞれの機能の成熟度の点でも有利となるでしょう。

この分散アプリケーションのレベルで共通する機能を提供するのが「Service Mesh」(サービスメッシュ)です。代表的なものとしてオープンソースで開発されているIstioやHashiCorpのConsulなどがあります。

そして、これまでサービスメッシュを提供するソフトウェアごとに独自に定義されていたAPIや基本機能などの共通化をはかろうとしたのが、今回発表された「Service Mesh Interface」(SMI)です。

SMIの策定内容

SMIのインターフェイス仕様は以下のようなものを提供すると説明されています。

A standard interface for meshes on Kubernetes
(Kubernetes上のメッシュに対する標準インターフェイス)

A basic feature set for the most common mesh use cases
(一般的なメッシュのユースケースに対応した基本機能)

Flexibility to support new mesh capabilities over time
(今後登場するであろうメッシュの新機能への柔軟な対応)

Space for the ecosystem to innovate with mesh technology
(メッシュ技術の革新を受容するエコシステムのための余白)

さらに基本機能として以下のものが想定されています。

  • Traffic policy – apply policies like identity and transport encryption across services
  • Traffic telemetry – capture key metrics like error rate and latency between services
  • Traffic management – shift and weight traffic between different services

1つ目はサービス間のトラフィックに対する暗号化や認証といったポリシーの設定。2つ目はサービス間のエラー発生率やレイテンシといったトラフィック上重要なメトリクスの取得、3つ目はサービスに対するトラフィックの切り替えといったトラフィック管理です。

SMIの策定はまだ初期段階で、今後さらに機能追加などが行われていくとされています。

サービスメッシュは分散アプリケーションの実現に重要なソフトウェアとして今後さらに発展し注目度が高まっていくことは明らかです。現段階でこうしたベンダを超えた標準化が行われることは、この分野の技術の健全な発展に寄与するものと考えられます。

あわせて読みたい

Kubernetes コンテナ型仮想化 Istio




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本