DevOps 实战笔记
石雪峰
京东商城工程效率专家
37393 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
DevOps 实战笔记
15
15
1.0x
00:00/00:00
登录|注册

期末总结 | 在云时代,如何选择一款合适的流水线工具?

适用场景
扩展性配置
插件生态
流水线设计
工具的易用性
缺点
优点
适用场景
扩展性配置
插件生态
流水线设计
工具的易用性
适用场景
扩展性配置
插件生态
流水线设计
工具的易用性
Jenkins X
Jenkins
对于Drone在生产环境的应用,实际经验和“坑”
Drone
GitLab CI/GitHub Actions
Jenkins/Jenkins X
工具是“存在即合理”,没有绝对意义上的最好,只有最适合的场景
工具并非决定性的因素
思考题
五款流水线工具
流水线工具选择建议
作者:石雪峰
在云时代,如何选择一款合适的流水线工具?

该思维导图由 AI 生成,仅供参考

你好,我是石雪峰。今天是期末总结,我们来聊一聊,在云时代,如何选择一款合适的流水线工具。
在过去的几年里,我一直专注于软件持续交付的工程实践领域。我发现,越来越多的公司(无论规模大小)开始重视软件持续交付能力的建设了,基本上每家公司都有自己的流水线平台。
以前提到 CI/CD 工具,基本上就默认是 Jenkins,也没什么其他太好的选项。但是最近两年,随着云容器技术的快速发展,在 CI/CD 流水线领域,新工具和解决方案出现了爆发式的增长。比如不甘寂寞的 GitLab CI、轻量级的容器化解决方案 Drone。最近一段时间,GitHub 的 Actions 也火了一把。可见,作为软件交付主路径上的核心工具,流水线是每一家企业都不愿意错过的领域。
对于行业发展来说,这当然是好事情。老牌工具 Jenkins 自己都开始反省:“在云容器时代,是不是过于保守?十几年的老架构是否已经难以支撑云时代的快速发展了?”于是他们就另辟蹊径,孵化出了 Jenkins X 项目。
但是,对于用户来说,选择工具时就很为难:“这些工具看起来大同小异,要解决的也是类似的问题,到底应该选择哪个呢?”
今天,我就来给你梳理一下流行的 CI/CD 工具,并给你提供一些选择建议。我挑选了 5 个工具,分为 3 组介绍,分别是 Jenkins 系的 Jenkins 和 Jenkins X、版本控制系统系的 GitLab CI 和 GitHub Actions,以及新兴的、正在快速普及的云原生解决方案 Drone。我会从 5 个方面入手,对它们进行对比和介绍,包括工具的易用性、流水线设计、插件生态、扩展性配置以及适用场景。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

在云时代,选择合适的流水线工具至关重要。本文介绍了Jenkins、Jenkins X、GitLab CI、GitHub Actions和Drone这五款流行的CI/CD工具。Jenkins作为老牌工具,插件生态丰富,但配置操作复杂。Jenkins X面向Kubernetes,适用于原型产品验证。GitLab CI和GitHub Actions分别基于版本控制系统,提供了不同的特点和优势。Drone作为新兴的云原生解决方案,正快速普及。随着云容器技术的快速发展,CI/CD流水线领域出现了爆发式增长,选择合适的工具需要根据具体需求和场景来进行权衡。GitLab CI和GitHub Actions都采用了yaml形式的流水线过程描述文件,二者的语法规则虽然不同,但基本上大同小异。GitHub的语法规则更加符合当前Kubernetes的资源描述风格。GitHub的插件生态更胜一筹,但成本也是必须要考虑的因素之一。总的来说,本文通过对比和介绍这五款工具的易用性、流水线设计、插件生态、扩展性配置和适用场景,为读者提供了全面了解和选择合适工具的参考。 Drone作为云原生CI工具的新星,以其轻量级设计和优雅实现脱颖而出。其易用性、流水线设计、插件生态、扩展性配置和适用场景都具备独特优势。Drone的搭建简单,UI设计清爽,流水线语法风格清晰,插件支持丰富,容器优先的特性使其适用于基于容器开发交付的产品。对于中小型团队和初创公司,Drone是一个快速受益于CI/CD的理想选择。然而,需注意非容器化项目可能不太适合使用Drone。总的来说,Drone代表了未来云原生CI/CD的趋势,是一个值得关注和尝试的工具。 在选择流水线工具时,不应陷入“工具决定论”,而是根据具体需求和场景选择最适合的工具。每个工具都有各自擅长的领域,选择自己熟悉的工具通常是明智之举。文章最后提出了对于Drone在生产环境应用的思考题,鼓励读者分享实际经验和讨论,共同学习进步。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《DevOps 实战笔记》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • 陈斯佳
    我听过最好的关于Java和JavaScript区别的解释就是,他们的区别就像周杰和周杰伦一样…

    作者回复: 哈哈,听你这么一说,感觉Java都已经过气了呢😂

    2019-12-31
    2
    9
  • happychap
    drone从0.8到1.0的升级改变特别大,切换过程容易踩坑,比如0.8版本中,对镜像版本的拉取控制用pull:true,但在1.0+后,就换成pull:always/nerver/...之类的选项了,要是一不留神儿踩到这坑里,可能会让你小小的怀疑人生( '▿ ' ) drone有一个不得不提的插件drone-convert-starlark,可以让流水线的语法切换到python风格,这样就不会因敲错yml的key而各种找错了。但可惜的是受限于starlark-go的生态不够丰富,仍有两方面影响使用:(1)缺少starlark的ide插件,(2)starlark对模块的导入不支持*通配符,带来使用上的不便。但不论如何,其拥有对yaml的封装(成函数)特性为流水线的模块化带来的便利性是十分诱人的!

    作者回复: 赞,IDE插件的确越来越流行了,把一切都整合到IDE环境中,可以大大减少工作界面的切换成本,感谢你的分享!

    2020-01-12
    2
    3
  • 我来也
    我来说一下使用drone中遇到的坑吧。 默认drone的每个阶段都是中docker中完成的,默认情况下,一般都是拉最新的镜像。 这里的阶段稍微多一点,遇到镜像拉取失败的概率就会大一些。 这里的失败一般都是timeout吧,也许是墙的原因。我们服务器是在阿里云上部署的,就经常遇到这种状况而导致构建失败。 后来我的解决办法就是给常用镜像打tag,在yaml文件中使用带tag的镜像,这样就不会从远端尝试拉取最新镜像。自然就不会因为这个原因导致构建失败了。

    作者回复: 你好,感谢你提供的案例,非常有参考价值哈!实际上,对于显式的版本指定,这一点在配置管理的实施过程中都有明确要求,无论是Docker镜像,还是Maven依赖,还是环境中间件等等,从可追溯可控的角度来说,都是需要明确版本的。

    2020-01-02
    1
  • 铭熙
    tekton之上再来个好用的portal就完美了。

    作者回复: 这就是留给你我的发挥空间啦😄

    2020-01-02
  • 小谢同学
    老师觉得cloudbees&Google推动Jenkins和微软收编GitHub是否会成为日后软件工程领域的商业化派系和垄断地位,还是说更有可能成为mysql的模式?

    作者回复: 我想说的是,开源的能量业界有目共睹,无论CloudBees的成功,还是微软的转型都离不开开源,在我们这个行业,得开发者人心得天下,所以从这个角度出发,商业派系和垄断我觉得大可不必担心,因为IT从来都是开放共赢的。

    2020-01-01
  • harp岩
    老师觉得,Azure DevOps 怎么样,似乎国外比较流行
    2023-12-19归属地:上海
  • Joker
    赶紧Jenkins 到 Jenkins X最大的阻碍是被墙了..怎么办...
    2022-07-26
  • 老梁
    非常感谢雪峰老师的分享,从头到尾学下来,收获很多,用心做的教程,学习中能感受到! 学习初期,上下班路上听音频,后来发现要深入理解的话,还是要看文字,逐句理解,标记重点,遇到不懂的就搜索。 每学完一节,就迫不及待的学习新的内容。 后续结合实践,还会多次重学,加深理解,相信每次学习都会有新的收获! 谢谢老师!
    2021-02-20
  • leslie
    工具的适用性其实是团队不同时期所需的:正在了解和找寻小型团队可用的工具,Drone应当有机会在2年内去使用。 这个就像DB一样:真正小的用excel就够了-只不过很少人真正能把它用好而已,中大型mysql、sql server,真正的超大型只有DB2和oracle.所需要的代价直接从1个人逐渐变成一个团队。 不同工具适用于不同级别的企业:单一熟悉一个并不完全够,否则就跟不上企业的节奏了。跟上节奏和时代才能活得更好,IT人永远要on time。
    2020-01-02
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部