4

我正在学习 FluentMigrator。我喜欢 FM 的一点是它支持 Forward 和 Back 迁移(又名 Up/Down)的想法。我发现这并不理想。有一些洞。不过,这很好。

这让我想知道是否有任何部署工具(nant、msbuild 或其他)支持这种向前和向后滚动的想法。我在其中使用它的场景是部署具有相关数据库的 Web 应用程序。

理想情况下,我想设置我的部署,这样,如果它的任何部分失败,它将恢复到以前已知的工作配置。使用 FM,这很容易做到(但有一些粗糙的地方),因此涵盖了 db。组成网络应用程序的文件怎么样?是否有任何部署工具对此提供支持?

部署到 Windows 服务器。假设我无法对服务器进行任何更改。

4

3 回答 3

1

我不知道有任何以 Microsoft 为中心的自动化供应/部署工具,例如 Capistrano。以下是一些我听说过但从未使用过的工具:

直到大约三个月前,我们使用自定义 MSBuild 脚本进行部署/配置。配置服务器后,使用Robocopy自动进行部署,将文件复制到应用程序服务器上的共享,更新更改的应用程序二进制文件和标记文件。我们从来不需要回滚任何部署,但由于我们的脚本是自定义的,如果需要,我们可以编写逻辑。

MSBuild 是一种糟糕的部署/配置语言。在过去的三个月里,我们一直在编写所有新脚本,并将现有脚本移植到 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 拉取最新版本(无需打开任何端口)

一开始设置很多,但是一旦设置它就很好用。部署需要几秒钟,因为只有更改的文件会被复制。这种方法的另一个好处是 git 保留了更改的历史记录,因此回滚非常简单。您还可以回滚一些修订,并且直接在实时服务器上完成。如果出现问题,恢复速度非常快。

如果您为中央存储库使用托管 git 服务 (github),也可以节省一些时间。

这是一个非常简短的描述,但如果您愿意,我可以为您提供更多信息。

于 2011-05-14T20:48:44.440 回答
0

当然!我最喜欢的是卡皮斯特拉诺。这最初是为 Ruby 构建的,但我发现它同样适用于其他语言。

https://github.com/capistrano/capistrano

于 2011-05-13T22:40:32.243 回答