Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

これなら分かる! マイクロサービス(入門編)~モノリスと比較した特徴、利点と課題

 IT用語の解説サイトや書籍は世にたくさんありますが、何だか難しいものばかりだと思いませんか? 知らない単語を検索したけれど、どのサイトを読んでも理解できずブラウザを閉じてしまった、なんて経験を持つ方も多いと思います。本連載はそんな事態に苦しむITエンジニアの皆さまに向けて、まわりくどい原典の説明や冗長な周辺情報を取り払い、できるだけシンプルで、ポイントを掴める解説を目指しました。第一回のテーマに選んだのは、「マイクロサービス」です。一時期「バズワード」と言えるほどもてはやされ、昨今ではシステム部門/ユーザー部門を問わず知っておくべき基礎項目にまで格上げされた感のあるこの用語。これから学ぼうとしていた方も、過去に調べて挫折した方も、改めて基本を確認したい方も、ぜひこの機会に知識を整理いただければ幸いです。

目次

はじめに:自己紹介

 西野大介(@nishino_chekhov)と申します。独立系SIerにて金融系システムの開発経験を経た後、現在はSOMPOシステムズ株式会社(損保ジャパン日本興亜グループ)に勤務しています。開発業務では、当社の持つレガシーな基幹系システムの大半をオープン化する「未来革新プロジェクト」に参画中です。本業以外では、国内/海外の各種カンファレンスへの登壇や企業向けの講演、そして本連載のような技術系記事の執筆により、テクノロジーに関する情報提供を幅広く行っております。

一言でいうと:マイクロサービスとは

 「マイクロサービス・アーキテクチャ」または単に「マイクロサービス」と呼ばれる開発手法。それがどのようなものかを一言で定義するなら、「複数の独立した機能を組み合わせることで、一つの処理を実現するアーキテクチャ」であると言えます。ポイントは、一つの処理を実現するのが一つの機能ではなく、複数の機能であるというところです。

※ アーキテクチャってそもそも何だっけ? と思った方は、「アプリケーションの構造」という言葉に置き換えてください。

図1:マイクロサービスとは
図1:マイクロサービスとは

 以降、この定義をもとに解説していきます。

前提:モノリスとは

 マイクロサービスについて理解するために、マイクロサービスでない従来型のアーキテクチャと比較していきましょう。従来型とは、先ほどの定義を裏返し「大きな単一の機能により、一つの処理を実現するアーキテクチャ」とすることができます。これを、マイクロサービスとの対比で、一般に「モノリシック・アーキテクチャ」または「モノリス」と呼びます。英語で「一枚岩」を意味し、「大きな単一機能」という特徴を表現したものです。

図2:モノリスとは
図2:モノリスとは

モノリスとの比較で見る構造

 より具体的な構造比較で両者を見ていきましょう。モノリスが一枚岩であるとは言っても、一般的なWebやスマホアプリを実現するシステムであれば、いわゆる三層構造(ユーザーインターフェース、ビジネスロジック、データ)のように役割によって分かれた構造になっているものが一般的です。

 しかし、ユーザーインターフェースからくるリクエストに対し、モノリスの場合は一つのマシン内に配置されている大きな機能によって処理を行います。対してマイクロサービスは、複数のマシンにまたがる機能に値を投げながら処理していきます。

図3:マイクロサービスとモノリスの比較(ビジネスロジック)
図3:マイクロサービスとモノリスの比較(ビジネスロジック)

 モノリスも内部的には機能ごとにプログラムが分かれていますが、あくまで同一マシンの中にあり、分割できません。つまり、モノリスはあくまで「大きな単一機能」です。対してマイクロサービスを構成する各機能は別のマシンに分かれており、通信によって値(テキストデータ)を投げ合うことによってつながります。これを定義の上で「独立した機能」としています。

※ なお、ここでいうマシンとは物理的なものとは限らず、仮想マシンやそれに類する技術も含みます。

図4:マイクロサービスとモノリスの比較(マシン)
図4:マイクロサービスとモノリスの比較(マシン)

著者プロフィール

  • 西野 大介(SOMPOシステムズ株式会社)(ニシノ ダイスケ)

     独立系SIerにて金融系システムの開発経験を経た後、現在はSOMPOシステムズ株式会社(損保ジャパン日本興亜グループ)に勤務。開発業務では、損保の基幹系システムをオープン化する大規模案件「未来革新プロジェクト」に参画中。本業以外では、CodeZineの連載をはじめ、国内/海外の各種カンファレンスへ...

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5