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

发布于 2024-10-06 13:32:45 字数 1108 浏览 6 评论 0原文

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

不幸的是,从程序员的角度来看,Harvest 既昂贵又使用起来很痛苦。分支和合并是一场噩梦。因此,我们正在考虑切换到 Mercurial。 Mercurial 似乎在这些领域表现出色。然而,Mercurial 似乎并不是为了跟踪更改或管理上述流程而设计的,它只用于 SCM。

问:在发布过程方面我们有什么选择,当然还有其他 SaaS 公司(例如 Google、Flickr、Facebook、LinkedIn)希望在将代码发布到生产服务器之前进行质量控制?

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

[编辑] 澄清一下,这是我们(建议的)分支结构

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

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

我不是在寻找错误跟踪器,而是在寻找一个部署工具,帮助我们跟踪和部署已由测试人员验证的代码(发布分支中的代码)。如果同时处理多个修补程序,我们需要能够一起测试它们,如果其中一个修补程序破坏了代码,我们需要能够将破坏代码的更改“降级”到流程中的上一级。今天,两个开发人员将他们的更改“提升”到测试级别 1 就足够了,并且系统可以同时使用这两个更改进行测试。如果一个开发人员的更改仅在与其他开发人员的代码一起使用时才破坏任何内容,则可以轻松地将其从测试级别 1 降级。

I'm working at a SaaS company who releases new features and bug fixes to our customers every six weeks. When we write code changes they pass through different steps (like a state machine) before reaching the production servers. The steps are different depending on if the change is done in the regular development cycle or as an emergency fix. We're currently using Harvest to manage the steps and track what code (features and bug fixes through packages) is being released to the customers and in that sense it's working well.

Unfortunately Harvest is both expensive and a pain to use from a programmer's point of view. Branching and merging is a nightmare. So we're looking into switching to Mercurial. Mercurial seems to excel in those areas. However, Mercurial doesn't seem to be made for tracking changes or manage the above mentioned process, it only does SCM.

Q: What options do we have when it comes to the release process, surely there are other SaaS companies (e.g. Google, Flickr, Facebook, LinkedIn) out there who wants quality control before releasing code to production servers?

Q: Is it a bad idea to try and build the process in Mercurial or are there other tools that we need to use together with Mercurial?

[Edit]
To clarify, this is our (suggested) branch structure.

Here's the process flow we currently have in Harvest:

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

I'm not looking for a bug tracker, but rather a deployment tool that helps us track and deploy code that has been verified by our testers (code in release branch). If there is more than one hotfix being worked on at the same time we need to be able to test them together and if one breaks the code we need to be able to "demote" the code breaking changes back one step in the process flow. Today it's enough for the two developers to "promote" their changes to Test Level 1 and the system can be tested with both changes together. If one developer's changes breaks anything only when it's together with the other developer's code it can easily be demoted back from Test Level 1.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一梦等七年七年为一梦 2024-10-13 13:32:45

但是,Mercurial 似乎并不是为了跟踪更改或管理上述流程而设计的,它只用于 SCM。

最好使用单独的工具来跟踪问题。这样您就可以使用最好的品种来完成每项任务。只需确保您选择的版本控制系统能够与您的版本控制系统很好地集成即可。

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

However, Mercurial doesn't seem to be made for tracking changes or manage the above mentioned process, it only does SCM.

It's best to use a separate tool for issue tracking. That way you can use the best of breed for each task. Just makes sure that you select one which integrates well with your version control system.

To give some examples: jira (commercial) and trac (free) both have mercurial integration plugins. They also have customizable workflow states, allowing you to model your process.

西瑶 2024-10-13 13:32:45

我开始意识到,我们正在寻找的不是一个问题跟踪器,而是一个替代 Harvest 方面的部署工具。 GoAnthill Pro 是两个候选者。

I've come to realize that what we're looking for is not an issue tracker, but rather a deployment tool to replace that aspect of Harvest. Go and Anthill Pro are two candidates.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文