次世代クラウドアプリを担う、話題の「マイクロサービス」とは:なぜ今、マイクロサービスなのか
90年代から、アプリケーションのコンポーネント化の試みが続けられてきた。そしてクラウド時代の今、新たに登場したのが「マイクロサービス」だ。
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の世界でのデファクトスタンダードとして急激に普及した。
マイクロサービスの主な属性
マイクロサービスは、非常に細分化された実行単位だ。
続きはComputer Weekly日本語版 2月18日号にて
本記事は抄訳版です。全文は、以下でダウンロード(無料)できます。
■Computer Weekly日本語版 最近のバックナンバー
Computer Weekly日本語版 2月4日号:クラウド価格競争の意外な結末
Computer Weekly日本語版 1月21日号:クラウドプロバイダーとの関係が破綻したら?
Computer Weekly日本語版 1月7日号:CIOがハマる5つの落とし穴
Copyright © ITmedia, Inc. All Rights Reserved.