4

FluentMigratorを学んでいます。FMについて私が気に入っているのは、移行(別名アップ/ダウン)のフォワードとバックのアイデアをサポートしていることです。これについては理想的ではないことがわかりました。いくつかの穴があります。それでも、それは良いことです。

これにより、このロールフォワードとロールバックのアイデアをサポートするデプロイメントツール(nant、msbuildなど)があるかどうか疑問に思います。私が使用しているシナリオは、関連するデータベースを使用したWebアプリのデプロイです。

理想的には、デプロイメントのいずれかの部分に障害が発生した場合に、以前の既知の動作構成に戻るようにデプロイメントをセットアップしたいと思います。FMを使用すると、これは非常に簡単に実行できます(ただし、ラフな部分があります)。そのため、データベースをカバーします。Webアプリを構成するファイルはどうですか?これをサポートしているデプロイツールはありますか?

WindowsServerへの展開。サーバーに変更を加えることができないと仮定します。

4

3 に答える 3

1

Capistrano のような Microsoft 中心の自動化されたプロビジョニング/展開ツールについては知りません。聞いたことはあるが使ったことのないツールをいくつか紹介します。

約 3 か月前までは、カスタム MSBuild スクリプトを使用して展開/プロビジョニングを行っていました。サーバーがプロビジョニングされると、 Robocopyを使用して自動的にデプロイが行われ、アプリケーション サーバー上の共有にファイルがコピーされ、変更されたアプリケーション バイナリとマークアップ ファイルが更新されます。展開をロールバックする必要はありませんでしたが、スクリプトはカスタムであるため、必要に応じてロジックを作成できました。

MSBuild はひどい展開/プロビジョニング言語です。過去 3 か月間、すべての新しいスクリプトを PowerShell で作成し、既存のスクリプトを PowerShell に移植してきました。それは素晴らしいです。バージョン 2 では、SSH などのリモート サーバーでのコマンドの実行がサポートされています。その機能はまだ使用していませんが、セットアップ スクリプトをリモート サーバーにプッシュして、プロビジョニング展開を同時に行うことを楽しみにしています

于 2011-05-14T04:21:53.387 に答える
1

過去 6 か月間、デプロイに Git を使用してきました。

プロセス全体は次のとおりです。

  1. CI サーバーがプロジェクトをビルドする
  2. CI サーバーはそれをローカルの git リポジトリにチェックインします
  3. CI サーバーが中央の git リポジトリに変更をプッシュします
  4. ユーザーがライブ サーバーに空のリポジトリを作成する
  5. ユーザーは、中央の git リポジトリをリモートに追加します
  6. ユーザーは https 経由で最新バージョンをプルします (ポートを開く必要はありません)。

最初は設定が大変ですが、一度設定するとうまくいきます。変更されたファイルのみがコピーされるため、デプロイには数秒かかります。この方法のもう 1 つの優れた点は、git が変更の履歴を保持するため、ロールバックが非常に簡単なことです。いくつかのリビジョンをロールバックすることもでき、それはライブ サーバー上で直接行われます。何か問題が発生した場合、元に戻すのは非常に高速です。

また、中央リポジトリにホストされた git サービス (github) を使用すると、時間を節約できます。

これは非常に簡単な説明ですが、必要に応じて詳細情報を提供できます。

于 2011-05-14T20:48:44.440 に答える
0

もちろん!私のお気に入りはカピストラーノです。これはもともと Ruby 用に作成されたものですが、他の言語でも同様に機能することがわかりました。

https://github.com/capistrano/capistrano

于 2011-05-13T22:40:32.243 に答える