SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これなら分かる! エンジニアが知っておきたいIT業界用語

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


  • このエントリーをはてなブックマークに追加

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

  • このエントリーをはてなブックマークに追加

はじめに:自己紹介

 西野大介(@nishino_chekhov)と申します。SOMPOホールディングス株式会社デジタル戦略部(SOMPO Digital Lab)に所属し、損保ジャパン日本興亜グループにおける先進技術の研究開発を担当しています。本業以外では、国内/海外の各種カンファレンスへの登壇や企業向けの講演、そして本連載のような技術系記事の執筆により、テクノロジーに関する情報提供を幅広く行っております。

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

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

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

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

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

前提:モノリスとは

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

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

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

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

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

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

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

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

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

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
マイクロサービスの利点

修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
これなら分かる! エンジニアが知っておきたいIT業界用語連載記事一覧
この記事の著者

西野 大介(SOMPOホールディングス株式会社)(ニシノ ダイスケ)

 SOMPOホールディングス株式会社デジタル戦略部(SOMPO Digital Lab)勤務。損保ジャパン日本興亜グループにおける先進技術の研究開発を担当。過去には基幹システムの開発にも従事し、SoR/SoE双方の開発において幅広い経験を持つ。本業以外では、CodeZineの連載をはじめ、国内/海外の各種カンファレンスへの登壇や企業向けの講演にてテクノロジー情報を幅広く提供している。主な登壇実績:IBM THINK(米ラスベガス)、Java Day Tokyo、IBM THINK Ja...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11055 2019/06/21 10:22

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング