モノリスとは、システムに必要な機能を、一つのアプリケーションにまとめて作る方法です。ITの分野では「モノリス型」や「モノリシックアーキテクチャ」とも呼ばれます。
作り始めやすく、全体をまとめて管理できる点がメリットです。一方、システムが大きくなると、変更や機能追加がむずかしくなる場合があります。
関連するIT用語・ビジネス用語をまとめて確認したい方は、IT用語・ビジネス用語一覧もあわせてご覧ください。
モノリスとは
かんたんに言うと、モノリスとは「多くの機能を一つにまとめたシステム」です。
例えば、ネットショップには、商品検索、会員登録、注文、在庫管理などの機能があります。モノリス型では、これらの機能を一つのアプリケーションとして作ります。
アプリケーションとは、パソコンやスマートフォンなどで目的の処理を行うためのソフトウェアです。すべての機能をまとめて動かし、まとめて更新する点がモノリスの特徴です。
モノリスの意味と語源
モノリスは、英語で「一枚岩」を意味する「monolith」から来た言葉です。一枚岩とは、一つの大きな岩のように、全体がまとまっている状態を表します。
ITでは、画面の表示、データの処理、データベースとのやり取りなどが、一つのまとまりとして作られたシステムを指します。
モノリシックアーキテクチャとも呼ばれる
モノリス型のシステム構成は、モノリシックアーキテクチャとも呼ばれます。アーキテクチャとは、システムをどのような形で作るかを示す設計方法です。
「モノリス」と「モノリシックアーキテクチャ」は、ITの記事ではほぼ同じ意味で使われます。
モノリスの仕組み
モノリス型では、システムの機能を一つのアプリケーション内にまとめます。それぞれの機能は同じプログラムの中で連携します。
ネットショップを例にすると、次のような機能が一つにまとめられます。
- 商品を検索する機能
- 会員情報を登録する機能
- 商品を注文する機能
- 在庫を管理する機能
- 注文履歴を確認する機能
機能を変更したときは、一般にアプリケーション全体を確認し、まとめてサーバーへ反映します。サーバーとは、利用者からの要求を受け取り、データや機能を提供するコンピューターです。
一つのファイルにまとめるわけではない
モノリスは、すべての処理を一つのファイルに書く方法ではありません。実際には、役割ごとに複数のファイルや部品へ分けて作れます。
重要なのは、細かなファイル数ではなく、アプリケーション全体を一つのまとまりとして動かし、更新する点です。
モノリスを身近な例で考える
モノリスは、予定、連絡先、日記などを一冊のノートにまとめる方法に似ています。
一冊だけを持ち歩けばよいため、最初は管理がかんたんです。しかし、書く内容が増えると、目的のページを探したり、一部を整理したりするのに時間がかかります。
ITのモノリスも同じように、小さなうちは全体を管理しやすい方法です。ただし、機能や利用者が増えると、変更する場所や確認する範囲が広がることがあります。
モノリスが使われる場面
モノリス型は、古いシステムだけで使われる方法ではありません。新しく作るシステムでも、規模や目的によって選ばれます。
主に、次のような場面で使われます。
- 小規模なWebサイトやWebサービス
- 社内だけで使う業務システム
- 少人数で開発するアプリケーション
- 必要な機能を早く形にしたい場合
- 機能の数や変更が少ないシステム
構成が比較的わかりやすいため、小さく始めるシステムと相性のよい方法です。
モノリスのメリット
仕組みをシンプルにしやすい
必要な機能を一つのアプリケーションにまとめるため、作り始めの構成をシンプルにできます。管理するアプリケーションの数も増えません。
小規模なシステムでは、全体の動きを確認しやすい点がメリットです。
開発を始めやすい
機能を分けて動かすための複雑な仕組みを、最初から用意する必要がありません。そのため、少人数でも開発を始めやすい傾向があります。
試作品を作り、利用者の反応を見ながら改善する場合にも使われます。
機能どうしを連携させやすい
それぞれの機能が一つのアプリケーション内にあります。そのため、別のシステムとの通信を何度も行わずに処理できます。
通信の仕組みが少なくなるため、処理の流れを作りやすい場合があります。
まとめて確認しやすい
アプリケーション全体を一つのまとまりとして確認できます。小規模なうちは、動作確認や更新をまとめて行いやすい方法です。
モノリスのデメリット
変更の影響が広がりやすい
複数の機能が一つのアプリケーション内でつながっています。そのため、一部を変更しただけでも、ほかの機能に影響することがあります。
システムが大きくなるほど、変更後に確認する範囲も広くなります。
一部の機能だけを更新しにくい
モノリス型では、一般にアプリケーション全体をまとめて更新します。一つの機能だけを変えたい場合でも、全体の動作確認が必要になることがあります。
更新する回数が多いシステムでは、この確認作業が負担になる場合があります。
一部だけを強化しにくい
例えば、商品検索だけに利用が集中しても、その機能だけを切り離して強化するのはかんたんではありません。アプリケーション全体を増やして対応する場合があります。
利用が集中する機能に差があるシステムでは、必要以上にコンピューターの力を使うことがあります。
規模が大きくなると管理しにくい
機能やプログラムが増えると、全体の関係が複雑になります。担当者が変更内容を理解するまでに、時間がかかることもあります。
ただし、機能ごとの区切りを意識して作れば、モノリスでも整理しやすくできます。
モノリスとマイクロサービスの違い
モノリスとよく比較される言葉が、マイクロサービスです。マイクロサービスとは、システムを小さな機能に分け、それぞれを独立して動かす設計方法です。
| 比較する点 | モノリス | マイクロサービス |
|---|---|---|
| システムの形 | 機能を一つにまとめる | 機能を小さく分ける |
| 更新方法 | 全体をまとめて更新する | 機能ごとに更新できる |
| 作り始め | 比較的シンプル | 多くの仕組みが必要 |
| 機能の連携 | 同じアプリケーション内で連携する | 通信を使って連携する |
| 規模の拡大 | 一部だけを強化しにくい | 必要な機能だけを強化しやすい |
| 向いている場面 | 小規模なシステムや少人数の開発 | 大規模なシステムや複数チームの開発 |
モノリスは一冊のノートに情報をまとめる形です。マイクロサービスは、予定表、住所録、日記を別々のノートに分ける形に近いといえます。
分ければ必ず便利になるわけではありません。ノートが増えると、それぞれの管理や情報の受け渡しが必要になるように、マイクロサービスにも管理の手間があります。
モノリスとマイクロサービスはどちらがよい?
どちらが優れているかは、システムの規模や目的によって変わります。小規模なシステムにマイクロサービスを使うと、仕組みが必要以上に複雑になることがあります。
反対に、多くの機能を複数のチームで何度も更新する場合は、マイクロサービスが向いていることがあります。大切なのは、必要な規模に合った方法を選ぶことです。
モジュラーモノリスとは
モジュラーモノリスとは、モノリスの中を、役割ごとの部品に分けて整理する方法です。アプリケーション全体は一つですが、内部では機能の区切りを明確にします。
モノリスのシンプルさを保ちながら、機能どうしの影響を小さくすることが目的です。モノリスとマイクロサービスの中間に近い考え方として紹介されることがあります。
初心者が間違えやすい点
モノリスは古いから悪いとは限らない
モノリスは以前から使われている方法ですが、古いから悪いわけではありません。小さなシステムでは、作りやすさや管理のしやすさが大きなメリットになります。
新しいシステムでも、目的に合えばモノリスが選ばれます。
モノリスは変更できないシステムではない
モノリスでも、機能の追加や変更はできます。ただし、機能が強くつながっていると、変更後に確認する範囲が広くなります。
変更できるかどうかではなく、変更するときにどこまで影響するかが重要です。
大規模なシステムがすべてマイクロサービスとは限らない
大規模なシステムでも、モノリス型で動いているものがあります。安定して動いている場合は、無理に分けない方がよいこともあります。
システムの大きさだけでなく、更新の回数、利用者数、開発する人数などを見て判断します。
モノリスに関するよくある質問
モノリスとモノリシックの違いは何ですか?
ITでは、どちらも機能を一つのアプリケーションにまとめた構成を表します。「モノリス型」と「モノリシックアーキテクチャ」は、ほぼ同じ意味です。
モノリスは一台のサーバーで動くのですか?
必ずしも一台とは限りません。同じアプリケーションを複数のサーバーで動かし、利用者からの要求を分けて処理することもできます。
サーバーの台数ではなく、アプリケーションが一つのまとまりになっている点が判断の基準です。
モノリスからマイクロサービスへ変更できますか?
変更はできますが、一度にすべてを分ける必要はありません。必要な機能から少しずつ切り離す方法もあります。
変更には新しい管理の仕組みも必要になるため、目的を明確にすることが大切です。
モノリスはどのようなシステムに向いていますか?
機能が少ないシステム、少人数で作るシステム、早く形にしたいシステムなどに向いています。機能どうしを分ける必要性が低い場合にも使いやすい方法です。
まとめ|モノリスとは機能を一つにまとめたシステム
モノリスとは、画面、データの処理、データベースとのやり取りなどを、一つのアプリケーションにまとめる設計方法です。「一枚岩」を意味する言葉で、モノリシックアーキテクチャとも呼ばれます。
仕組みが比較的シンプルで、開発を始めやすい点がメリットです。一方、規模が大きくなると、変更の影響が広がり、一部の機能だけを更新しにくくなる場合があります。
マイクロサービスは機能を小さく分ける方法ですが、常にモノリスより優れているわけではありません。システムの規模、更新回数、開発人数などに合わせて選ぶことが大切です。
