CI/CD 工具选型:Jenkins 还是 Bamboo?

持续集成和持续交付是在软件开发生命周期中获得交付一致性的方法 。 作为一个流程 , 它帮助你自动化开发管道 , 同时确保所有事情都可跟踪 。 其中有趣的部分是在开发阶段中引入自动化 。 当我们谈到集成和交付时 , 另一个与之匹配的过程是“持续测试” , 或者有时我们称之为 DevOps 测试 。 虽然持续集成(CI)和持续交付(CD)已经成为 DevOps 的重要组成部分 , 但在选择最佳工具时 , DevOps 团队常常会陷入困境 。 如果没有 CI/CD 工具是无法想象的 。
本文最初发布于 DZone , 经原作者授权由 InfoQ 中文站翻译并分享 。
持续集成(CI)和持续交付(CD) 已经成为 DevOps 的重要组成部分 , 但在选择最佳工具时 , DevOps 团队常常会陷入困境 。 开源工具是否适合你的项目需求 , 还是应该选择专有工具?特性更新和现有的客户反馈如何?
我的团队经常被这些突出的问题所困扰 , 这促使我们对各种 CI/CD 工具进行比较 。 在本文中 , 我们将仔细分析 Bamboo 与 Jenkins 之间的差异 , 使你对如何正确选择 CI/CD 工具有更深入的认识 。
在具体比较 Bamboo 和 Jenkins 之前 , 让我们先了解一些基础内容 。
Jenkins 是什么?Jenkins 是当今市场上广泛使用的 CI/CD 工具之一 。 人们已经使用它很长时间了 , 如果组织在寻找理想的开源 CI/CD 工具 , 那么它非常合适 。 Jenkins 是用 Java 编写的 , 它提供了大量的特性以及在主要平台上的可移植性 。
CI/CD 工具选型:Jenkins 还是 Bamboo?文章插图
Jenkins 是开源且免费的 , 是早期创业公司的首选 。 许多成长阶段的组织也比较喜欢 Jenkins , 因为他们可以通过自动化加速软件产品的开发 。 Jenkins 可用于 Windows、macOS 等平台 , 以及 openSUSE、Red Hat、Ubuntu 等不同风格的 Linux 。
Jenkins 是可扩展的 , 并且有一个蓬勃发展的插件生态系统 。 Jenkins 的插件可以帮助你整合各种 DevOps 阶段 。 它遵循两条发布线——每周发布和 LTS(长期支持) , 类似于其他常用的开源项目 。
在撰写这篇比较 Bamboo 和 Jenkins 的文章时 , Jenkins LTS 的最新版本是 2.235.1 , Jenkins 每周发布版本的最新版本是 2.242 。
以下是 Jenkins 的主要特性:

  • 免费、开源;
  • 很棒的插件;
  • 广泛的社区;
  • 支持管道;
  • 支持并行执行;
  • 广泛的集成能力;
  • 易于安装配置;
  • 提供 REST API 。
Bamboo 是什么?Bamboo Server 也是用于持续集成(CI)的流行工具 。 它是由 Atlassian 在 2007 年开发的 , 该组织以项目跟踪软件 JIRA 而闻名 。 Bamboo 是一个商业产品 , 它允许你在单个工作流中执行自动化构建、测试和发布 。
CI/CD 工具选型:Jenkins 还是 Bamboo?文章插图
使用 Bamboo Server , 通过无缝集成 Jira 和 Bitbucket 服务器 , 你可以实现发布、执行、质量和状态的端到端可视化 。 它还提供了内置部署支持、自动合并和 Git 分支等特性 。 Bamboo 支持编程扩展和组合 。 Bamboo 可用于 Windows、Mac OS X 和 Linux 等平台 。 在撰写这篇 Bamboo 和 Jenkins 的对比文章时 , Bamboo Server 的最新版本是 7.0.3 。
Bamboo 的主要特性包括:
  • 可以从 Jenkins 无缝迁移;
  • 内置 Jira 软件和 Bitbucket Server 集成;
  • 内置 Git 分支工作流;
  • 内置部署项目;
  • 测试自动化;
  • 支持并行执行;
  • 提供 REST API;
  • 安装配置简单 。
现在让我们对比下 , 看看 Bamboo 和 Jenkins 在可用性、技术支持和其他优秀 CI/CD 工具必备的集成特性方面哪个更好 。
Bamboo 和 Jenkins 的对决相关 CI/CD 工具的介绍就到这里 , 现在可以进入正题了 。 以下是我们在对 Bamboo 和 Jenkins 进行比较时使用的主要指标 。
安装和配置Jenkins 很容易安装 , 因为它是一个自包含的 Java 程序 , 能够以开箱即用的方式运行 。 在此之前 , 必须在目标机器上安装 Java , Jenkins 的安装非常简单 。 Jenkins 支持 JDK8 , 最新版本也已开始支持 Java 11 环境 。
安装完之后 , 使用一个简单的 Web 界面执行配置检查 。 Jenkins 可以安装到 Windows、Mac OS X 和流行的 Linux 操作系统上 。 我们还可以将 Jenkins 作为 servlet 运行在不同的 Java servlet 容器中 , 如 GlassFish 或 Apache Tomcat 。 然而 , Jenkins 缺乏现成的支持 , 但你可以在一个庞大的社区中提出问题 。 由于它是一个开源工具 , 这也正常 。
与 Jenkins 相比 , 安装和配置 Bamboo Server 所需的步骤更多 。 通常 , 你需要在机器上安装 Java , 然后创建一个专门的用户来运行 Bamboo 。 这里 , 你还必须创建一个主目录 , 根据需要启动并配置 Bamboo Server 。 安装过程可能有点费时 , 但你会发现 Bamboo 的用户界面更友好 。