ざっくりと
- システムとインフラが一体
- 一つの大きな塊で構成
- 表裏一体の設計

モノリシックとは、システムとインフラが一体となる設計です。
概要説明
モノリシックとは、システム開発とインフラが一体となっている設計である。なぜならば、全てが密接に関連しているから。
例えば、データベースとアプリケーションが同じサーバーで動く場合。そして、変更が容易である。つまり、一箇所を変えると他も影響を受ける。だから、慎重な設計が必要。
職業職種

モノリシックは、名前の由来は一枚岩(monolith)です。一つの大きな塊で構成されるという意味がある。
代表例
- Linux Kernel
Linux Kernelは、モノリシックで有名である。なぜなら、システムの多くの部分が一つの大きなコードベースで管理されているから。例えば、デバイスドライバもこの中に組み込まれる。 - Oracle Database
Oracle Databaseは、モノリシックで名高い存在である。なぜなら、多くの機能が一つのソフトウェアパッケージに統合されているから。例えば、ストレージ、クエリ処理、トランザクション管理など。 - Adobe Photoshop
Adobe Photoshopは、モノリシックで世間に知られている。なぜなら、多くの画像編集機能が一つのアプリケーション内で提供されているから。例えば、レイヤー管理、フィルター、エフェクトなど。
手順例
以下は、モノリシックアーキテクチャの基本的な構築手順です。- 要件定義
要件定義は、プロジェクトのスタート地点である。なぜなら、何を作るのか明確にする必要があるから。例えば、機能や性能。 - 設計
設計は、要件を元にシステムの構造を決める。なぜなら、どの部分がどう連携するかを明確にする必要があるから。例えば、データベースとアプリケーションの関係。 - 開発
開発は、設計に基づいてコードを書く。なぜなら、設計が現実のものとなる過程であるから。例えば、プログラミング言語を使って機能を作る。 - テスト
テストは、作ったものがちゃんと動くか確認する。なぜなら、バグや不具合を見つける必要があるから。例えば、ユニットテストや結合テスト。 - デプロイ
デプロイは、作成したシステムを実際の環境に適用する。なぜなら、ユーザーが使えるようにする最終段階であるから。例えば、サーバーにアップロードする。
類似語
- 統合型
統合型は、モノリシックの類似語である。なぜなら、多くの機能や部分が一つにまとまっているから。例えば、オールインワンのプリンター。 - 集約型
集約型は、モノリシックの類似語である。なぜなら、多くの要素が一つの場所やシステムに集まっているから。例えば、ショッピングモール。 - 一体型
一体型は、モノリシックの類似語である。なぜなら、複数の部分が密接に連携して動作するから。例えば、スマートフォン。
反対語
- マイクロサービス
マイクロサービスは、モノリシックの反対語である。なぜなら、各機能が独立したサービスとして動くから。例えば、認証サービスとデータベースサービスが別々に動く。 - 分散型
分散型は、モノリシックの反対語である。なぜなら、システムが複数の部分に分かれて動作するから。例えば、クラウドコンピューティング。 - モジュラー
モジュラーは、モノリシックの反対語である。なぜなら、各部分が独立していて、必要に応じて組み合わせられるから。例えば、パソコンの拡張カード。
会話例
- ITエンジニア同士のプロジェクトミーティング
「このシステム、モノリシックでいくの?」
「うん、今回はスケールが小さいからモノリシックで十分だと思う。」 - デザイナーとエンジニアの対話
「モノリシックな設計、ユーザーにはどう影響するの?」
「全体が一つにまとまっているから、使いやすさは高いけど、一部に問題が出ると全体に影響するよ。」 - マネージャーとエンジニアの進捗確認
「モノリシックでの開発、進捗はどう?」
「順調だよ。ただ、後で拡張するのが少し大変かも。」
注意点
モノリシックを使用する時の注意点は、柔軟性が低いことである。なぜならば、一つの部分を変更すると、他の部分にも影響が出やすいからだ。
例えば、新しい機能を追加すると、既存のコードも修正する必要がある。そして、テストも広範に行う必要がある。だから、計画的に進めることが大事。

モノリシックと統合型は、間違えやすいので注意しましょう。
モノリシックは、システム全体が一つの塊で動作することです。

一方、統合型は、複数の機能が一つのプラットフォームで提供されることです。
コメント