スケーラブルなWebサイトのマルチティアアーキテクチャは時期尚早の最適化ですか?
-
11-10-2019 - |
質問
新しいWebサイトのアーキテクチャを設計しています。マルチ層アーキテクチャには間違いなく早期最適化(複雑さ、開発の長さなど)のすべての症状があるので、この時点でそれを避けたいと思いますが、システムが書かれた後にそのようなアーキテクチャを導入する(そして紹介すると思います(そして紹介します)適切に)非常に費用がかかります。サイトが十分に大きくなった場合、そのようなアーキテクチャが不可欠であると思います。
どう思いますか?
解決
これは、どのプラットフォームに依存するかによって異なります。
優れたプラクティスを使用してN層のアーキテクチャを開発し、レイヤー間の依存関係を回避できます。これには、N層アプローチに成長できるデザインがあります。
たとえば、.NET Arenaにいる場合、Windows Communication Foundationのおかげで、Net ArenaにNティアアーキテクチャをN-ティアに移植するのは簡単です。または、ティアを通信するために使用するプロトコル、さらにはクライアントコードを使用してそれらを消費するものでさえ。
ドメイン駆動型のデザインとその関連デザインパターンをご覧ください。
要約すると、さまざまな層にソリューションを配布すると、最初のバージョンでのスケーラビリティが向上するかどうかを分析する必要があります。 N-ティアをEASにサポートするためにデザインを準備します。
依存関係を回避し、プログラムの各部分を共有インターフェイスと連携させるために、懸念を分離しています。
とにかく、N層のWebサイトは、低〜中程度の使用シナリオの非N層のウェブサイトと比較して悪いパフォーマンスを発揮する必要があります。つまり、アプリケーションが数千または数千のユーザーにコンテンツを同時に提供する必要があるかどうかを考える必要があります。 n層シナリオを持つためのコスト。
nティアには専用のホスティングが必要です。
プロジェクトの目標に関する詳細情報を提供できますか? (スケーラビリティの観点から)。