如何为ASP.NET设置此部署过程?

时间:2011-04-10 19:37:18

标签: asp.net automated-deploy

我经营着一个使用ASP.NET(Webforms和MVC)的小型Web开发商店。我们为各种客户工作,因此可能有许多项目在任何时间都处于活动状态(有些项目只是等待维护更新或错误修复)。

目前我们以非常手动的方式部署(FTP文件到服务器,远程到服务器,将实时站点复制到备份文件夹,将新文件复制到活动站点)。显然,这有很多不足之处,并且会发生错误。

我一直在阅读有关CI和自动构建和部署工具的很多内容,但我无法完全理解它,因为它们看起来相当令人生畏。

我希望自动化这个部署过程,并且我正在尝试找出最适合学习和使用的工具:

  1. 开发人员将代码检入本地计算机上的Mercurial,然后与网络连接的构建服务器上的主存储库同步。
  2. 构建服务器启动构建并检查单元测试是否正常。冲洗并重复。
  3. 开发人员通过FTP手动选择部署到远程Windows服务器(有另一种方式吗?)和zip文件(理想情况下只包含以前部署版本中已更改的文件)。
  4. 远程服务器轮询文件夹,其中FTP文件结束,解压缩,将它们复制到测试文件夹,备份测试数据库并运行针对测试数据库的升级脚本(或使用迁移应用程序,如migratordotnet或rikmigrations)。还需要执行配置转换。
  5. 客户审核更改并接受或提供反馈。
  6. 如果客户端接受,则开发人员在远程服务器的Web界面上按“部署到登台”按钮并备份实时数据库,恢复到临时数据库,将实时站点的文件复制到登台站点文件夹(有效地创建实时站点的克隆) ),将测试站点的已更改文件复制到登台站点(不包括某些文件夹,如测试图像上载等),然后再次运行迁移脚本。
  7. 开发人员检查更改未破坏分段站点。
  8. 开发人员在远程服务器的Web界面上按下“Deploy to live”按钮,并将实时站点复制到备份文件夹中,并将暂存站点的文件复制到其位置(不包括用户上传的图像等)。备份实时数据库并运行迁移脚本。
  9. 如果出现问题,开发人员可以将备份文件复制回活动网站的文件夹,然后恢复以前的数据库,从而将实际网站恢复到以前的版本。
  10. 我真的不想忍受100的可配置选项。必须快速设置新项目(不超过5分钟)并且可重复。

    我们不是企业,但如果我不得不花一些钱来实现这一目标,我已准备好支付许可证。

1 个答案:

答案 0 :(得分:3)

我是BuildMaster的开发人员,这个工具基本上可以完成您在此处列出的所有内容。我会尝试触及一些关于它如何帮助你的要点:

  1. BuildMaster支持Mercurial(以及其他几个VCS),以便您可以在自动部署期间标记代码和/或获取标记(或最新)代码
  2. 在BuildMaster中创建部署计划时,如果单元测试未通过,则可以使构建“快速失败”
  3. BuildMaster使用可以安装在您计划构建或部署到的任何服务器上的自托管或IIS托管代理。 BuildMaster更进一步将构建输出压缩为内置的“构建工件”,然后可以将其整体部署在现有网站的顶部或临时目录中,然后转移到Web服务器,只传输修改过的文件 - 您也可以排除文件/目录(例如同步除了\ Uploads,\ Logs等所有内容)
  4. 您不需要外部工具来轮询目录以查找要部署的已更改文件,您只需在BuildMaster中单击“升级到测试”,其中包括“备份数据库”作为部署计划的一部分。处理BuildMaster中的数据库,使每个环境都有自己的“实例”,并且您可以设置更改脚本,保证在添加到该环境的部署计划时,每个环境只运行一次。
  5. BuildMaster的体系结构(本质上是一个带有服务/数据库后端的Web应用程序,可以完成工作)允许您将Web应用程序的必要部分公开给您的客户,他们可以在其之前“批准”测试构建。被提升到下一个测试环境。
  6. 如果您的暂存部署计划包括备份数据库和复制生产文件,则单击“部署到暂存”按钮将执行您在计划中包含的所有内容。
  7. 我们的审批系统可以处理此问题(例如,1个开发人员和1个经理必须在投入生产之前批准该版本)
  8. 与#7相同
  9. 此步骤主要可以通过BuildMaster实现......软件内置了“恢复”功能。但是,通过BuildMaster中的内置工件存储,您可以将旧的促销重新执行到生产,并且只需单击即可将旧的压缩工件文件放回原位。对于数据库来说,这有点棘手,你必须手动恢复数据库。
  10. 通常,安装过程只需点击几下,只需要在将托管BuildMaster的Web服务器上安装带有ASP.NET 2.0的IIS,使用SQL Server Express(安装的一部分)或您自己的SQL Server实例。

    初始设置应该相当简单,您可以在软件中找到可以从公共SVN仓库中的源代码创建“应用程序”并构建它的示例。

    您可能喜欢的另一个主要功能是配置文件管理。由于您提到了ASP.NET,因此可以在BuildMaster中将web.config文件创建为模板,并将其作为部署计划的一部分进行部署,并根据您的环境使用不同的值。这样,您只需将开发版本保留在源代码管理中,并将BuildMaster中的一个模板版本保留在其他测试环境中。

    我建议从free trial开始并阅读tutorial以启动并运行基本应用程序。如果您有任何疑问,请在我们的网站上提供集成的帮助,并在安装后立即内置到应用程序中。还有更多内容无法添加到您可能认为有用的帖子中(手动更改控制跟踪,通知,报告,可扩展性等);如果您有兴趣,可以查看features的完整列表!