Atlassian 发布 Bamboo 6.0 和 Bitbucket Server 5.0

  • Ben Linders
  • 李梦

2017 年 6 月 5 日

话题:DevOps持续交付语言 & 开发文化 & 方法

Atlassian 发布了 Bamboo 和 Bitbucket Server 的新版本,这两项工具旨在支持企业的 DevOps。新功能包括代码配置(configuration as code)、增强的构建控制和构建进度监控。

在“Bitbucket Server 5.0 & Bamboo 6.0: Bringing DevOps to the Enterprise”这篇博文中,Atlassian 对新产品进行了介绍。

在企业中采用 DevOps,不仅仅意味着运营和开发之间更好的沟通、现代化的持续集成实践或者恰当的版本控制类型。合规性和规模也同样重要。工具必须能提供自由度和结构化、伸缩性和性能,但这些通常难以并存。

Atlassian 工具拥有独一无二的能力,它可以在实现 DevOps 工作流的同时确保可追溯性、可用性和安全性都保持不变。在 Bitbucket Server 和 Data Center 5.0 以及 Bamboo 6.0 中,我们使用了一个用于验证代码提交者的 Git 钩子,并更新了智能镜像,以此来提升产品的能力。

关于 Bamboo 6.0 和 Bitbucket Server 5.0 的主要变化,以及这些变化给正在应用 DevOps 的企业带来怎样的好处,InfoQ 专程采访了在 Atlassian 负责 Bamboo 业务的 Alison Huselid。

InfoQ:Bamboo 6.0 的主要变化是什么?

Alison Huselid:Bamboo 6.x 系列的关注点在于为企业带来现代化的持续集成实践,比如代码配置。另外,工作流的增强(例如与 Bitbucket 深度集成)也为团队提升了速度,并且可以更轻松地实施 DevOps 实践。我们在 Bamboo 6.0 引入了以下内容。

  • Bamboo Specs,可以通过代码配置的方式定义 Bamboo 构建计划,这使得企业软件开发更加现代化。也在开发过程中给予开发者更多的控制权,消除团队间的耦合或者避免在代码和构建系统之间来回切换。
  • 与 Bitbucket Server 的深度集成包括在 Bitbucket 拉取请求创建时触发 Bamboo 构建、在 Bitbucket 中查看正在进行的构建状态以及在 Bamboo 中创建和查看拉取请求。通过这些增强,开发者在启动构建时获得了更多的控制权,而且可以从 Bitbucket 内部监控进度。
  • 对 xCode 和 Fastlane 的官方支持,让开发者可以在一个构建工具中构建和测试所有应用。

InfoQ:通过代码配置的方式来定义 Bamboo 计划,它的原理是什么?

Huselid:Bamboo 提供了一个 Bamboo Specs 库,它有一组 API 可以用于在 IDE 中以代码的方式编写配置信息,还有一个 Bamboo Specs Runner Maven 插件,可以用它将计划部署到一个 Bamboo 服务器上。

Bamboo 库是用 Java 编写的。这意味着可以用任意高层次的 JVM 语言编写代码来实现与 Java 的互操作,比如 Groovy、Scala 或者 Kotlin。即便你不熟悉 Java,培训过程也将引导你直接进入工作环境,像 Python、C++ 或 C# 这些语言的用户也会熟悉如何定义计划。

源自 Bamboo 文档的教程“Create a simple plan with Bamboo Specs”用实例阐述了工作流程。

关于如何用 Bamboo Specs 创建一个新计划,这里还有个非常简短的示例:

Plan plan = new Plan(project, "My Plan One", "PLAN1")
    .description("This is an example of a plan")
    .enabled(true)
    .stages(stage1)
    .triggers(scheduledTrigger)
    .planBranchManagement(planBranchManagement)
    .dependencies(planDependencies)
    .linkedRepositories(myGitRepo)
    .planRepositories(myBitbucketRepo)
    .variables(var1, var2);

InfoQ:通过代码来配置计划有什么好处?

Huselid:通过 Bamboo Specs 以代码的方式来定义构建配置信息,开发团队在构建流水线上获得了更多的控制和职责。它还能简化应用构建、加速开发过程并且允许代码重用(例如能够复制计划)。如果把代码文件存储在一个版本控制系统中,还会从代码审查和版本历史中获得好处。例如,如果需要比对一个构建的早期版本(去看看出了什么问题),只要简单地运行那个时间点的构建。

InfoQ:在 Bamboo 与 Bitbucket Server 的集成中有什么新内容?

Huselid:在 Bamboo 6.0 中,引入了与 Bitbucket Server 集成的增强功能,其中包括在 Bitbucket 拉取请求创建时能够触发 Bamboo 构建、在 Bitbucket 中查看正在进行的构建状态以及在 Bamboo 中创建和查看拉取请求。

InfoQ:这些能带来什么好处?

Huselid:Bamboo 和 Bitbucket Server 之间更深层级的集成在最需要它的地方带来了重要的改进。例如,开发者可以在 Bitbucket 用户界面里看到是何时触发的 Bamboo 构建,或者在研究 Bamboo 中的构建结果时创建一个 Bitbucket 拉取请求。智能构建触发器,如在拉取请求创建时自动创建一个 Bamboo 计划分支,对于构建的时间和方式给予了更多的控制。这样可以释放 Bamboo 构建代理资源,并且减少了不必要的构建噪音。更棒的是,如果还没有用过计划分支,现在就能用了,而且要知道每一个拉取请求都将自动构建。

InfoQ:Bamboo 的下一步计划是什么?

Huselid:未来的 Bamboo 将继续把新一代 CI/CD 实践带给企业,它将提供更多节约时间的功能,并且不需要在规模和安全性上妥协。为此将重点关注以下几个领域:Bamboo Specs 的功能增强、与 Atlassian 工具和其他 DevOps 工具集的深度集成以及如何满足企业组织的 CI/CD 需求。

查看英文原文Atlassian Announces Bamboo 6.0 and Bitbucket Server 5.0


感谢薛命灯对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

DevOps持续交付语言 & 开发文化 & 方法