2

asp.net アプリケーションを展開するための多くの戦略を聞いたことがありますが、どの戦略が自分のニーズに最適かはよくわかりません。

asp.net 4 アプリケーションがあります。個別の開発/ステージング/運用環境 (異なる web.config) があります。また、SQL サーバーの変更を管理する必要があります。変更をプッシュする DB サーバーとアプリ サーバーが複数ある可能性があります。理想的には、ボタンを押して「ステージングにデプロイ」または「本番にデプロイ」と言うと、コード/データベース/構成ファイルが正しいサーバーにデプロイされます。理想的には、リリースがうまくいかなかった場合にロールバックするプロセスもあるといいのですが。

xcopy/robocopy 戦略、MSDeploy (現在は Web Deploy と呼ばれていますか?) 戦略、展開する MSI パッケージのビルドについて聞いたことがあります。

このタイプのニーズに最も適していると思われるのはどれですか?

4

1 に答える 1

0

方法 #1 時間があれば、CruiseControl.NETを使用することをお勧めします。少なくともしばらくの間、stackoverflow チームはこれをデプロイに使用していました。

方法 2 コピー戦略に関しては、アプリケーションとメディアに 7zip と ftp を組み合わせて使用​​することをお勧めします。7Zip は、ファイルの種類 (web.config)、フォルダー、およびファイルの種類を除外でき、さまざまなファイルを異なる方法で圧縮できるため、優れています。たとえば、PNG を圧縮しても意味がありません。これは毎回完全な展開を行うことに注意してください。したがって、大きなメディア フォルダーがある場合は、個別に処理します。

データベースに関しては、Redgate の SQL Compare を使用することをお勧めします。それらは商用アプリケーションですが、非常に優れています。それらは、stackoverflow ポッドキャストで何度も積極的に言及されています。

  • マスター 7zip ファイルを生成する開発/ビルド サーバーで CMD ファイルをビルドし、それをステージング (または運用) サーバーの専用フォルダーに FTP します。バッチごとに異なる圧縮方法を使用して、ファイルを単一の 7zip ファイルにフィードする 7zip を複数回呼び出すことになります。
  • ステージング サーバーまたは運用サーバーごとに CMD ファイルを作成します。このファイルは、適切なファイル バックアップを実行し、7zip ファイルを適切な場所に抽出します。

ステージングへの展開は次のようになります。

  • ステージング サーバーの専用 FTP フォルダーへの FTP アップロードをトリガーする 7zip-prep コマンド ファイルを実行します。
  • SQL Compare によって生成されたスクリプトを使用して、ステージング データベース サーバーに対して DB の変更を実行します。
  • ステージング サーバーで 7zip 解凍コマンド ファイルを実行します。

これは私が使用する方法です。私はまだ CruiseControl.NET をマスターするために時間を費やしていませんが、マスターするときは、少なくとも大規模なアプリケーションの場合は代わりにそれを使用するでしょう。ワンクリックで展開できるわけではありませんが、1 日に複数回の効率的な展開が可能です (私はここ数年断続的に行っています)。7zip の方法は便利です。コマンド ファイルを取得したら、それらをコピーして新しいプロジェクトにすぐに使用できるからです。

于 2013-02-11T04:03:25.393 に答える