- Japan Edition
- ZDNet is available in the following editions:
- Austrailia
- Asia
- China
- France
- Germany
- United Kingdom
- USA
- Blog
- ホワイトペーパー
- 企業情報センター
- 話題の1本
- builder by ZDNet Japan
- CNET Japan
- TechRepublic Japan
こんにちは。デプロイ王子こと廣瀬一海です。前回はインフラストラクチャアーキテクチャとして、Serverless Computingを取り上げました。今回はソフトウェアアーキテクチャとして話題となっている「マイクロサービスアーキテクチャ(Microservice Architecture)」を取り上げ、そのメリットとデメリットについて説明します。
この数年の間に、私たちが開発するソフトウェアが対象とするクライアントデバイスは多様化し、求められる機能も大幅に増えてきました。クライアントに合わせて、開発言語やフレームワークや手法も異なり、開発製品の一部にクラウドが提供するサービスを活用するケースも多くなってきました。
今回解説するマイクロサービスアーキテクチャは、これらの変化に対応するには「どのような仕組みが良いか?」「どのように分離するのが適切であるか?」というソフトウェア工学におけるSoC(関心の分離)の延長上にある考えです。
マイクロサービスという言葉は、ThoughtWorks社のJames Lewis氏が、2012年にポーランドのクラクフで開催されたJava言語のカンファレンス「33rd Degree Conference」にて、“Micro services - Java, the Unix Way” という題で自社のケーススタディとして発表しました。
その後2014年にLewis氏は、同じくThoughtWorks社に努めるMartin Fowler氏と共に『Microservices』を執筆しました。この記事はマイクロサービスに関する資料として、多くの開発者がエンタープライスソフトウェア開発における指針として参考にするようになりました。
マイクロサービスとはどのような仕組みのアーキテクチャなのか、従来のアプリケーションと比較してみましょう。下図の右がマイクロサービス、左が従来型のモノリシックなアプリケーションです。
ここで言うモノリシックなアプリケーションとは、エンタープライズ向けのアプリケーションサーバ実装やフレームワークを用いた階層型のマルチティアアーキテクチャを指します。エンタープライズの大規模企業システム向けJava実装であったJ2EEとJavaEEは、この十数年の間、JBoss、WebSphere、WebLogic、GlassFishのような、アプリケーション統合基盤上に展開・実装されてきました。
このようなマルチティアアーキテクチャの特徴は次のとおりです。
上図の用語の補足ですが、“境界付けられたコンテキスト”とは、ドメイン駆動設計(DDD)の用語で、論理的に作られたグループであるドメインの境界を指すものです。やや乱暴な例えですが、分かりやすくイメージするために、大きな企業組織の各部門を想像してみてください。この場合における“境界付けられたコンテキスト”は各部門のアプリケーションのデータを管理するモデルを指します。
では、マイクロサービスアーキテクチャの場合はどうでしょうか。特徴を以下に挙げてみます。
マイクロサービスは、従来1つのフレームワークとライブラリで開発されていたモノリシック(一枚岩)なソフトウェアを、RESTなどのシンプルなWeb APIを用いて業務単位に分割してコンポーネント化し、Web APIのサービス同士を結合することで全体のプロダクトサービスを構成しようとする設計です。また、ストレージもデータの性質に合わせて適材適所で選択することになります。
ユーザー部門が複雑なデータ加工・準備を1クリックで実行。IT部門がデータガバナンスを提供。分析結果は全社で見える化。BIソリューションの理想が、ここにあります。
多くの企業においてITに求められる役割が、「守り」のコスト削減から「攻め」のビジネス貢献へとシフトしつつある。その中でIBMが提唱する新たなビジョンEnterprise Hybrid ITとは?
2016年1月に始まる社会保障と税の共通番号(マイナンバー)制度への対応状況について、あてはまるものを選んでください。
ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。