枠にとらわれずに考えるのを手伝ってくれるクリエイティブな人はいますか?
100 台のマシンに展開する必要がある ASP.NET Web アプリケーションがあります。Web アプリケーションは、構成ファイル (web.config) と他のいくつかのファイル (主にスクリプト) を除いて同じです。
私たちの目標は次のとおりです。
- 問題が発生した場合に (プロジェクトごとまたはファイルごとに) 簡単に元に戻すことができる増分変更を送信することにより、Web アプリケーションを効率的にアップグレードできるようにするため。
- バイナリ ファイルの効率的なサポート (この Web アプリケーションにはコンパイル済みの *.dll が含まれているため)
- ターゲット マシンでのコンパイルは必要ありません。
持っているといいのは次のとおりです。
- アップデートをリモートで簡単に開始
- 特定のスクリプト (例: データベースの移行) を更新後に自動的に実行する機会
現在、アプリケーションの各インスタンスのコンパイル済みバージョンをソース管理にコミットし、適切な構成ファイルを各フォルダーにコピーするスクリプトがあります。各インスタンスは、ソース管理から特定のフォルダーをチェックアウト (および後で更新) します。
このプロセスは 100 インスタンスには十分ですが、リリースごとにすべてのバイナリ ファイルのクローン (インスタンスごとに 1 つ) を保存するため、1000 インスタンスには拡張できません。これを行うためのより良い方法を探しています。
最も明白な答えは、同じプロセスを維持するように見えますが、ファイルを含むフォルダーは 1 つだけ (すべてのインスタンスに対して 1 つのフォルダー) であり、ターゲット マシンでの更新後に適切なファイルを上書きするスクリプトがあります。
これを達成するためのより良い方法は何ですか?