CI/CD成熟度
云原生吹水Ep.2 来聊聊:你觉得现在所在的 team CI/CD 建设的怎么样?欢迎大家用表情投票
1⃣️ 烂的一批,我要吐槽
2⃣️ 够用,还有很大的提升空间
3⃣️ 还行,没有多少地方能提升的了
4⃣️ 优秀,我要怒赞
为了评估我们的CI/CD (Continuous Integration/Continuous Delivery/Continuous Deployment)水平 今天给大家介绍一个概念:CI/CD成熟度模型(MATURITY MODEL)。这玩意可以用来指导我们进行CI/CD建设。
首先这个模型不是由某个权威机构发布的,有知名公司发布的,也有阿猫阿狗发布的。基本思想都差不多,只是维度上有些差别。
格式上来说都是两个轴:一个轴是成熟程度,另外一个轴是engineering活动分类。
我认为比较好看的是这两个:
另外能search到的还有很多,可以参考
- AWS marketplace
- clarive公司
- NISI CD3M 荷兰的一个基金会
- Cloudbees
看这些图,我觉得对dev来说最难搞定的是测试,其他部分都可以交给基础设施来做,各种自动化测试确是需要dev写的,你觉得呢?
devops讲究文化、流程、工具和平台,我们再来看看CI/CD pileline有哪些轮子可以用。
有实力的都上了CNCF的landscape: App Definition and Development - Continuous Integration & Delivery
我个人倾向于将这些轮子按照盈利方式分类:
- 云厂商战略必备:AWS CodePileline,Azure Pipelines,Google Cloud Build,阿里云云效,腾讯云收购coding
- 闭源商业公司 SaaS: circleci,teamcity,cloudbees…
- 开源+cloud/enterprise/self-host 模式: drone,travis-ci,zadig, convox…
- 完全开源: Jenkins x,agola,dagger,Argo workflows(基于k8s CRD 定义流程的方式确实很云原生,和他类似的还有testkube利用CRD定义测试)
有意思的是Jenkins X是CloudBees发布的,开源对商业公司来说更多时候是市场竞争的一种手段。
对泥腿子来说你做的平台要想有人用前提就得开源,假设开源产品大火了对商业公司就产生了威胁,商业公司就会考虑开源一部分对冲一下风险,争夺一下话语权。
另外你还知道哪些和CI/CD有关的轮子不限于pileline类的,构建测试部署相关的都可以,欢迎分享。