一次演讲,一场革命

2009 年,Velocity 大会,一场题为“10+ Deploys Per Day: Dev and Ops Cooperation at Flickr” 的分享给了 DevOps 创始人 Patrick Debois 很大的震动,也拉开了 DevOps 发展的大幕。经过 10 余年的发展,DevOps 的理念和实践已经遍及全球。从国内来看,DevOps 已经成为了各大企业进行研发效能提升的必备手段。根据中国信通院发布的《中国 DevOps 现状调查报告(2021)》显示:中国企业 DevOps 落地实践成熟度在全面级继续扩张。成熟度处于全面级的企业最多,为 35.40%,同比增长 8.84%,具备工具化、 自动化、规范化的特点;16.53%企业的实践成熟度处于优秀级,具备平台化、 服务化、可视化与度量驱动改进的特点;0.87%的企业处于卓越级,能够实现 DevOps 的高度智能化、数据化及社会化的特点。

cicd

在 DevOps 发展的过程中,逐渐沉淀或延伸出了很多落地实践的方法,诸如持续集成(Continuous Integration,简称 CI)、持续交付(Continuous Delivery,简称 CD)、持续部署(Continuous Deployment,简称 CD)、持续测试(Continuous Testing,简称 CT)、安全“左移”(DevSecOps)、部署策略及配置管理等。而其中的 CI/CD 是最为大众所熟知的。

CI/CD 的底层逻辑

Sanjeev Sharma 在《DevOps 实施手册:在多级 IT 企业中使用 DevOps》一书中写道:DevOps 有两个关键核心能力:持续集成及持续交付。没有这两种能力,就没有 DevOps。这两种能力连同其他扩展能力或者支撑能力是实施 DevOps 所必须考虑到的。这两个概念聚焦于周期时间最小化

正因如此,CI/CD 常常被拥抱 DevOps 的企业奉为圭臬,作为 DevOps 落地实践的第一步,因此也经常会听到“DevOps 就等于 CI/CD”的论述,虽然是一种“反模式”的论断,但是足以看出 CI/CD 的重要性。

CI/CD 的本质是:围绕软件开发生命周期,通过梳理流程,尽可能将所有流程、步骤进行自动化处理,从而加速软件交付。优秀的 CI/CD 流程设计会有很多收益:

通过自动化的手段省去众多手动操作,自动执行多项并行操作,节省人力成本的同时节省大量时间。

研发人员提交代码变更之后,就能自动化完成构建、测试、部署等流程,并将所有结果反馈到研发侧,有问题及时进行修复并再次执行相同的流程。整个过程可能是几分钟、数十分钟。让代码提交不再成为研发人员担心的事情,提升了研发体验。

CI/CD 的顶层设计

CI/CD 是一个涉及多流程(编码、构建、测试等)、多人员(研发、测试、运维、安全等)的过程,并不是一件一蹴而就、一劳永逸的事情。需要企业根据自身的实际状况(项目情况、团队能力、客户需求等)进行设计。但是有几个原则是通用的:

工具是 CI/CD 落地实践的有效支撑,但是过多的工具链容易造成运营成本的上升(安装运维)、数据孤岛的形成(不同工具的数据模型不一致导致)、难以构成研发闭环(数据反馈难以到达研发侧并与研发流程结合)等问题。工具是手段,重点是数据的处理,数据的流动带动价值流的快速流动。

CI/CD 设计是一个循序渐进的过程,先打通正向流动(将编码、构建、测试、部署等“串”起来),再做好反馈,将每个步骤中的数据(构建结果、构建报告等)反馈到对应的人员,为下一步行动提供数据支撑,最后需要根据项目的需求、团队的发展等做持续的优化,让 CI/CD 变成真正能够提升研发体验、提高生产力的重要利器。

安全是应用程序的底线,应该将安全防护手段嵌入到 CI/CD 中,做到安全的持续自动化,让每一次代码变更都经过安全检测的“筛子”,让部署变得充满信心。同时,安全的嵌入不应该降低整体的交付效率,需要对于安全防护手段进行优化,在保证安全的前提下保证效率。

极狐GitLab CI/CD

极狐GitLab 不仅仅是一个源代码托管平台(虽然《中国 DevOps 现状调查报告(2021)》显示,在代码管理中,GitLab 以 53.45% 的占比位居第一,远高于排名第二、三的 GitHub,占比分别为 24.91%、23.75%),CI/CD 也是其非常重要的功能特性,自 2015 年正式推出以来,经过多年发展已经变的功能强大,也是众多企业的选择。同样根据《中国 DevOps 现状调查报告(2021)》显示,在持续集成与流水线的使用比例中,GitLab CI 以8.86% 的占比位居第二,仅次于 Jenkins,远高于 Travis CI 和 Bamboo。

极狐GitLab CI/CD 具有如下特点:

极狐GitLab CI/CD 无需安装配置第三方工具,只需要配置 .gitlab-ci.yml 文件即可,节约了众多工具链的学习、运营及时间成本。

经过多年的迭代演进,极狐GitLab CI/CD 有众多功能特性,诸如有向无环流水线、父子流水线、多项目流水线以及合并列车(Merge Train)等来方便用户快速构建高效的 CI/CD Pipeline。

极狐GitLab CI/CD 的构建结果以及报告(测试、安全等)直接反馈到 MR(Merge Request)中,打通了各个环节的数据流,避免了数据孤岛的形成,同时为研发、代码审核人员提供代码是否能够合入的决策能力,从源头保证代码质量以及应用程序安全。

极狐GitLab DevSecOps 的七大功能能够直接集成到 CI/CD 中,为应用程序提供构建到上线的全流程安全保障能力,同时能够做到安全报告的统一展示透明、安全漏洞的修复管理透明。

60天免费试用极狐GitLab专业版

极狐GitLab不仅是源代码管理或CI/CD工具,它是一个覆盖完整软件开发生命周期和DevOps的开放式一体化平台。

企业版试用
售前咨询
联系电话
在线支持
预约演示