thinkworks去vs atlassian bamboo

时间:2010-12-01 12:11:58

标签: release-management bamboo

是否有人对其中任何一方有任何意见。

我们正在考虑尝试将我们的发布流程从开发自动化到测试到生产,包括运行单元测试,进行代码审查以及对允许谁将UAT中的构建推送到生产中的权限。

4 个答案:

答案 0 :(得分:4)

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

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

  • UAT是否测试手动测试?
  • 在您的情况下推动生产意味着什么?
  • 您希望在部署结束时获得单个构建结果吗?

Bamboo 2.7是我们的第一个版本,它允许您将Build划分为不同的阶段并在Stages中并行执行Jobs。这可以显着改善构建的整体周转时间。我们目前正在进行工件传递,这将允许您在不同阶段之间传递构建工件。同样,这将减少总体构建时间,是迈向持续部署过程的另一个重要步骤。

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

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

由于Perforce在Bamboo用户中的使用较少(与CVS和SVN相比),因此我们通常会得到较少的反馈,并且对现有问题的了解较少。请直接向我们提出问题,我们会尽力在即将发布的版本中修复它们。

干杯,

Jens Schumacher

答案 1 :(得分:3)

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

它需要一种最不常见的分母方法来处理它所连接的所有SCM,所以对于我们使用perforce,我们会失去一些我们应该免费获得的东西。

以下是一些尚未解决的令人烦恼的事情:

设置构建代理以使用特定客户端(当然必须已存在,grr)。 现在假设客户端植根于c:\ buildarea。 你必须手动创建c:\ buildarea文件夹,否则代理会给你一些关于无法将文件提取到客户端根目录的荒谬错误。 显然'p4 sync -c YOURCLIENT'可以做到这一点,但Bamboo做了一些笨蛋。

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

最后一个有点愚蠢(但并不可怕)的事情就是假设每个人都以“标记”构建的方式使用CVS。当构建包含大量更改列表时,而不是仅将其称为更改列表并将其编号一次,它会为更改列表中的每个文件列出“版本#”。显然,不是交易破坏者,对于p4用户来说只是有点奇怪。

总而言之,这些问题都没有杀死我们,我们每天使用它几百个版本,并且在任何给定时间都有大约200个构建计划的活动。我确信我能想到其他问题,但很多事情都得到了解决。

答案 2 :(得分:3)

@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推送到生产中的权限”:您可以通过对管道进行分组来控制对具有查看和操作权限的项目和环境的访问。此外,您可以锁定允许触发构建的人员。
  4. 与市场上的许多工具不同,Go提供了对触发构建之间关系的可见性,环境建模,来自并行构建的聚合结果,自动发布工件的简易性以及自动更新构建代理

    来自ThoughtWorks Studios的

    @jgritty: Go is the successor to Cruise

答案 3 :(得分:2)

我使用过Bamboo / TeamCity / Jenkins / etc,并最近评论了ButWorks Go对抗标准CI服务器。

我真的很想知道他们是否破解了团队管理和发布问题。我个人最喜欢TeamCity,但给了Go一个机会。说实话,我有点失望,作为纯粹的构建服务器,它不像TeamCity / Bamboo那样先进。它缺乏对关键SCM和构建工具的支持。此外,大多数构建服务器都有很多支持第三方工具,如FindBugs / PMD / Emma / Clover /等,Go不会

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

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

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

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