モノリシック・アーキテクチャの解体:「大きな建物」によるソフトウェアへのアプローチ
By phuongkt, at: 2023年1月28日20:23
Estimated Reading Time: __READING_TIME__ minutes
ソフトウェアアプリケーションはどのように構築されるのか疑問に思ったことはありますか?
今日は、最も伝統的で基本的なアプローチの1つであるモノリシックアーキテクチャについて探求してみましょう。
巨大な、オールインワンのデパートを建てていると想像してみてください。モノリシック設計では、この店は単なる大きな建物ではなく、ビジネス全体です。すべての部門(衣料品、電化製品、カスタマーサービス、チェックアウト、在庫管理)は1つの屋根の下にあり、同じユーティリティを使用し、同じ基本的な構造を共有しています。
モノリスとは正確には何ですか?
ソフトウェアの世界では、モノリシックアプリケーションとは、ソフトウェアを構成するすべての異なるコンポーネント(ユーザーインターフェース、ビジネスロジック、データアクセスレイヤーなど)が単一の、統合されたユニットとしてパッケージ化され、デプロイされるものです。アプリケーションの実行に必要なすべてを含む、単一の大きな実行可能ファイルまたはデプロイメントと考えてください。
建物の良い面
小規模に始める場合、モノリシックアプローチにはいくつかの明確な利点があります。
-
開始が簡単: 始めるのが早いことがよくあります。多くの相互接続された部品ではなく、1つのものを構築しています。
-
デバッグが簡単: すべてが1つの場所にあるため、バグの追跡がより簡単になります。
-
運用オーバーヘッドの削減: デプロイと管理が必要なアプリケーションは1つだけです。
高層ビルの成長の課題
ただし、「デパート」が大きくなるにつれて、モノリシックアプローチはひび割れ始めます。
-
スケーリングの問題: 「電化製品」部門だけが顧客で溢れている場合でも、余分な負荷を処理するためにデパート全体を複製する必要があります。一部だけを個別にスケーリングすることはできません。
-
開発の遅延: 店舗の小さな隅での変更は、建物全体の再評価と再テストを必要とする可能性があり、イノベーションを遅らせます
-
テクノロジーロックイン: 最初に選択したテクノロジーに固執することがよくあります。新しくてより良い在庫システムを使用したいですか?既存の店舗の大部分を再構築することを意味するかもしれません
-
信頼性のリスク: 店舗の小さな部分に重大な障害が発生した場合、操作全体が停止する可能性があります。
いつ意味をなしますか?
モノリシックアーキテクチャは本質的に悪いものではありません。成長が予測可能な、より小さく、複雑さの少ないアプリケーションの場合、完全に有効で効率的な選択肢となりえます。
ただし、アプリケーションがより大きく、より複雑になり、より高いスケーラビリティと柔軟性が必要になるにつれて、モノリスの制限により、開発者は他のアーキテクチャスタイル、特にマイクロサービスを模索することが多くなります。
モノリスを理解することは、ソフトウェア設計の進化と、さまざまな課題に対処するために異なるアプローチが存在する理由を理解するための鍵となります!
モノリシックアプリケーションについてどう思いますか? それらを使用したことがありますか、そしてあなたの経験は何でしたか?