(转)Tekton 概念篇 - 好大一盘棋
2021-02-08 本文已影响0人
万州客
感觉作者的眼光和深度还是可以的。学习受教了~~~
原帖:
https://www.chenshaowen.com/blog/the-concept-of-tekton-a-big-game.html
https://cloud.tencent.com/developer/article/1760150
CICD 是一个应用很广泛的领域,在不同的场景下,总有人在琢磨重复造轮子,难以统一。
虽然没有具体的数据,但是我相信这些工具的 Contributor(包括 User、Committer 等)都存在交叉。因为他们关注的都是一类问题,任务编排。
任务编排类的工具可以抽象成下面这张图。
![](https://img.haomeiwen.com/i23118846/a61c3df916fc77bd.png)
一个好的 CICD 工具应该具有如下特点:
- Outer DSL 简单易掌握 - User
- Inner DSL 高效易维护 - Developer
- 生态,能复用的原子要多 - Ecosystem
通过 UDE 可以给一个 CICD 工具评分。
-
Jenkins 的 Outer 是 Groovy 编写的 Jenkinsfile 文件,Inner 是 Java 编写的 Jenkins。
UD 都不算好,Jenkins 难以维护,但插件庞大,E 大大加分。 -
GitLab CI 的 Outer 是 Yaml 编写的 .gitlab-ci.yml 描述文件,Inner 是 Ruby 编写的解析引擎,使用 Go 写的 Runner。U 很好,上手很快。D 不算好,Ruby 性能一般,会的人越来越少。E 就比较糟糕了,虽然有类似 Jenkins share library 的 template 提供原子级别的复用,但跨团队的复用率很低,不利于构筑社区生态。
最后就是 Tekton,接着看下去,相信你会找到答案。