【问题标题】:How do I setup this deployment process for ASP.NET?如何为 ASP.NET 设置此部署过程?
【发布时间】:2011-04-10 19:37:17
【问题描述】:

我经营着一家使用 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 分钟)且可重复。

我们不是企业,但如果我必须花一些钱来完成这项工作,我已经准备好支付许可证费用。

【问题讨论】:

    标签: asp.net automated-deploy


    【解决方案1】:

    我是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 中的一个模板版本保留在其余测试环境中。

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

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 2016-07-30
      • 2014-04-22
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-16
      相关资源
      最近更新 更多