【发布时间】:2011-04-10 19:37:17
【问题描述】:
我经营着一家使用 ASP.NET(Webforms 和 MVC)的小型 Web 开发商店。我们确实为各种客户工作,因此随时可能有许多项目处于活动状态(有些只是在等待维护更新或错误修复)。
目前我们以非常手动的方式部署(FTP 文件到服务器,远程到服务器,将活动站点复制到备份文件夹,将新文件复制到活动站点)。显然,这还有很多不足之处,并且会发生错误。
我已经阅读了很多关于 CI 和自动构建和部署工具的信息,但我无法完全理解它,因为它们看起来都相当令人生畏。
我正在寻求自动化这个部署过程,并且我正在尝试找出最适合学习和使用的工具:
- 开发人员将代码检查到本地计算机上的 Mercurial 中,然后与联网的构建服务器上的主存储库同步。
- 构建服务器开始构建并检查单元测试是否良好。冲洗并重复。
- 开发人员手动选择通过 FTP 部署到远程 Windows 服务器(还有其他方法吗?)和 zip 文件(理想情况下只包含以前部署版本中更改的文件)。
- 远程服务器轮询 FTP 文件最终存放的文件夹,解压缩它们,将它们复制到测试文件夹,备份测试数据库并针对测试数据库运行升级脚本(或使用迁移应用程序,如 migratordotnet 或 rikmigrations)。还需要执行配置转换。
- 客户审核更改并接受更改或提供反馈。
- 如果客户端接受,开发人员在远程服务器的 Web 界面上按下“部署到登台”按钮,实时数据库被备份,恢复到登台数据库,实时站点的文件被复制到登台站点文件夹(有效地创建实时站点的克隆),将测试站点的更改文件复制到暂存站点(不包括某些文件夹,例如测试图像上传等),并再次运行迁移脚本。
- 开发人员检查更改没有破坏暂存站点。
- 开发人员在远程服务器的 Web 界面上按下“部署到实时”按钮,实时站点被复制到备份文件夹中,登台站点的文件被复制到它的位置(不包括用户上传的图像等)。备份实时数据库并运行迁移脚本。
- 如果出现问题,开发人员可以通过将备份文件复制回活动站点的文件夹并恢复以前的数据库来将活动站点恢复到以前的版本。
我真的不想为 100 多个可配置选项而苦恼。新项目的设置必须快速(不超过 5 分钟)且可重复。
我们不是企业,但如果我必须花一些钱来完成这项工作,我已经准备好支付许可证费用。
【问题讨论】: