「マイクロサービス」でないものとは何かGartner Insights Pickup(15)

「マイクロサービス」に期待が寄せられる一方、この言葉を誤用しているベンダーやプロバイダー、アーキテクト、開発者も少なくない。今回は、私が作成した「マイクロサービスでないもの」のリストを紹介しよう。

» 2017年04月07日 05時00分 公開
[Gary Olliffe, Gartner]

ガートナーの米国本社発のオフィシャルサイト「Smarter with Gartner」と、ガートナー アナリストらのブログサイト「Gartner Blog Network」から、@IT編集部が独自の視点で“読むべき記事”をピックアップして翻訳。グローバルのITトレンドを先取りし「今、何が起きているのか、起きようとしているのか」を展望する。

 マイクロサービスは相変わらず盛んにもてはやされ、熱い期待が寄せられている。こうした分野には、必ずIT企業のマーケティングチームが乗り込んでくる。彼らは、この用語を理解している技術者がターゲットの場合は、ツボを押さえた仕事をすることもある。だが、ピントがずれていて混乱を招いてしまうこともある。

 マイクロサービスに関しては両極端な状況が見られる。アプリケーションプラットフォームや開発ツールのベンダーは、おおむねきちんとしている。これは意外なことではない。こうしたベンダーは、マイクロサービスアーキテクチャの何たるかが分かっているであろう技術者を相手にしているからだ。だが、ITリーダーやビジネスリーダーをターゲットとするベンダーは、中身が伴わないものをマイクロサービスという触れ込みで売ろうとする傾向が強い。クールな印象を与えたり、注意を引いたりしたいためだけにそうすることがよくある。

 もちろん、「マイクロサービス」には、標準の普遍的定義はない。さまざまなバリエーションや解釈がある。しかし、ほとんど関係がない技術をマイクロサービスとしてくくるのは、市場にとってプラスにならない。同じ用語に対するアーキテクトとITリーダーの理解が異なっていると、混乱やリスクが生じてしまう。

 私は調査報告書「Assessing Microservices for Cloud Native Application Delivery(クラウドネイティブなアプリケーション提供に向けたマイクロサービスの評価)」の中で、以下のリストを発表した。これは「マイクロサービスでもマイクロサービスアーキテクチャでもないもの」のリストだ。皆さんがマイクロサービスという言葉を誤用しているベンダーやプロバイダー、さらにはアーキテクト、開発者を見抜き、正しい方向に導くのに役立つようにここでシェアしたい。

  • モノリシックアプリケーションの一部として実装される複雑なサービスへのアクセスを提供する、シンプルなAPI
  • 少量のコードで実装されるサービス。このサービスはマイクロサービスである可能性もあるが、少量のコードが他のコードやサービスと結合されている場合や、独立してデプロイできない場合は、マイクロサービスではない
  • テスト、デプロイ、運用を自動化せずに構築、提供されるサービス
  • 更新やパッチの適用がソフトウェアデプロイとは別個に行われる、変更可能なコンピューティング・インフラストラクチャ上に構築されるサービス
  • ピアサービスに依存し、そのために独立した変更や更新が不可能なサービス
  • 粒度の粗い大規模なサービスや、Dockerコンテナにパッケージ化されているもののモノリシックなサービスセット
  • 他者によってAPI経由で提供されるサービス(あなたの組織のアプリケーションに関して言えば、どのように実装されるかにかかわらず、あなたの組織が実装をコントロールしないならば、サービスにすぎない)
  • ベンダーが「マイクロサービス」と銘打っているものの、あなたの組織が他の(本当の)マイクロサービスと一致した方法、もしくは整合性のとれた方法でデプロイ、管理をコントロールできないコンポーネント、モジュール、サービス、機能

 最後に、特に重要な点はこれだ。

  • 公開されているAPI。マイクロサービスアーキテクチャは、公開されているインタフェースの仕様とは分けて考えなければならない、実装の詳細である

 最後に挙げたのは、「マイクロサービス」という言葉の最もよくある誤用例だ。より具体的には、「Web APIで提供またはエクスポーズされるサービス」を「マイクロサービス」と呼ぶというものだ。これは実に嘆かわしい。サービスの実装をカプセル化することはAPIの本質だ。サービスの実装はマイクロサービスかもしれないし、もっとつまらないものかもしれない。APIのユーザーは、プロバイダーがどのようなアーキテクチャを採用しているかは分からないだろうし気にもしないだろう。

 マイクロサービスアーキテクチャは、サービス提供者にとっての実装の詳細だ。適切に実装すれば、サービス提供者はスケーラビリティが高く強靭(きょうじん)で、迅速な改良が可能なサービスを提供できるだろう。だが、サービス提供者が「マイクロサービス」を売り込んできたら、注意が必要だ。それは優れたAPIかもしれないが、あなたの組織がマイクロサービスアーキテクチャを実現するのに役立つ可能性は低いだろう。

 上記がチェックリストとして役立つことを願っている。上の各項目の実例を見掛けたり、「マイクロサービス」という言葉の他の誤用例を見掛けたら、@garyolliffeでツイートしてもらえれば幸いだ。

出典:What a Microservice Is Not(Gartner Blog Network)

筆者 Gary Olliffe

ゲイリー・オリーフ

ガートナー リサーチ部門 バイス プレジデント


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。