0

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

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

我已经阅读了很多关于 CI 和自动构建和部署工具的内容,但我不能完全理解它,因为它们看起来都相当令人生畏。

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

  1. 开发人员将代码检查到本地机器上的 Mercurial 中,然后与网络连接的构建服务器上的主存储库同步。
  2. 构建服务器开始构建并检查单元测试是否良好。冲洗并重复。
  3. 开发人员通过 FTP 手动选择部署到远程 Windows 服务器(还有其他方法吗?)和 zip 文件(理想情况下只包含以前部署版本的更改文件)。
  4. 远程服务器轮询 FTP 文件最终所在的文件夹,解压缩它们,将它们复制到测试文件夹,备份测试数据库并针对测试数据库运行升级脚本(或使用迁移应用程序,如 migratordotnet 或 rikmigrations)。还需要执行配置转换。
  5. 客户审查更改并接受它们或提供反馈。
  6. 如果客户端接受,开发人员在远程服务器的 Web 界面上按下“部署到暂存”按钮,实时数据库被备份,恢复到暂存数据库,实时站点的文件被复制到暂存站点文件夹(有效地创建实时站点的克隆),测试站点的更改文件被复制到暂存站点(不包括某些文件夹,例如测试图像上传等),然后再次运行迁移脚本。
  7. 开发人员检查更改没有破坏登台站点。
  8. 开发人员在远程服务器的 Web 界面上按下“部署到现场”按钮,现场站点被复制到备份文件夹中,临时站点的文件被复制到它的位置(不包括用户上传的图像等)。备份实时数据库并运行迁移脚本。
  9. 如果出现问题,开发人员可以通过将备份文件复制回活动站点的文件夹并恢复以前的数据库来将活动站点恢复到以前的版本。

我真的不想为 100 个可配置的选项而苦苦挣扎。必须快速设置新项目(不超过 5 分钟)且可重复。

我们不是企业,但如果我必须花一些钱来实现这一点,我已经准备好支付许可证费用。

4

1 回答 1

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 中的内置工件存储,您可以重新执行旧的升级到生产,它会一键恢复旧的压缩工件文件。对于数据库,它有点棘手,您必须手动恢复数据库。

通常,安装过程只需单击几下,只需在承载 BuildMaster 的 Web 服务器上安装带有 ASP.NET 2.0 的 IIS、SQL Server Express(安装的一部分)或您自己的 SQL Server 实例。

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

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

我建议从免费试用开始并阅读教程以启动和运行基本应用程序。如果您有任何疑问,我们的网站上会提供集成帮助,并且在您安装后内置于应用程序中。还有很多不能添加到这篇文章中的内容,您可能会觉得有用(手动更改控制跟踪、通知、报告、可扩展性等);如果您有兴趣,可以查看完整的功能列表!

于 2011-05-04T00:32:07.033 回答