クライアント (おそらく C# gui) とサーバー コンポーネント (Java、C++、Perl) の両方を備えた非常に高い可用性 (サーバーを停止しない、再起動せずに機能をロールアウトするなど) のアプリケーションを設計したいと考えています。
( minimize-code-maximize-data.htmlとYegge ) からアドバイスをもらいました。ほとんどのロジックをデータベースから動的に読み取り可能にして、すべての構成 (すべての GUI 構成、テキスト翻訳など、ビジネス ルール、およびデータ) は、実行可能メモリに読み込むために再起動が必要なコードではなく、サーバー上のデータベースに存在します。
クライアントまたはサーバーを再起動せずにアプリケーションのあらゆる側面をカスタマイズし、できるだけ短いラグで変更をアプリケーションに反映できるようにしたいと考えています (動的クラスのロードなど)。
このような「決して殺さない」システムを設計する際のパフォーマンスやその他の制限は何ですか? そのようなアプリケーションを作成できた人はいますか? 主な教訓は何でしたか? これが費用対効果が低く、より伝統的なビルド、リリース、qa、数時間のダウンタイムアプローチが必要になるのはいつですか?