自动部署Web应用程序?

Sam*_*sel 39 .net php deployment web-applications

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

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

- Compile the application  
  - Version the application with the SVN version number
  - Backup the existing site
  - Deploy to a web farm
Run Code Online (Sandbox Code Playgroud)

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

还有其他任何可以帮助我们的部署工具吗?

Sam*_*sel 32

谢谢大家的善意建议.我们全部检查了它们,但经过仔细考虑后,我们决定使用CruiseControl,NAnt,MSBuild和MSDeploy的组合来完成自己的工作.

本文有一些很好的信息: 将MSBuild与CruiseControl.NET集成

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

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

然后,当我们验证了所有内容已准备好进入实时/暂存时,我们运行另一个脚本:

  • 在live/staging服务器上运行迁移
  • MSDeploy:归档当前的实时/暂存站点
  • MSDeploy:从构建到实时/暂存同步站点

现在进入这个阶段并不是很好,但它现在大部分都像一个魅力:D

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