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


就这两款 CI/CD 工具的设置和配置而言 , Jenkins 和 Bamboo 都很好用 。 这方面的评价可能比较主观 , 因为它取决于你的需求 。
扩展和定制Jenkins 和 Bamboo 都提供了 RESTful API 用于扩展 。 如果你计划将应用程序与 Bamboo Server 集成 , 那么可以使用 Bamboo REST API 。 计划在脚本中与 BambooServer 交互的管理员也可以使用 。 默认的响应格式是 JSON , 但是可以选择请求 XML 而不是 JSON 。
Jenkins 的远程访问 API 可用于 Python、XML 和 JSON 。 与 Bamboo 中的 API 一样 , Jenkins API 也可以用于触发新的构建、创建作业、从 Jenkins 获取资源消耗信息等操作 。
易于使用在用户友好度方面 , Bamboo 较 Jenkins 有着巨大的优势 。 Bamboo 有一个友好直观的用户界面 , 可以根据用户需求定制 。 但是它否决了 Jenkins 吗?不!这取决于你使用这些工具的方法 。 一旦你开始使用 Jenkins , 你就会意识到它主要关注的是功能 , 其次才是可用性 。
每当在 Bamboo 中添加新任务时 , 它都会提供关于构建和部署状态的详细信息 。 而 Jenkins 关注的是 , 开发人员可以利用丰富的 Jenkins 插件根据他们的需要方便地定制体验 。
如果要在 Bamboo 和 Jenkins 之间选出更好的 CI/CD 工具 , 那么你必须在功能和用户友好性之间进行取舍 。
插件生态插件为 CI/CD 工具提供了更强大的功能 , 但是你需要挑选出对你有帮助的那些 。 与 Bamboo 相比 , Jenkins 的主要优势之一是其欣欣向荣的插件生态系统 。 Jenkins 是开源的 , 其全球性社区非常强大 , 插件的广泛可用性就是证明 。 目前 , 社区贡献的 1500 多个 Jenkins 插件可以帮助构建、DevOps 测试、部署和自动化项目 。
另一方面 , 在 Atlassian 市场上有将近 200 个 Bamboo 插件(或附加组件) 。 内置集成 Bitbucket、Jira 和 Confluence 是 Bamboo 服务器的最大卖点 。
Jenkins 更多的是以功能为中心(通过插件) , 定制成本低 , 避免了昂贵的内部定制 。 在插件竞争中 , Jenkins 遥遥领先 。
宿主(云或本地)Bamboo 只有本地版本 , 因为云版本在 2017 年初就停止提供了 。 虽然使用 BitBucket 管道替换了该服务 , 但还是无法与 Bamboo Cloud 相比 。
相反 , Jenkins 有云版本和本地版本两种版本可供选择 。 Jenkins 最适合安装在云上的自托管管道 。 如果你计划在 DevOps 测试或开发中使用 Jenkins 的本地变体 , 那么使用 Jenkins 构建可伸缩的架构是一个不错的参考 。
在云端 CI/CD 工具方面 , Jenkins 有明显的优势 。
并行性Jenkins 和 Bamboo 都支持并行构建 。 对于 Bamboo 服务器 , 默认情况下每个阶段都有一个作业 , 但是可以用它对多个作业进行分组 。 为了在 Bamboo 中并行执行作业 , 必须有多个代理(即作业在多个代理上并行处理) 。 每个阶段都必须完成它所有的作业 , 计划的下一阶段才会开始执行 。

  • 每个作业中的任务是顺序执行的;
  • 每个阶段中的作业是并行执行的;
  • 每个计划中的阶段是顺序执行的 。
另一方面 , Jenkins 中的并行性可以归结到管道 , 我们可以:
  • 根据我们选择的语言将测试配置为并行;
  • 将 Jenkins 构建配置为参数化构建;
  • 将 Jenkins 项目设置为 Matrix 项目 。
Parallel Test Executor 插件进一步帮助你划分大小相同的测试单元 , 然后将它们转换为排除列表 。 然而 , 由于构建共享相同的环境 , Jenkins 只部分支持 DevOps 测试并行 。 当使用像文件系统这样的共享资源时 , 这一因素会导致问题 。
在 DevOps 测试中 , Bamboo 和 Jenkin 的并行性都符合用户的期望 , 在这方面的对决中 , Bamboo 和 Jenkins 没有明显的赢家 。
云集成Bamboo 默认集成了 JIRA、Bitbucket 。 这些集成有助于实现发布执行、质量和状态的完全透明 。 Bamboo 只能用于 Windows、Linux、Solaris 和 macOS(或 OSX)平台 。 它还支持 AWS 。 Bamboo Server EC2 向导让你可以在几分钟内在 AWS 中启动并运行 Bamboo 服务器 。
人们希望提供在 Azure 云上部署 Bamboo 计划的特性 。 然而 , 根据 Azure 文档 , 可以使用 Azure PowerShell 在 Azure 上部署 Bamboo 服务器 。 自动化可以使用脚本任务来实现 。 当在 Azure 中使用 Bamboo 时 , 可以看下 StackOverflow 上关于使用 Bamboo 在 Azure 上实现持续部署的话题 , 这会很有帮助 。 此外 , Bamboo 的 LambdaTest 集成 可以帮助你完成所有无缝 DevOps 测试需求 。
另一方面 , Jenkins 支持与多种云平台集成 , 如 VMWare vSphere、Amazon EC2、谷歌云等 。 集成可以使用插件来实现 。 LambdaTest 提供了一个与 Jenkins 无缝集成的插件 , 以实现高效的 DevOps 测试 。