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

我运行一个使用ASP.NET(Webforms和MVC)的小型Web开发工作室。我们为各种客户工作,因此可能有许多项目在任何时间都处于活动状态(有些项目只是等待维护更新或错误修复)。 目前我们以非常手动的方式部署(FTP文件到服务器,远程到服务器,复制实时站点到备份文件夹,将新文件复制到活动站点)。显然,这有很多不足之处,并且会发生错误。 我一直在阅读有关CI和自动构建和部署工具的很多内容,但我无法完全理解它,因为它们看起来相当令人生畏。 我希望自动化这个部署过程,我正在尝试找出最好学习和使用的工具: 开发人员在本地计算机上将代码检入Mercurial,然后与网络连接的构建服务器上的主存储库同步。 构建服务器启动构建和检查单元测试是好的。冲洗并重复。 开发人员通过FTP手动选择部署到远程Windows服务器(有另一种方式吗?)和zip文件(理想情况下只包含以前部署版本中更改的文件)。 远程服务器轮询FTP文件最终的文件夹,解压缩它们,将它们复制到测试文件夹,备份测试数据库并运行针对测试数据库的升级脚本(或使用迁移应用程序,如migratordotnet或rikmigrations)。还需要执行配置转换。 客户审核更改并接受或提供反馈。 如果客户端接受,Developer会在远程服务器的Web界面上按“Deploy to staging”按钮并备份实时数据库,恢复到临时数据库,将实时站点的文件复制到staging sites文件夹(有效地创建实时站点的克隆),测试站点的已更改文件将复制到登台站点(不包括某些文件夹,如测试图像上载等),并再次运行迁移脚本。 开发人员检查更改没有破坏登台站点。 开发人员在远程服务器的Web界面上按下“Deploy to live”按钮,并将实时站点复制到备份文件夹中,并将暂存站点的文件复制到其位置(不包括用户上载的图像等)。备份Live数据库并运行迁移脚本。 如果出现问题,开发人员可以通过将备份文件复制回实时站点的文件夹并恢复以前的数据库,将实时站点恢复到以前的版本。 我真的不想与100的可配置选项斗争。必须快速设置新项目(不超过5分钟)并且可重复。 我们不是企业,但如果我不得不花一些钱来实现这一目标,我已准备好支付许可费。     
已邀请:
我是BuildMaster的开发人员,这个工具基本上可以完成你在这里列出的所有内容。我会尝试触及一些关于它如何帮助你的要点: BuildMaster支持Mercurial(以及其他几个VCS),以便您可以在自动部署期间标记代码和/或获取标记(或最新)代码 在BuildMaster中创建部署计划时,如果单元测试未通过,则可以使构建“快速失败” BuildMaster使用可以安装在您计划构建或部署到的任何服务器上的自托管或IIS托管代理。 BuildMaster更进一步将构建输出压缩为内置的“构建工件”,然后可以将其整体部署在现有网站的顶部或临时目录中,然后转移到Web服务器只传输已修改的文件 - 您也可以排除文件/目录(例如同步除了 Uploads, Logs等之外的所有内容) 您不需要外部工具来轮询目录以查找要部署的已更改文件,您只需在BuildMaster中单击“升级到测试”,其中包括“备份数据库”作为部署计划的一部分。处理BuildMaster中的数据库,使每个环境都有自己的“实例”,并且您可以设置更改脚本,保证在添加到该环境的部署计划时,每个环境只运行一次。 BuildMaster的体系结构(本质上是一个带有服务/数据库后端的Web应用程序)可以让您将Web应用程序的必要部分公开给客户,在这些部分中,他们可以在升级到测试版之前“批准”测试版本。下一个测试环境。 如果您的暂存部署计划包括备份数据库和复制生产文件,则单击“部署到暂存”按钮将执行您在计划中包含的所有内容。 我们的审批系统可以处理这个问题(例如,1个开发人员和1个经理必须在生产之前批准构建) 与#7相同 这一步主要可以通过BuildMaster实现......软件内置了“恢复”功能。但是,通过BuildMaster中的内置工件存储,您可以将旧的促销重新执行到生产,并且只需单击即可将旧的压缩工件文件放回原位。对于数据库来说,这有点棘手,您必须手动恢复数据库。 通常,只需单击几下安装过程,只需要在将承载BuildMaster的Web服务器上安装带有ASP.NET 2.0的IIS,使用SQL Server Express(安装的一部分)或您自己的SQL Server实例。 初始设置应该相当简单,您可以在软件中找到一些示例,这些示例将从公共SVN仓库中的源代码创建“应用程序”并构建它。 您可能喜欢的另一个主要功能是配置文件管理。由于您提到了ASP.NET,因此可以在BuildMaster中将web.config文件创建为模板,并将其作为部署计划的一部分进行部署,并根据您的环境使用不同的值。这样,您只需将开发版本保留在源代码管理中,并将BuildMaster中的一个模板版本保留在其他测试环境中。 我建议从免费试用开始并阅读教程以启动并运行基本应用程序。如果您有任何疑问,请在我们的网站上提供集成的帮助,并在安装后立即内置到应用程序中。还有更多内容无法添加到您可能认为有用的帖子中(手动更改控制跟踪,通知,报告,可扩展性等);如果您有兴趣,可以查看完整的功能列表!     

要回复问题请先登录注册