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

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

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

[Janakiram MSV,Computer Weekly]
Computer Weekly

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

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

16157.gif

本記事は、プレミアムコンテンツ「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 マーケティング新着記事

news065.jpg

サイバー・バズ がインフルエンサーコマース事業を開始
サイバー・バズは、SNSで影響力を持つ人気のインフルエンサーが愛用品やおすすめ商品をピ...

news128.jpg

トライバルメディアハウスがPinterestと協働プロジェクトを開始
トライバルメディアハウスは、ピンタレスト・ジャパンと協働でプロジェクトを進めること...

news109.jpg

「リードが足りない」の解消へ、toBeマーケティングとWEICが「MAPlus NIKITA」を提供
toBeマーケティングとWEICは、戦略的業務提携を行い、MA運用におけるリード数不足を解決...