モノリシックアーキテクチャとは、ソフトウェアの全ての機能や構成要素を単一の巨大なプログラムとして一体的に構築する設計手法です。AIシステムやWebアプリケーションの開発初期においてシンプルで効率的な反面、システムが大規模化すると改修や保守が難しくなる特徴を持ちます。
モノリシックアーキテクチャとは
モノリシックアーキテクチャとは、アプリケーションのユーザーインターフェース、ビジネスロジック、データアクセスなどの全機能をひとまとめにして開発・デプロイするシステム設計手法のことです。
詳しく解説
歴史的に多くのシステムで採用されてきた標準的なアプローチであり、AIシステムやWebサービスを構築する際にも初期段階でよく選ばれます。すべてのコンポーネントが単一のコードベースとして動作するため、開発環境の構築が容易であり、プロセス間の通信オーバーヘッドが発生しないためパフォーマンス面でのメリットがあります。しかし、AIモデルの推論機能やデータの前処理機能などを一つの巨大なプログラムに組み込むと、一部の機能改修であってもシステム全体を再ビルドしてデプロイする必要が生じ、大規模化に伴い運用効率が低下します。
具体例・使われ方
例えば、画像認識AIとチャットボット機能を搭載したWebアプリケーションを開発する際、AIモデルの読み込み、APIのルーティング、データベースとの接続、ユーザー管理のすべてを単一のPythonプログラムやフレームワーク上で動作させる構成がモノリシックアーキテクチャに該当します。
似た用語との違い
近年のAIシステムで主流となりつつあるマイクロサービスアーキテクチャと比較されます。マイクロサービスが機能を細かく分割して独立したサービスとして連携させるのに対し、モノリシックはすべてを一体化させるため、初期のシンプルさと引き換えに拡張性が制限される違いがあります。
注意点
AIの機能追加やモデルの頻繁なアップデートを行う際、システム全体への影響範囲が広がりやすく、障害発生時の切り分けが困難になる点に注意が必要です。また、開発チームが大人数になるとコードの競合が起きやすくなります。