モノリシック アプリケーションは、複数の機能のユーザー インターフェイスとデータ アクセス レイヤを1つのアプリケーションに統合します。通常、モノリシック アプリケーションは、組織内の複数のチームによって変更される単一のコードベースとして存在し、それらのチームが管理するすべての機能を含む単一のユニットとしてデプロイされます。
モノリシック アプリケーションは、コンポーネントが密結合されているため、多くの場合でより簡単に開発および導入できます。ただし、アプリケーションの範囲とパフォーマンスの需要が増えると、モノリスの保守と拡張が困難になる可能性があります。
モノリシック システムは、迅速に拡張したり、定期的に保守したりする必要のない、小規模で複雑性の低いアプリケーションに適しています。以下に、一般的にモノリシックな基盤を持つアプリケーションの例を示します(ただし、新しい機能は、よりコンテナ化されたインフラストラクチャに基づいている場合があります)。
モノリシック アーキテクチャの一部分は時代遅れになってきてますが、依然として多くの用途と長所があります。
モノリスのメリットは次のとおりです。
モノリスの特異的性質にはメリットがありますが、問題を引き起こす可能性もあります。
モノリスのデメリットは次のとおりです。
モノリシック アーキテクチャとは対照的に、マイクロサービス アーキテクチャがあります。マイクロサービスは、大規模で複雑なアプリケーションを小さなコンポーネントから構築するソフトウェア アーキテクチャに対するアプローチです。これらのコンポーネントはそれぞれ単一の機能(認証、通知、決済処理など)を実行したり、モノリス内でバンドルとして機能したりできます。「マイクロサービス」(または単に「サービス」)は、小さなコンポーネント自体を指す用語でもあります。
モノリシック アプリケーションは密結合(つまり、コンポーネントが相互接続)されていますが、マイクロサービス アプリケーションは分散しています(つまり、コンポーネントが独立して動作できる)。アプリケーションが大きくなり複雑になるにつれて、多くの組織がモノリスからの移行、またはマイクロサービス形式での新しいアプリケーションの組み込みを検討しています。
NGINXは、モノリシックおよびマイクロサービスを検討しているお客様のために、以下に示す無料の教育リソースを提供しています。