2015年02月27日 08時00分 公開
特集/連載

次世代クラウドアプリを担う、話題の「マイクロサービス」とはなぜ今、マイクロサービスなのか

90年代から、アプリケーションのコンポーネント化の試みが続けられてきた。そしてクラウド時代の今、新たに登場したのが「マイクロサービス」だ。

[Janakiram MSV,Computer Weekly]
Computer Weekly

 2014年3月、ソフトウェアプロバイダー米ThoughtWorksのマーティン・ファウラー氏とジェームス・ルイス氏は、マイクロサービスに関する記事を共同でまとめて公開した(Microservices)。以来、このコンセプトはWebスケールの新興企業や大企業の間で注目を集めている。

Computer Weekly日本語版 2月18日号無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 2月18日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。


 マイクロサービスのアーキテクチャは、独立していて、自律性があり、規格化されていて、自己完結しているユニットで構成される。このようなアプリケーションの開発および実装を推進するためのものだ。マイクロサービスは、設計、開発、展開、管理の全てにおいて、従来のモノリシックなアプリケーションとはアプローチが根本的に異なる。

 分散コンピューティングはこの20年で、着実に進化を続けている。IT業界では1990年代中盤から、Corba、DCOM、J2EEなどのコンポーネントベースのテクノロジーへの期待が高まった。ここでいうコンポーネントとは、1つの単位としてまとまっている、再利用可能な一連のコードを指す。コンポーネントは、さまざまなアプリケーションが共有する、固定されたインタフェースを持つ。

 コンポーネントアーキテクチャは、従来の手法で開発されたアプリケーション、特に動的リンクライブラリ(DLL)を利用しているものと比べると、大きな進化を遂げている。

 ただかつては、コンポーネントテクノロジーはそれぞれ独自の通信プロトコルを採用していた。例えばJavaはRMI、CorbaはIIOB、DCOMはRPCという具合だ。このような状況にあったので、異なるプラットフォーム上で構築され、異なるプログラミング言語で開発されたアプリケーション間で相互運用性と統合を実現しようとすると、そのタスクは非常に複雑になった。

マイクロサービスの進化

 やがて複数プラットフォーム間の通信ではXMLとHTTPが標準のプロトコルとして普及してきたため、相互運用性の基準を定義する試みとして、サービス指向アーキテクチャ(SOA)が提唱された。Webサービスの相互運用性の規格は、当初SOAP(Simple Object Access Protocol)に準拠していたが、その後OASISという組織が規格の策定を引き継いだ。

 米IBM、米Tibco、米Microsoft、米Oracleなどのサプライヤーは、SOAの規格に沿ったエンタープライズ向けのアプリケーション統合製品を発売していた。このような製品は、大企業の間では支持を得たが、その一方で、「Web 2.0」サービスを提供する新興企業は、分散コンピューティングで優先して利用するプロトコルとしてREST(REpresentational State Transfer)を採用し始めた。

 JavaScriptが支持を集めるようになると、JSON(JavaScript Object Notation)とRESTがWebの世界でのデファクトスタンダードとして急激に普及した。

マイクロサービスの主な属性

 マイクロサービスは、非常に細分化された実行単位だ。

ITmedia マーケティング新着記事

news113.jpg

日本のスマホ決済アプリのインストール数は75%成長 バンキングアプリ利用も急増――Adjust調査
2020年上半期は特に日本において、新型コロナの影響でファイナンスアプリの利用が活発化...

news048.jpg

ニューノーマル初の年末商戦 成功の鍵は「送料無料」と「低価格」、そして……――Criteo予測
コロナ禍の収束が見通せないながらも、人々の消費は少しずつ動き出しています。ホリデー...

news177.jpg

広告業界の倒産、4年連続増加の可能性も――帝国データバンク調査
広告関連業者の倒産動向調査(2020年1〜9月)の結果です。年末に向け、新型コロナウイル...