自动部署 Web 应用程序?[已关闭]

2022-08-30 12:18:02

我的团队目前正在尝试自动部署我们的 .Net 和 PHP Web 应用程序。我们希望简化部署,并避免手动操作所带来的麻烦和许多麻烦。

我们需要一个解决方案,使我们能够:

- Compile the application  
  - Version the application with the SVN version number
  - Backup the existing site
  - Deploy to a web farm

我们所有的应用程序都使用SVN进行源代码控制,我们的.Net应用程序使用CruiseControl。我们一直在尝试使用 MSBuild 和 NAnt 部署脚本,但收效甚微。我们过去也使用过Capistrano,但如果可能的话,希望避免使用Ruby。

是否有任何其他部署工具可以帮助我们?


答案 1

谢谢大家的好意建议。我们检查了它们,但经过仔细考虑,我们决定使用CruiseControl,NAnt,MSBuild和MSDeploy的组合来推出自己的产品。

本文提供了一些很棒的信息:将 MSBuild 与 CruiseControl.NET 集成

以下是我们的解决方案大致的工作原理:

  • 开发人员构建应用程序的“调试”版本并运行单元测试,然后签入SVN。
  • CruiseControl看到更新并调用我们的构建脚本...
    • 在生成数据库上运行任何新迁移
    • 将配置文件替换为生成服务器配置
    • 构建应用的“调试”配置
    • 运行所有单元和集成测试
    • 构建应用的“部署”配置
      • 使用当前主要/次要版本和 SVN 修订版(例如 1.2.0.423)的 DLL 版本
      • 将此新生成移动到生成服务器上的“release”文件夹
      • 删除不需要的文件
    • 如果需要,更新生成服务器上的 IIS

然后,当我们验证一切已准备好上线/暂存时,我们运行另一个脚本来:

  • 在实时/暂存服务器上运行迁移
  • MSDeploy:存档当前实时/暂存站点
  • MSDeploy:将站点从生成同步到实时/暂存

它到达这个阶段并不漂亮,但它现在主要像一个魅力一样工作:D

当我们对流程进行更改时,我将尝试并更新此答案,因为现在SA上似乎有几个类似的问题。


答案 2

我已经使用Visual Build Pro多年了,它非常光滑且易于使用,并且内置了许多标准操作(如您提到的操作)。


推荐