今日,小王去面试开发,但万万没想到 … …
小王:您好,我来面试开发职位。
面试官:您好,请问您有过 DevOps 教训吗?
小王:Emmm…
First blood
面试官:CI/CD 是否有理解呢?
小王:……
Double kill
面试官:如果您有这方面的常识的实际,会特地加分。举荐您一个课程:
🔗点击链接获取课程详细情况
一次演讲,一场反动
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 的高度智能化、数据化及社会化的特点。
在 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 所必须思考到的。这两个概念聚焦于周期时间最小化。
这本书是由极狐 GitLab 高级解决方案架构师万金老师翻译。
周期时间:从需要或者用户故事开始到把能力交付到客户手中,或者至多是实现集成、测试并已为部署到客户机做好筹备的工夫。
正因如此,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 变成真正可能晋升研发体验、进步生产力的重要利器。
- 平安为底,保障效率
平安是应用程序的底线,应该将平安防护伎俩嵌入到 CI/CD 中,做到平安的继续自动化,让每一次代码变更都通过平安检测的“筛子”,让部署变得充满信心。同时,平安的嵌入不应该升高整体的交付效率,须要对于平安防护伎俩进行优化,在保障平安的前提下保障效率。
极狐 GitLab CI/CD
极狐 GitLab 不仅仅是一个源代码托管平台(尽管《中国 DevOps 现状调查报告(2021)》显示,在代码治理中,GitLab 以 53.45% 的占比位居第一,远高于排名第二、三的 GitHub、SVN,占比别离为 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 中,为应用程序提供构建到上线的全流程平安保障能力,同时可能做到平安报告的对立展现通明、安全漏洞的修复治理通明。