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

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

2015年02月27日 08時00分 公開
[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 マーケティング新着記事

news016.png

「サイト内検索」&「ライブチャット」売れ筋TOP5(2024年4月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。

news115.jpg

コカ・コーラ流 生成AIをマーケティングに活用する方法(無料eBook)
生成AIがこれからのマーケティングをどう変えるのかは誰もが注目するテーマ。世界最先端...

news080.jpg

DIORが本気で挑むラグジュアリー体験としてのAR
広告プラットフォームのTeadsがAR(拡張現実)とAI(人工知能)技術を応用したサービスを...