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