NTT DATA

DATA INSIGHT

NTTデータの「知見」と「先見」を社会へ届けるメディア

絞り込み検索
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
background-image-careers
2015年7月31日技術ブログ

クラウドネイティブ世代のアタリマエを実現するマイクロサービス

先週に引き続き、注目が集まる「マイクロサービス」の特徴と有効性、活用が期待される領域や効果について、新たな視点で解説します。

アプリケーションをクラウドネイティブに構成すること

企業や団体のクラウド採用はパブリック・プライベートともに増加傾向にあります。しかしながら、基盤としてIaaSのようなクラウドを採用したとしても、アプリケーションがオンプレミスを前提とした構成をとっているかぎり、迅速性や柔軟性といったクラウドのメリットを最大限享受することはできません。変化に対応することを前提とし、インフラのサービス化による「突き放し」と「割り切り」を許容する、いわゆる「クラウド的な発想」を持ち、アプリケーションをクラウドネイティブに構成することの重要性が認識され始めています。

マイクロサービス

一方で、2014年ころから、マイクロサービスというアプリケーションの構成方法が注目を浴びています。ことばの詳細はJames Lewis, Martin Fowler両氏の記事参考1などに記されていますが、ひとことで表現するならば、「小さなサービスを組み合わせて大きな仕組みを実現する方法」のことです。各サービスは単独で機能し、互いに疎結合であり、シンプルなインタフェースで接合されている、という構成です。往年のSOAに似ていますが、SOAよりもさらにサービスの粒度は細かい傾向にあり、さらに、開発と運用のライフサイクルやインフラの自動化までを考え方に含めているのが異なっています。名著「UNIXという考え方」参考2には、プログラムを小さく単純なものにすることで、移植性やスケーラビリティを高くできる、ということが記されていますが、この思想をシステムアーキテクチャでも実現するのがマイクロサービスのカナメなのだと筆者は理解しています。

マイクロサービスとクラウドネイティブアプリ

マイクロサービスはクラウドネイティブアプリをつくる手段のひとつとして有用です。マイクロサービスの考え方でシステムアーキテクチャを設計すると、必要となる単機能サービス群を列挙し、それをレゴブロックのように組み合わせて全体像をデザインすることになります。各サービスはシンプルで独立性が高く容易にスケールアウト可能で、クラウド上で構成するには好都合なわけです。障害耐性の面でも、マイクロサービスにより描かれる「サービス間のメッセージンググラフ」と、クラウドにおける障害管理単位(リージョンやゾーン)と適切にマッピングすることで、束になって障害に備える、ということが容易に実現できるわけです。

「変化に素早く対応したい」「束になって障害耐性を担保したい」「継続的な開発運用を効果的に実施したい」「容易にスケールアウトさせたい」というのは、クラウドネイティブ世代の「アタリマエ」です。この「アタリマエ」に応える手段が経験的に溜まっていき、それを体系化したのがマイクロサービスだといえます。基盤としてのクラウド利用検討と並行して、アプリケーションの構成・つくりかた・運用の仕方をクラウドネイティブにしていく、という取り組みは、今後さらに活発になってくると考えられます。

【写真】

お問い合わせ