DevOps原理与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 DevOps与开源

DevOps与开源看似两个不相关的领域,其实是相辅相成的。开源是DevOps发展的巨大推动力,DevOps又是推动开源发展的有效手段。

1.开源是DevOps发展的巨大推动力

发展至今,DevOps的内涵和外延都发生了很大的变化。诸如CI/CD、DevSecOps、GitOps等,这一切落地实践的支撑就是工具。目前来看,绝大多数工具都是开源的,使用率最高的工具也是开源的。

从CNCF在2020年发布的持续交付技术雷达图可以看到(如图1-12所示),目前受欢迎、使用频率比较高的持续交付工具都是开源的。而这只是其中一小部分。

图1-12 CNCF在2020年发布的持续交付技术雷达图

中国信通院发布的《中国DevOps现状调查报告》显示,在持续集成与流水线中使用的工具中,Jenkins以64.2%的占比排名第一,GitLab CI以8.86%的占比排名第二,而这两款工具都是开源的。

目前,与持续交付相关的工具还在源源不断地涌现并且开源。

2.DevOps是保证开源软件交付的利器

DevOps已经成为一种用来加速软件交付、保证交付软件质量的普遍方法,开源软件的交付也不例外。比如,全球著名的开源项目GitLab本身就有CI/CD功能,因此使用自身的DevOps能力来开发开源项目,称为“狗粮文化”(dogfooding)。其他开源项目则会采用GitHub的Action功能来构建自己的CI/CD,从而保证代码变更在被合入之前要经过一系列验证。

3.协作是开源和DevOps的立足点

开源是一种全球异步协作的软件研发模式,协作是关键。DevOps的出现背景和目的就是让软件研发相关的所有人员通过协作来加速软件的交付。因此,协作是开源和DevOps共同的立足点。

【小结】DevOps与开源有着密不可分的关系,两者都具有协同、协作、开放的理念,同时涌现的大量与DevOps相关的开源工具在持续推动DevOps的发展,而DevOps的方式也在助力开源软件以快速安全的方式进行发布交付。