CICD 系统 Jenkins & Tekton 对比

Jenkins 的前身是 Hudson,一个诞生于 2005 年的持续集成系统,由于优秀的架构设计和良好的产品体验,Jenkins/Hudson 是第一个被大规模应用的持续集成产品。后面持续集成的概念持续演进,从 CI 演变到了 CICD。 不仅仅是 Continuous Integration(自动化打包,测试,版本发布),还包含 Continuous Delivery(自动化交付,跟进一步,部署到生产环境,自动交付到用户使用)。

近几年随着云原生技术的发展,Tekton 应时而生,成为云原生环境下面 CICD 的一个非常的可选方案。 下面从不同维度,对比一下 Jenkins/Tekton 两个产品的差异。

一、功能对比

对比项JenkinsTekton说明
诞生时间2008/20052019Jenkins 的前身 Hudson 诞生于 2005 年,2008 年改名为 Jenkins
实现语言JavaGo
产品发布形式war容器镜像Jenkins 也有容器镜像可以直接使用
运行环境Server/JVMKubernetes 

tekton 的每一个 task 在一个单独的 k8s 容器中运行,运行完容器即退出;

Jenkins 的每一个 step 都是执行一个命令,或者一个插件的调用;

主要概念Pipeline, Stage, StepsPipeline, Task
CICD 集群支持主从模式,多个节点Kubernetes 多副本部署
数据存储服务所在机器的本地目录上在 workspace 中,通常 workspace 在挂载的 Persistence Volume 上,可以在不同的 task 之间共享一个工作空间Tekton 中的 workspace 是多个 task 之间可以共享的一个工作空间
上手难易程度简单略复杂
可用插件(生态)大量插件,丰富的生态插件相对较少,但通过直接使用自定义的镜像,可以使用的功能非常多
Webhook支持支持
多语言支持支持支持
灵活程度Jenkins/Tekton 都非常的灵活
成熟度

二、Jenkins/Tekton 两个产品的定位

Jenkins 是一个通用的 CICD 产品,可以用于任意应用的编译,测试,打包,集成,发布。

Tekton 本身运行于 kubernetes 环境中,tekton 的流水线中的每一个任务,运行时都会启动一个 pod 来执行。可以复用云原生环境中的各种镜像设施,不需要单独部署 VM 上的应用来管理 CICD 过程。  Tekton 更适合于云原生应用的 CICD。

Tekton 的 pipeline

三、我该如何选择?

如果你的应用大部分都是云原生环境的应用,部署于 k8s 之上,且团队中有人对于 k8s/docker 比较熟悉,推荐使用 Tekton 来作为 CICD 的基础设施。

如果不是云原生应用,或者团队对于 k8s/docker 不够熟悉, 建议使用 Jenkins 来做 CICD。

另外一个方面,如果你想要复用云原生的技能,复用云原生的基础设施,包括 tekton hub 的基础任务,建议使用 Tekton 来做 CICD。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值