モノリス(モノリシック)は、アプリの機能を 1つの大きなまとまりとして作る 構成です。「一枚岩」という意味で、マイクロサービス と対になる、伝統的なスタイルです。
すべての機能が1つのプログラムに収まっているため、小規模なうちは、多くの利点があります。
- シンプル … 構成が分かりやすく、全体を把握しやすい。
- 開発が始めやすい … 最初の立ち上げが早い。
- デプロイが単純 … 1つを デプロイ すればよい。
- 内部の連携が速い … サービス間のネットワーク通信が要らない。
そのため、新しいプロジェクトは「まずモノリスで始める」のが、しばしば賢明とされます。
一方、規模が大きくなると、課題が出てきます。
- 一部の変更が、全体に影響しやすい。
- 巨大化すると、動作が重く、理解も大変になる。
- 一部だけを スケール することが難しい。
こうした課題が無視できなくなった段階で、マイクロサービス への分割を検討します。「小さく始めてモノリス、必要に応じて分割」という進め方が、現実的とされています。