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