
104
分散アーキテクチャとは、システムの機能を分割し、各々を独立して
デプロイ可能なアプリケーションとして構築するアーキテクチャです。
分割したアプリケーション同士が必要に応じて連携を取ります。分散
アーキテクチャにおける個々のアプリケーションは、しばしばサービス
と呼ばれます。
それぞれのアーキテクチャにはメリットとデメリットがあります。
モノリシックアーキテクチャのメリットとデメリット
モノリスはシンプルさが最大の特長であり、以下のようなメリットが
あります。
●
ソースコードの管理や、ビルドやデプロイが容易である
●
システム全体のテストがしやすい
●
単一のアプリケーション内でトランザクションが完結するため、ト
ランザクションの整合性を保つのが容易である
●
採用する技術スタックを統一できるため、IT統制をかけやすい
一方で以下のようなデメリットがあります。
●
ビルドやデプロイに長時間を要する
●
モジュールやコンポーネント間の依存関係が複雑化することで巨大
な泥団子パターンに陥ってしまい、保守性が低下しやすい
●
特定機能に小さな変更を加えるだけでもアプリケーション全体のビ
ルド、デプロイが必要となってしまう
●
特定機能の負荷が高まることでシステム全体の性能に影響が出るリ
スクや、特定機能のクラッシュによりシステム全体が停止するリス
クがある
●
アプリケーションのスケーリングが難しい場合があり、特に単一の
データベースがボトルネックとなりやすい
●
各モジュールやコンポーネントの機能性実現のために多くのライブ