CI/CD之工具选择 - Jenkins vs GitLab

Jenkins vs GitLab

前言

在过去十年的时间里,持续集成(CI)和持续交付(CD)取得了巨大的进步。DevOps的兴起导致对CI/CD工具的需求,也快速增长。现有的CI/CD解决方案一直在与时俱进,无数的新产品或新版本正在进入DevOps领域。当你有如此多的选择时,选择正确的CI/CD工具,就很有必要。

在所有可用的CI/CD工具中,你应该考虑的两个工具是Jenkins和GitLab CI/CD。

以G2为例,Jenkins在G2上的平均评分为4.3星,有288条评论,而GitLab CI/CD在G2上的评分为4.4星,有270条评论。Jenkins于2011年发布,属于CI/CD业务,它一直是测试人员的首选。然而,自2014年以来,GitLab CI/CD一直以其先进的功能受到越来越多人的注意。

作为DevOps测试专家,你需要根据项目,预算和其他要求仔细评估这些工具。为了帮助你,我将对Jenkins vs GitLab CI/CD进行深入评估,以帮助你选择适合你项目要求的CI/CD工具。

让我们从基础开始。

Jenkins介绍


Jenkins是著名的可扩展的开源CI/CD工具,用于自动化部署。Jenkins完全用Java编写,并在MIT许可下启动。它具有一组强大的功能,可以自动执行与软件的构建,测试,部署,集成和发布有关的任务。可在macOS,Windows和各种UNIX版本(例如OpenSUSE,Ubuntu,Red Hat等)上使用。除了通过本机安装软件包进行安装外,它还可以独立安装或作为Docker在任何有Java Runtime Environment(JRE)的计算机上安装。

Jenkins团队还有一个名为Jenkins X的子项目,专门和Kubernetes一起使用。Jenkins X巧妙地集成了Helm,Jenkins CI/CD等工具。

使用Jenkins的一个优点是脚本结构合理,易于理解并且可读性强。Jenkins团队已经研发了大约1,000个插件,使该应用程序可以与其他熟悉的技术融合在一起。

此外,还可以使用Credentials Command插件,这使得在脚本中添加身份验证凭据等变得容易且可行。

Jenkins开始运行后,你还可以验证每个阶段是否通过或失败。但是,你无法在提供的图形界面中检查特定任务的状态。

Jenkins:核心功能

Jenkins以易于设置,自动构建过程以及文档丰富而闻名。在进行DevOps时,Jenkins被认为是非常可靠的,并且可能不必监视整个构建过程,而其他CI/CD工具则并非如此。让我们看一下Jenkins提供的一些最重要的功能:

1.免费,开源且易于安装

Jenkins可轻松用于macOS,Unix,Windows和平台。它可以与Docker结合使用,可以为自动化任务带来更高的一致性和效率。它也可以在Java容器(例如Apache Tomcat和GlassFish)中作为servlet运行。文档丰富,可以指导整个安装过程。

2.丰富的插件生态系统

与其他CI/CD工具相比,Jenkins的插件生态系统更加成熟。目前,他们提供了1500多个插件。它使定制变得容易且有利可图。因此,你无需购买昂贵的插件。

3.易于使用的设置和配置

Jenkins设置和配置过程非常简单,安装过程仅需要一些步骤。Jenkins的升级过程也很轻松,直接。

4.社区活跃

如你所知,这是一个具有丰富插件生态系统的开源项目,所有插件和功能都得到了社区的广泛支持。

5.提供REST API

Jenkins提供了RESTful接口以实现可扩展性。具体参考,Jenkins API文档。

6.并行执行

Jenkins支持并行。你可以轻松地将其与不同的工具集成,并在构建成功或失败时获得通知。开发人员甚至可以跨不同的虚拟机并行执行多个构建,从而提高效率。

7.分布式任务

它可以毫不费力地运行分布式任务,即任务在不同的计算机上运行。

GitLab CI/CD简介


在所有CI/CD工具中,GitLab CI/CD无疑是最新的一种。它是内置在GitLab CI/CD中的免费且自托管的持续集成工具。GitLab CI/CD具有社区版本,并提供git存储库管理,问题跟踪,代码审查,Wiki等。组织可以在本地安装GitLab CI/CD,并将其与Active Directory和LDAP服务器连接以进行安全授权和身份验证。

GitLab CI/CD以前是一个独立项目,于2015年9月与GitLab 8.0发行版集成。GitLab CI/CD提供了计划,打包,SCM,发布,配置和检查等功能。

GitLab CI/CD还提供了存储库,因此Gitlab CI/CD的集成非常简单明了。

在使用GitLab CI/CD时,包括一系列阶段,这些阶段将以精确的顺序执行。

每个任务都是一个阶段的一部分,并且将在一个阶段自动与其他任务并行运行。你可以在阶段内检查每个任务的状态。这就是GitLab CI/CD与其他CI/CD工具的不同之处。

GitLab CI/CD:核心功能

GitLab CI/CD是用于DevOps测试的最受欢迎的CI/CD工具之一。GitLab CI/CD拥有强大的文档,易于控制,良好的用户体验。如果你不熟悉GitLab CI/CD,我将列出GitLab CI/CD的主要功能,这些功能将帮助你更好地了解它。

1.高可用性

GitLab CI/CD被广泛使用,并且是最新的开源CI/CD工具之一。GitLab CI/CD的安装和配置都很容易。它是内置在GitLab中的免费的自托管CI工具。

2. Jekyll插件支持

Jekyll插件是一个静态网站生成器,具有对GitHub Pages的强大支持,它使构建过程更简单。Jekyll插件支持使用HTML文件和Markdown并根据你的布局偏好创建一个完全静态的站点。通过编辑config.yml文件,可以轻松配置大多数Jekyll设置,例如,网站的插件和主题。

3.里程碑设置

里程碑是跟踪问题,改进一系列问题的绝佳方法。

4.可扩展

自动扩展缩放GitLab CI运行程序,可以轻松管理并节省90%的EC2成本。这是必不可少的,尤其是对于并行的测试环境。

5.问题跟踪和问题修复

由于其出色的问题跟踪和问题修复功能,GitHub是众多开源项目首选的CI/CD工具。为了实现简单且无故障的监控,测试结果显示在GitHub UI上。

6.使用访问控制管理Git存储库

你可以轻松地管理git存储库。你可以轻松地向单个存储库上的协作者授予写/读访问权限,对该组织的存储库具有更精细的访问控制。

7.活跃的社区支持

活跃的社区是GitLab CI/CD的主要优点之一。所有支持都是开箱即用的,不需要在其他插件的安装中进行修改。

8.代码审查和合并请求

GitLab CI/CD不仅用于构建代码,而且还用于检查或审查代码。它允许通过合并请求来改善协作。

Jenkins vs GitLab CI/CD –比较

Jenkins和GitLab CI/CD都擅长于自己的工作,并且拥有自己的技术支持。

特征 Jenkins GITLAB CI/CD
开源或商业 开源的 开源的
产品类别 自托管/内部部署 自托管/内部部署
内置CI/CD Jenkins支持CI/CD 不需要为CI/CD安装任何东西,它具有内置功能
独特的功能 插件 AutoDevOps /允许将CI和代码管理保持在同一位置。
产品种类 自托管/本地 SaaS /本地
支持SLA
安装与安装 简单 简单
自托管选项 开源和自我托管是使用它的唯一方法
建立管道 通过Jenkins Pipeline DSL的定制管道
应用程序性能监控 不提供分析性能的功能 将显示所有已部署应用程序的性能指标
生态系统 1000多个社区插件
全面的API 具有全面的API功能。 提供用于软件项目中更深层集成的API。
特殊语言支持:JavaScript
整合方式 允许与其他工具(例如:Slack,GitHub)集成。 可访问大量第三方集成,最著名的是GitHub和Kubernetes。
CI/CD部署仪表板 部分支持 每个用户可以根据流水线历史记录和项目中的最新状态,更改仪表板。
API 是的,提供了REST API和GraphQL API
代码质量 通过Sonarqube插件提供代码质量检查,另外还可以使用不同的插件来验证代码质量。 Gitlab还提供了检查代码质量的功能。

Jenkins与GitLab CI/CD之间的区别

既然你已经看到了Jenkins与GitLab CI/CD的功能比较,现在是时候找出两种DevOps测试工具之间的差异了。这些差异将帮助你了解Jenkins vs GitLab CI/CD之战的真正原因。

  • 借助Gitlab CI/CD,你可以完全通过分支和其他方面来控制Git存储库,以确保代码免受威胁。但是,在Jenkins中,你只能控制存储库,不允许完全控制分支。

  • Jenkins是“内部托管”的,并且是“免费开放源代码”,这就是编码人员偏爱它的原因。另一方面,Gitlab CI/CD是“自托管”和“免费”的,这就是开发人员更喜欢它的原因。

  • 在Gitlab CI/CD中,每个项目都有一个跟踪器,该跟踪器将跟踪问题并执行代码审查以提高效率。在使用Jenkins工具时,它更改了支持方式,并简化了安装和配置过程。

Jenkins vs GitLab CI/CD –功能差异

Jenkins的优点

  • 丰富的插件库

  • 自托管

  • 轻松调试

  • 易于设置节点

  • 易于部署代码

  • 很好的凭证管理

  • 功能灵活多变

  • 支持不同的语言

  • 非常直观

Jenkins的缺点

  • 复杂的插件集成

  • 配置多

  • 缺乏对流水线的整体跟踪的分析

Gitlab CI/CD的优点

  • 更好的Docker集成

  • 扩展跑简单

  • 分阶段并行执行任务

  • 并发运行

  • 合并请求

  • 任务添加容易

  • 易于处理冲突

  • 良好的安全和隐私政策

Gitlab CI/CD的缺点

  • 需要为每个任务定义组件。

  • 在实际合并发生之前,不能测试分支的合并状态。

  • 目前尚不支持,一个大阶段中包含几个小阶段。

Jenkins vs GitLab CI/CD:你应该首选哪种CI/CD工具?

Jenkins和GitLab CI/CD都有各自的优缺点,你在这两种CI/CD工具之间的最终选择,完全取决于项目要求和规格。这些CI/CD工具中的每一个都有其自身的优缺点,Jenkins用于持续集成,而Gitlab CI/CD用于代码协作和版本控制。

除了突出的功能,你还应该浏览价格表和组织内部熟练程度,才能为DevOps挑选最佳的CI/CD工具。

译者:王延飞

译文链接:https://dzone.com/articles/jenkins-vs-gitlab-ci-battle-of-cicd-tools

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,306评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,657评论 2 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,928评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,688评论 0 220
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,105评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,024评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,159评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,937评论 0 212
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,689评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,851评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,325评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,651评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,364评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,192评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,985评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,154评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,955评论 2 279