Flexible InterConnect
用語集
モノリシック
モノリシック(monolithic)とは直訳すると「がっしりとかたまっている」「一枚岩のような」という意味です。
このことに由来し、ソフトウェア設計の際、部分的に分割をせず、全て同一のモジュールとして作り上げることをモノリシックな設計と言います。
モノリシックの対義語はマイクロです。限定されたサービスをAPIとして提供する開発会社が増え、企業からの需要も高まっている「マイクロサービス」という言葉にも使われています。
マイクロには「小さな」「微細な」という意味があります。ソフトウェアの設計として小さくモジュールを分割することをマイクロな設計と言います。
モノリシックな設計はソフトウェアが動作する際に外部モジュールを使用しないため、モジュール間通信が必要なく高速な動作が可能になります。
一方で、すべてのコードを一体化しているために、修正や追加をしにくい状態です。また、一部の障害が全体に影響を及ぼすこともあります。
マイクロな設計では修正や変更が必要な場合に、変更が不要なモジュールに影響を与えずに済むといった利点があります。
一方で各モジュール間通信が必要なため、遅延によるロスが生じます。そのため、ソフトウェアに求められるのは高速な動作なのか、または柔軟な修正や変更に対応できるものなのか、といった要件を見極めながら設計する必要があります。
高速な動作を求める場合はモノリシックな設計を、変更・修正を継続的に行う場合はマイクロな設計を選択すべきです。