ThoughtWorks Go 与 Atlassian Bamboo 对比

发布于 2024-10-05 05:11:04 字数 108 浏览 10 评论 0原文

有谁对其中之一有任何评论吗?

我们正在考虑尝试自动化我们的发布过程,从开发到测试,再到 uat 到生产,包括运行单元测试、进行代码审查以及对谁可以将构建从 UAT 推入生产进行强制执行。

Does anyone have any comments on one vs the other.

We're looking at trying to automate our release process from dev into test into uat into production, including running unit tests, having code reviews and enforcing permissions on who is allowed to push builds from UAT into production.

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

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

发布评论

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

评论(4

好倦 2024-10-12 05:11:04

免责声明:我是 Bamboo 的产品经理

@Bernard:您能否提供有关您的流程的更多详细信息?

  • UAT测试是手动测试吗?
  • 对您来说,投入生产意味着什么?
  • 您期望在部署结束时得到单个构建结果吗?

Bamboo 2.7 是我们的第一个版本,允许您将构建划分为不同的阶段并并行执行阶段内的作业。这可以显着提高构建的总体周转时间。我们目前正在致力于工件传递,这将允许您在不同阶段之间传递构建工件。同样,这将减少总体构建时间,并且是迈向持续部署过程的另一个重要步骤。

不幸的是,我们目前没有一种好的“开箱即用”方法来对构建的某些部分强制执行权限。同样,有一些方法可以通过插件和以某种方式设置构建来解决这个问题。但如果不更详细地了解您的流程,就很难提供建议。如果您愿意与我们分享您的流程细节,我很乐意亲自与您交谈(atlassian dot com 的 jens)。

@jgritty:您指出的问题部分是我们 Perforce 集成的已知问题,部分似乎是未知错误。请随时在[email protected]上创建支持请求或提出支持请求jira.atlassian.com 上的错误报告。

由于 Perforce 在 Bamboo 用户中不太常用(与 CVS 和 SVN 相比),因此我们通常得到的有关它的反馈较少,并且听到的有关现有问题的信息也较少。请直接向我们提出问题,我们将尽力在即将发布的版本之一中解决这些问题。

干杯,

延斯·舒马赫

DISCLAIMER: I am the Product Manager of Bamboo

@Bernard: could you provide some more details around your process?

  • Are the UAT tests manual tests?
  • What does pushing into production mean in your case?
  • Do you expect a single build result at the end of your deployment?

Bamboo 2.7 is our first release that allows you to divide your Build into different Stages and execute Jobs within Stages in parallel. This can significantly improve the overall turnaround time of your Builds. We are currently working on artifact passing, which will allow you to pass build artifacts between different stages. Again, this will reduce the overall build time and is another important step towards a Continuous Deployment process.

Unfortunately we currently do not have a good "out of the box" way to enforce permissions on certain parts of the build. Again, there are ways to work around this with plugins and by setting up your Build in a certain way. But it's hard to provide suggestions without knowing your process in more details. If you are willing to share the details of your process with us, I would love to speak to you in person (jens at atlassian dot com).

@jgritty: The problems you are pointing out are partially know issues with our Perforce integration and partially seem to be unknown bugs. Please feel free to create a support request on [email protected] or raise a bug report on jira.atlassian.com.

Since Perforce is less commonly used (compared to CVS & SVN) amongst Bamboo users, we generally get less feedback about it and hear less about existing issues. Please raise problems directly with us and we will do our best to fix them in one of our upcoming releases.

Cheers,

Jens Schumacher

自此以后,行同陌路 2024-10-12 05:11:04

我从未听说过 Go,但我可以告诉你 Bamboo 有一些严重的怪癖。根据您的源代码控制系统,您的里程可能会有所不同。

它采用一种最小公分母方法来处理它所连接的所有 SCM,因此对于使用 perforce 的我们来说,我们失去了一些我们应该免费获得的东西。

以下是一些尚未解决的烦人问题:

设置构建代理以使用特定客户端(当然必须已经存在,grr)。
现在假设客户端的根目录为 c:\buildarea。
您必须手动创建 c:\buildarea 文件夹,否则代理会给您一些关于无法将文件提取到客户端根目录的荒谬错误。
显然“p4sync -c YOURCLIENT”可以做到这一点,但 Bamboo 做了一些更愚蠢的事情。

它不能做的另一件事是从现有标签正确构建。假设您有一个跨平台构建,并且您想从相同的更改列表/标签构建 Linux 和 Windows,那么在 Bamboo 中没有简单的方法可以做到这一点。您可以同时启动构建并祈祷。您可以让其中一个同步另一个的文件,但无法使用标签进行构建。

最后一件事有点愚蠢(但并不可怕),它假设每个人都按照它“标记”构建的方式使用 CVS。当构建包含大量变更列表时,它不只是将其称为变更列表并编号一次,而是列出变更列表中每个文件的“版本号”。显然,这并不是什么大问题,只是对 p4 用户来说有点奇怪。

总而言之,这些问题都没有让我们丧命,我们每天使用它进行数百个构建,并且在任何给定时间都有大约 200 个活跃的构建计划。我确信我可以想到其他问题,但很多事情已经得到解决。

I've never heard of Go, but I can tell you that Bamboo has some severe quirks. Depending on your source control system, your mileage may vary.

It takes sort of a least common denominator approach to dealing with all the SCMs it hooks to, so for us using perforce, we lose out on some things we should be getting for free.

Here are a couple of the annoying things that still have not been fixed:

Setup a build agent to use a particular client (must already exist, of course, grr).
Now suppose the client is rooted at c:\buildarea.
You MUST manually create the c:\buildarea folder otherwise the agent will give you some ridiculous error about not being able to extract the files to the client root.
Obviously 'p4 sync -c YOURCLIENT' would do that, but Bamboo does something dumber.

Another thing that it can't do is properly build from an existing label. Let's say you have a cross platform build, and you want to build say linux and windows both from the same exact changelist/label, there is no trivial way to do that in Bamboo. You can fire off the builds at the same time and pray. You can have one sync out the files for the other, but there is no way to build using a label.

One last thing that is a little dumb (but not terrible) is the way it sort of assumes everyone uses CVS in the way that it 'tags' builds. When a build contains a large number of changelists, rather than just call it a changelist and number it once, it lists the "version #" for every file in a changelist. Obviously, not a deal breaker, just a little odd for p4 users.

All in all, none of these issues have killed us, and we use it for several hundred builds per day, and have somewhere in the order of 200 build plans active at any given time. I'm sure I could think of other issues, but many things have been addressed.

深者入戏 2024-10-12 05:11:04

@Bernard:我在 ThoughtWorks 工作,使用 Go (Cruise) 的经验比 Bamboo 丰富得多,所以我现在就为您提供有关 Go 解决您的查询的信息

  1. “我们正在研究尝试自动化我们的发布过程,从开发到测试,再到 uat 到生产”: 通过部署管道对整个发布过程进行建模和自动化已经由 Go 概念化,并且自其早期版本(以前称为 Cruise)以来就一直存在。部署管道将复杂的构建分解为一系列阶段,这些阶段本身就是作业的集合。这些阶段可以手动或自动触发。当更改从管道仪表板 UI 本身在环境中传播时,查看和控制更改的流程也非常容易。下面是自动部署到 UAT 的详细示例(http://www.thoughtworks-studios.com/go/2.0/help/rm_deploy_to_environment.html)。
  2. “包括运行单元测试,进行代码审查”:Go 使您能够拆分测试套件并并行运行它们。您还可以获得一份全面的报告,其中详细记录了哪些作业失败、哪些测试失败、哪些签入破坏了测试等,以及针对您选择的构建事件的电子邮件警报。 Go 还会自动发布工件,并且可以从报告本身查看这些工件。这在嗅探构建时非常有用。在 Go 中,实现棘轮非常简单 (http://skizz.biz/blog/2008/03/11/fixing-broken-windows-with-ratcheting/),因此您可能会因不符合您的编码而导致构建失败标准阈值。
  3. “并对谁可以将构建从 UAT 推送到生产环境执行权限”:您可以通过对管道进行分组,使用查看和操作权限来控制对项目和环境的访问。此外,您还可以锁定谁可以触发构建。

与市场上的许多工具不同,Go 提供了触发构建、环境建模、聚合并行构建结果、轻松自动发布工件和自动更新构建代理之间关系的可见性

@jgritty: Go 是 ThoughtWorks Studios 的 Cruise 的继承者

@Bernard: I work at ThoughtWorks and have much more experience using Go (Cruise) than Bamboo, so I'll just give you info on now Go addresses your query

  1. "We're looking at trying to automate our release process from dev into test into uat into production": Modeling and automating your entire release process by way of deployment pipelines has been conceptualized by Go and has been around since its earlier versions( previously called Cruise). Deployment pipelines break a complex build into a series of stages that itself are a collection of jobs. The stages can be manually or automatically triggered. It's also pretty easy to view and control the flow of changes as they propagate through the environments from the pipeline dashboard UI itself. Here is a detailed example of automatically deploying to UAT (http://www.thoughtworks-studios.com/go/2.0/help/rm_deploy_to_environment.html).
  2. "including running unit tests, having code reviews": Go enables you to split test suites and run them in parallel. You also get a comprehensive report with detailed trails of which jobs have failed, the tests that have failed, which check-in broke the tests, etc, and email alerts for the build events you choose. Go also auto-publishes artifacts and these can be viewed from the report itself. This is pretty useful when sniffing out a build. In Go, it's very simple to implement ratcheting (http://skizz.biz/blog/2008/03/11/fixing-broken-windows-with-ratcheting/), so you can fail builds that don't meet your coding standards thresholds.
  3. "and enforcing permissions on who is allowed to push builds from UAT into production": You can control access to projects and environments with both view and operate permissions by grouping pipelines. Additionally you can lock down who is allowed to trigger a build.

Unlike a lot of tools in the market, Go provides visibility into relationships between triggered builds, environment modeling, aggregating results from parallel builds, ease of auto-publishing artifacts, and auto-updating build agents

@jgritty: Go is the successor to Cruise from ThoughtWorks Studios.

我的痛♀有谁懂 2024-10-12 05:11:04

我使用过 Bamboo/TeamCity/Jenkins/etc,并最近针对标准 CI 服务器回顾了 ThoughWorks Go。

我真的很想看看他们是否已经解决了团队管理和发布问题。我个人最喜欢 TeamCity,但也尝试了一下 Go。说实话我有点失望,作为一个纯粹的构建服务器,它没有 TeamCity/Bamboo 先进。它缺乏对关键 SCM 和构建工具的支持。此外,大多数构建服务器都对 3rd 方工具有很多支持,例如 FindBugs/PMD/Emma/Clover/ 等,Go 则不支持。

与市场上其他产品不同的一个领域是环境的概念和能力穿越不同的环境。然而,这是这个概念的一个非常原始的版本。

Thoughtworks 的人员是世界上最优秀的人员之一,在开发团队方面拥有丰富的经验,我希望看到该工具的更多版本,他们真正开始解决软件开发过程中的一些关键问题。

我的快速评论可以找到这里

http://diarmuidmoloney.wordpress.com/2011/11/24/thoughtworks - 去/

I have used Bamboo/TeamCity/Jenkins/etc and reviewed ThoughWorks Go recently against standard CI servers.

I was really interested in seeing if they had cracked the team management and release problem. I personally like TeamCity best but gave Go a shot. I was a little disappointed to be honest, as a pure build server it is no where as advanced as TeamCity/Bamboo. It lacked support for key SCMs and build tools. Also most build server have a lot of support for 3rd Party tools such as FindBugs/PMD/Emma/Clover/etc, Go does not

The one area that is different from other products on the market is the the concept of environments and the ability to move through the different environments. However it was a very primitive version of the concept.

The guys at Thoughtworks are some of the best in the world and have a wealth of experience on development teams and I expect to see more releases of the tool where they really start to address some key problems around software development process

My quick review can be found here

http://diarmuidmoloney.wordpress.com/2011/11/24/thoughtworks-go/

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