【问题标题】:Automated Deployement of ASP.Net Website with a Continuous Deployment model使用持续部署模型自动部署 ASP.Net 网站
【发布时间】:2012-10-30 05:25:18
【问题描述】:

对于我们公司的网站,我们开发的风格最准确地称为持续部署 (http://toni.org/2010/05/19/in-praise-of-continuous-deployment-the-wordpress-com -故事/)

我们有一个网络场,每个站点都位于两台服务器上,用于故障转移。我们希望自动化部署到我们的开发服务器、测试服务器和产品服务器的过程。 Out 网站是 ASP.Net 网站(不是 Web 应用程序),所以我们不进行构建,我们只是推送页面。根据许多变量,我们通常每天更改 2-20 次我们的主站点。这些更改可以是添加新页面/功能的简单文本/html 更改。

目前我们使用 TFS 进行源代码控制,每个站点都有自己的存储库。我们没有分支,您在需要审查时手动将您的更改推送到 dev(我们在本地机器上开发),然后在签署后您签入您的更改并将它们手动推送到 prod(这可以确保源文件是实际在产品上的内容,然后合并发生)。显然这里有很大的错误空间,而且这种情况很少发生,即开发人员忘记了一个关键文件并导致整个站点崩溃。

似乎大多数部署工具都建立在构建过程之上,我们不太可能采用这种方式,因为我们需要非常敏捷地满足业务需求。我们认为,我们真正想要的是以下内容:

  1. Dev 从源代码管理中获取最新版本的网站,这本质上是生产的副本
  2. Dev 确实在自己的盒子上工作。
  3. 当任务所有者准备好对其进行审核时,他会创建某种形式的变更集(检查变更或其他),然后工具会将变更推送到开发人员
  4. 在审查(以及进一步可能的更改)后,开发人员能够让该工具推送所有更改以供此任务进行测试 (UAT)
  5. 在此注销后,更改将自动推送到 prod 并签入 prod 分支或其他任何内容,以供其他人获取

我们玩弄过在 TFS 中拥有三个代码分支的想法,但我们不确定如何从一个分支 (prod) 中提取但签入到 dev 分支(我们都不是 TFS大师)。

那么,其他人是如何处理这种情况的?如果有什么东西可以做我们想要的,我们不会将 TFS 作为源代码控制提供者,我们也不需要垂直解决方案,我们非常乐意插入不同的组件,只要它们可以插入,甚至在必要时开发我们自己的。

提前致谢。

【问题讨论】:

    标签: asp.net deployment web


    【解决方案1】:

    我确信您可以使用 TFS 做到这一点,但我已经成功地使用 Mercurial 完成了您所描述的事情,并且效果很好。

    使用 Mercurial(我假设 Git 也是如此),您可以从一个存储库中提取,然后推送到另一个存储库。因此,您可以从 Prod 中提取,进行更改,在本地提交,推送到 Dev,然后只要您满意,就将变更集推送到 Prod(无论是从 Dev 还是从本地,都无所谓)。

    首先,您将拥有一个 Prod 存储库,然后将其克隆到一个 Dev 存储库中 - 这两个存储库都在您的服务器上。在这一点上它们是相同的。

    Windows 上的 TortoiseHG 让您能够轻松选择要同步的存储库。您可以将 Prod 和 Dev 存储库都保留在您的列表中,并决定在需要拉取或推送时使用哪一个。

    【讨论】:

    • 实际上我看不到使用 TFS 的方法,但我们将研究 Mercurial。感谢您的提示
    猜你喜欢
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多