SaaS公司如何验证和跟踪他们向客户发布的代码?

时间:2010-12-07 10:46:36

标签: mercurial saas verification harvest

我在一家SaaS公司工作,该公司每六周向我们的客户发布新功能和错误修复程序。当我们编写代码更改时,它们会在到达生产服务器之前通过不同的步骤(如状态机)。根据是在常规开发周期中进行更改还是作为紧急修复,步骤会有所不同。我们目前正在使用Harvest来管理这些步骤并跟踪正在向客户发布的代码(功能和错误修复程序包),从这个意义上说它运行良好。

不幸的是,从程序员的角度来看,收获既昂贵又难以使用。分支和合并是一场噩梦。所以我们正在考虑转向Mercurial。 Mercurial似乎在这些领域表现出色。但是,Mercurial似乎不是用于跟踪更改或管理上述过程,而是仅用于SCM。

问: 我们在发布过程中有哪些选择,当然还有其他SaaS公司(例如Google,Flickr,Facebook,LinkedIn)在将代码发布到生产服务器之前需要质量控制?

问:尝试在Mercurial中构建流程是不是一个坏主意,还是我们需要与Mercurial一起使用其他工具?

[编辑] 澄清一下,这是我们的(建议的)branch structure

以下是我们目前在Harvest中的流程:

Hotfix <--> Test Level 1 <--> Test Level 2 <--> Master (Production)
Feature <--> Test <--> Release Test <--> Master (Production)

我不是在寻找一个错误跟踪器,而是一个帮助我们跟踪和部署已经过我们的测试人员验证的代码的部署工具(发布分支中的代码)。如果同时处理多个修补程序,我们需要能够一起测试它们,如果有人破坏了代码,我们需要能够“降级”代码,将更改改回工艺流程中的一步。今天,这两个开发人员可以“推动”他们对测试级别1的更改,并且可以同时测试两个更改的系统。如果一个开发人员的更改只有在与其他开发人员的代码一起时才会中断,那么很容易从测试级别1降级。

2 个答案:

答案 0 :(得分:1)

  

但是,Mercurial似乎不是用于跟踪更改或管理上述过程,而是仅用于SCM。

最好使用单独的工具进行问题跟踪。这样你就可以为每项任务使用最好的品种。只需确保选择一个与版本控制系统完美集成的版本。

举一些例子:jira(商业)和trac(免费)都有mercurial集成插件。它们还具有可自定义的工作流状态,允许您为流程建模。

答案 1 :(得分:0)

我已经意识到我们所寻找的并不是问题跟踪器,而是一种取代Harvest的方面的部署工具。 GoAnthill Pro是两个候选人。