【ものりす】

モノリス とは?

最終更新:
💡 中の役割は分けられる、ひとまとまりのアプリ

アプリケーションの主要な機能を、ひとまとまりの単位として構築・デプロイする構成。内部を複数の層やモジュールに分けることも、外部のデータベースやサービスを利用することもできる。物理サーバーが必ず1台という意味ではない。

📌 このページのポイント
アプリのデプロイ単位を比べるモノリスマイクロサービス注文注文商品商品通知通知まとめて配布個別に配布モノリスでも、中の役割は分けられるよ
主要機能のデプロイ単位の模式的な比較。箱は物理サーバーではありません。分割後も連携や変更の調整は必要です。
ひよこ ひよこ
全部が、一つのファイルになるの?
ペンギン先生 ペンギン先生
一つのファイルとは限らないよ。画面、注文、通知などを複数のファイルやモジュールに分けられる。大切なのは、主要な機能を一つのアプリの単位で構築・デプロイするところなんだ。
ひよこ ひよこ
データベースも、同じ箱に入る?
ペンギン先生 ペンギン先生
外のデータベースやサービスとやり取りしても、モノリスになり得るよ。アプリ自身の主要な動作とデプロイのまとまりを見る。図の大きな箱はアプリの単位で、1台のサーバーを表しているわけではないんだ。
ひよこ ひよこ
よいところは、何?
ペンギン先生 ペンギン先生
一つのアプリとして開発・テスト・デプロイを整理しやすいよ。機能間の連携を、同じプログラム内の呼び出しで行える場合もある。ただし、どんなチームでも最も効率的とは決まらないね。
ひよこ ひよこ
アクセスが増えたら、台数を増やせない?
ペンギン先生 ペンギン先生
増やせるよ。アプリのコピーを複数動かして、ロードバランサーで振り分ける方法がある。モノリスでは特定の機能だけでなく、アプリ全体を増やす構成が基本になるんだ。
ひよこ ひよこ
マイクロサービスに変えるべき?
ペンギン先生 ペンギン先生
個別にデプロイしたい機能や、チームの境界、運用能力を考えよう。サービスへ分けると通信や障害対応も増える。一方、モノリスでは変更のリリースがまとまりやすい。内部の役割を整理し、今の課題に合わせて判断するんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「モノリス」って出てきたら「主要な機能をひとまとまりで配布するアプリ構成」と思えばだいたいOK!
📖 おまけ:英語の意味
「Monolith」 = 一枚岩
💬 ソフトウェアでは、アプリを一つのまとまりとして扱うイメージで使われるよ。内部まで区切れないという意味ではないんだ。

参考資料

← 用語集にもどる