2015年7月31日

イマ旬キーワード

マイクロサービス

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

基盤システム事業本部 武田 健太郎

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

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

マイクロサービス

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

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

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

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

【写真】

著者プロフィール

【写真】

基盤システム事業本部 武田 健太郎

オープンソースソフトウェアを活用したITインフラ技術を専門とする。特にOS・クラウド・ストレージといった技術分野での経験が豊富。近年はシリコンバレーエリアで技術の目利きを実施している。

お気軽に
お問い合わせ
ください

クラウドネイティブ世代のアタリマエを実現するマイクロサービスに関するお問い合わせ

お問い合わせフォーム

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

サービス

お客様に安心して利用いただける最適なクラウド基盤を実現

システム開発の手順・環境やサポートを一体化したトータルソリューションで、お客様業務の大幅効率化を実現