モノリシックとは?システム開発での重要性を解説

ざっくりと

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

モノリシックとは、システムとインフラが一体となる設計です。

概要説明

モノリシックとは、システム開発とインフラが一体となっている設計である。なぜならば、全てが密接に関連しているから。

例えば、データベースとアプリケーションが同じサーバーで動く場合。そして、変更が容易である。つまり、一箇所を変えると他も影響を受ける。だから、慎重な設計が必要。

職業職種

  • システムエンジニア
    システムエンジニアは、モノリシック設計をよく使用する。なぜなら、一つのシステムで全てを管理できるから。例えば、小規模なプロジェクト。
  • データベース管理者
    データベース管理者は、モノリシック設計に関わることが多い。なぜなら、データベースもシステムの一部として密接に関連しているから。例えば、バックエンドの設計。
  • プロジェクトマネージャー
    プロジェクトマネージャーは、モノリシック設計の選定をすることがある。なぜなら、プロジェクトの規模やニーズに応じて最適な設計を選ぶ必要があるから。例えば、新しいスタートアップ企業。

モノリシックは、名前の由来は一枚岩(monolith)です。一つの大きな塊で構成されるという意味がある。

代表例

  • Linux Kernel
    Linux Kernelは、モノリシックで有名である。なぜなら、システムの多くの部分が一つの大きなコードベースで管理されているから。例えば、デバイスドライバもこの中に組み込まれる。
  • Oracle Database
    Oracle Databaseは、モノリシックで名高い存在である。なぜなら、多くの機能が一つのソフトウェアパッケージに統合されているから。例えば、ストレージクエリ処理、トランザクション管理など。
  • Adobe Photoshop
    Adobe Photoshopは、モノリシックで世間に知られている。なぜなら、多くの画像編集機能が一つのアプリケーション内で提供されているから。例えば、レイヤー管理、フィルター、エフェクトなど。

手順例

以下は、モノリシックアーキテクチャの基本的な構築手順です。
  1. 要件定義
    要件定義は、プロジェクトのスタート地点である。なぜなら、何を作るのか明確にする必要があるから。例えば、機能や性能。
  2. 設計
    設計は、要件を元にシステムの構造を決める。なぜなら、どの部分がどう連携するかを明確にする必要があるから。例えば、データベースとアプリケーションの関係。
  3. 開発
    開発は、設計に基づいてコードを書く。なぜなら、設計が現実のものとなる過程であるから。例えば、プログラミング言語を使って機能を作る。
  4. テスト
    テストは、作ったものがちゃんと動くか確認する。なぜなら、バグや不具合を見つける必要があるから。例えば、ユニットテストや結合テスト。
  5. デプロイ
    デプロイは、作成したシステムを実際の環境に適用する。なぜなら、ユーザーが使えるようにする最終段階であるから。例えば、サーバーにアップロードする。

類似語

  • 統合型
    統合型は、モノリシックの類似語である。なぜなら、多くの機能や部分が一つにまとまっているから。例えば、オールインワンのプリンター。
  • 集約型
    集約型は、モノリシックの類似語である。なぜなら、多くの要素が一つの場所やシステムに集まっているから。例えば、ショッピングモール。
  • 一体型
    一体型は、モノリシックの類似語である。なぜなら、複数の部分が密接に連携して動作するから。例えば、スマートフォン。

反対語

  • マイクロサービス
    マイクロサービスは、モノリシックの反対語である。なぜなら、各機能が独立したサービスとして動くから。例えば、認証サービスとデータベースサービスが別々に動く。
  • 分散型
    分散型は、モノリシックの反対語である。なぜなら、システムが複数の部分に分かれて動作するから。例えば、クラウドコンピューティング。
  • モジュラー
    モジュラーは、モノリシックの反対語である。なぜなら、各部分が独立していて、必要に応じて組み合わせられるから。例えば、パソコンの拡張カード。

会話例

  • ITエンジニア同士のプロジェクトミーティング
    「このシステム、モノリシックでいくの?」
    「うん、今回はスケールが小さいからモノリシックで十分だと思う。」
  • デザイナーとエンジニアの対話
    「モノリシックな設計、ユーザーにはどう影響するの?」
    「全体が一つにまとまっているから、使いやすさは高いけど、一部に問題が出ると全体に影響するよ。」
  • マネージャーとエンジニアの進捗確認
    「モノリシックでの開発、進捗はどう?」
    「順調だよ。ただ、後で拡張するのが少し大変かも。」

注意点

モノリシックを使用する時の注意点は、柔軟性が低いことである。なぜならば、一つの部分を変更すると、他の部分にも影響が出やすいからだ。

例えば、新しい機能を追加すると、既存のコードも修正する必要がある。そして、テストも広範に行う必要がある。だから、計画的に進めることが大事。

モノリシックと統合型は、間違えやすいので注意しましょう。

モノリシックは、システム全体が一つの塊で動作することです。

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

記事を書いてる人

ガラケー時代からWEB開発やってる自宅SE です。

「○○を知りたい!!」「○○が分からない!!」などありましたら、Twitterでもブログでもコメントいただければ、ご期待に添えるように頑張ります!

ネット事件簿チャンネルを運営しているので、YouTubeもぜひ覗いてみてください!!

雨おやじのSNSを覗く!!
IT用語辞典
雨おやじのSNSを覗く!!
ITkagyo

コメント