您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[极狐]:2023中国企业研发高效能白皮书CI&CD篇 - 发现报告
当前位置:首页/行业研究/报告详情/

2023中国企业研发高效能白皮书CI&CD篇

信息技术2023-02-03极狐绝***
2023中国企业研发高效能白皮书CI&CD篇

中国企业 研发⾼效能⽩⽪书 近年来中国企业研发正在从粗放型⾛向精益型,研发⼯作的“⾼效能”成为⼏乎每个研发团队共同的追求。 中国软件服务产业也在近5-10年中得到了⻜速发展,技术服务的边界不断拓展,赋能研发⾼效的产品层出不穷,适合中国研发环境的技术服务体系在不断完善。从结果上看,中国企业正在⾼效能研发的路径上快速前进。 本份报告以中国⾼效能研发企业为研究对象,尝试解读市场中具有代表性的⾼效能研发解决⽅案。本次报告由五个篇章组成,如CI/CD、企业级架构、价值流管理等主题。研究⼩组期待可以通过研究,帮助中国企业研发团队获得⾼效能研发新知。 3 ⽬录CONTENTS CI/CD概念和背景介绍 CI/CD的概念——关于CI/CD CI/CD发展的阶段——历经三阶段,平台型产品站上历史舞台CI/CD的价值——CI/CD赋能研发的四⼤抓⼿ CI/CD的流程结构——CI/CD流程结构创新赋能研发效率 CI/CD⾏业发展概况 CI/CD市场基础数据——CI/CD市场蓬勃发展 CI/CD市场⼚商分布——CI/CD⾏业⼚商矩阵逐步形成CI/CD市场特征洞察——⾏业发展推动市场需求呈现新特征 极狐GitLabCI/CD:带您开启新世界⼤⻔ 极狐GitLabCI/CD简介——GitLabCI/CD使⽤前和⼯作流极狐GitLabCI/CD特征——极狐GitLabCI/CD四⼤核⼼优势极狐GitLabCI/CD真实⽤户使⽤反馈 4 CI/CD概念和背景介绍 5 5 关于CI/CD 研发团队提到降本增效,最直接想到的解决⽅案就是将⼀些繁琐、易错的⼯作,改造为持续⾃动化交付流程。⽽在研发团队传统交付过程中,“代码集成 (ContinuousIntegration即为CI)”和“代码交付(ContinuousDelivery即为 CD)”可以说是很多团队最为头痛的问题。 通常研发团队中会设置⼀位同事或者⼀个团队专⻔负责代码集成和交付⼯作。但往往因为项⽬规模、构建环境、⼤量细微错误积累等复杂因素,项⽬的集成和交付经常会成为压垮开发团队的最后⼀根稻草。 有研究表明在软件开发早期,⼿动测试过多是导致开发团队开发效率低的主要原因之⼀。⾃动测试⽐较少,研发过程缺乏构建和部署⾃动化,导致了研发团队⼿动测试容易出现⼤量问题。统计数据表明,62%的研发团队被这样的问题困扰。 “所以,软件集成是⼀件⾼⻛险的、不确定的事情,国外甚⾄有个专⻔的说法,叫作‘集成地狱’。也正因为如此,⼈们就更倾向于不做集成,这就导致开发末端的集成环节变得更加困难,从 ⽽形成了⼀个恶性循环。”——开发者 6 关于CI/CD CI为ContinuousIntegration的英⽂缩写,意为持续集成。CD最早为ContinuousDelivery的英⽂缩写,意为持续交付;后来也被认为可以代表ContinuousDeploy,意为持续部署。如今,CI/CD⼀般为持续集成、交付和部署的简称。 “CI(ContinuousIntegration)源于肯特·⻉克 (KentBeck)在1996年提出的极限编程⽅法 (ExtremeProgramming)。顾名思义,极限编程是⼀种软件开发⽅法,作为敏捷开发的⽅法之 ⼀,⽬的在于通过缩短开发周期,提⾼发布频率来提升软件质量,改善⽤户需求响应速度。” •CD(ContinuousDelivery)最早出现于2010年,JezHumble和DavidFarley在《持续交付》⼀书中提及和定义了CD:持续交付是“⼀系列的原则与实践的集合;通过这个集合,团队能够在低成本、短时间及低⻛险的状态下以增量⽅式将软件变更交到⽤户⼿上。”持续交付部分由版本控制、制品管理、变更管理、构建、持续集成、⾃动化测试、部署管理、流⽔线、持续交付⼯具等⽅⾯组成。 7 关于CI/CD CD经常被认为也同时代表持续部署即ContinuousDeploy。持续部署更进⼀步。⼀旦构建在staging环境中通过了⾃动测试,持续部署系统将会⾃动将它部署到⽣产服务器上。换⾔之,每个通过测试的构建都是实时的,可供⽤户及早反馈。这使得团队可以不断发布新特性和修复bug,并以其测试流程提供的保证为后盾。所以,很多时候CI/CD是指代通过连续⽅法进⾏软件开发的⼯程⽅案。 CI/CD这套软件⼯程思路和原则诞⽣后经常被同时提及,是更为优秀的软件开发⽅法,能够⼤⼤提⾼团队的⼯作效率和交付⽔平。持续集成(CI)是构建软件、完成初始测试等⼀系列⼯作,是通过⼩步快跑的⽅式,不断优化集成⽅式的过程。持续部署(CD)是将代码与基础设施相结合的过程,确保完成所有测试并遵循策略,然后将代码部署到预期环境中。 8 强痛点,推动CI/CD发展 Ifithurts,doitmoreoften,andbringthepainforward. ——MartinFowler(⻢丁·福勒,软件开发⽅⾯的著作者和国际知名演说家) 集成、部署和交付的强痛点,推动了CI/CD近⼗年的快速发展。MartinFowler认为如果痛点过于明确,那么就请频繁地去实践,并且将痛苦前置,以便我们更好地解决痛点,达到更接近预期的研发效果。 “该项⽬属于维护性质(在已有项⽬基础上开发),特征⽐较明显,客户也⽐较随(you)和(qian)。项⽬要求在两周内发布⼀些新特性。要上线的时候我才发现,团队⾥⾯居然没有⼈做过部署,做过的也只是通过WinSCP的⼯具进⾏拖拽。(团队没有经验的后果就是)部署10次有9次跑不起来(剩下的⼀次是我部署的)。” “由于客户业务发展的需求和相关安全性考虑,决定半年后升级现有Java版本和中间件。除了升级中间件,还需要通过重构改善现有系统的性能,最后的测试时间只有⼀个⽉。‘编码⼀时爽,重构⽕葬场’,做过开发的同学应该都有深刻的体会,没有测试的重构,想想都头⽪发麻,修Bug的味道我知道。” ——开发者 02 开源软件+其他软件协同 随着研发团队交付复杂程度和交付品质要求的不断提升,通⽤型解决⽅案逐渐开始⾯临挑战。⾯对个性化开发环境需求和具体的 客户需求,研发团队通常⽆法通过单纯的⼈⼯审核流程进⾏满⾜。 历经三阶段, 平台型产品站上历史舞台 从理念诞⽣开始,全球主要的研发团队即开始探索如何将CI/CD更好地在实际研发场景中帮助团队降低研发成本和提升研发效能。⽬前,CI/CD的实践分为三个阶段: 01开源软件 ⼤部分研发团队对于CI/CD的初体验多是使⽤开源软件/开源项⽬。开源项 ⽬⼀般解决的是⾏业某⼀个通⽤的痛点,⾏业共性需求很强。在不复杂的开发环境中,解决⼀些通⽤问题,开源软件的效果还是很容易看到。但是在复杂和具有企业个性的开发环境中,开源软件就会展现出来⼀些劣势。“为了项⽬的顺利进⾏,我⽤某开源软件部署了⼈⽣中的第⼀条CI流⽔线,整个 CI流⽔线只有两个功能,打包和部署环境。花费的时间从原来的1⼈⽇/部署, 缩短到了10分钟/部署,我尝到了CI的甜头,真⾹啊~” ——某⾦融研发团队Leader 10 (接上⻚)与此同时,⼈⼯审核流程还会消耗⼤量的团队耐 ⼼和时间,为团队整体研发成本增加负担。此时,能够连接开源项⽬的其他协同软件成为降本增效不错的选项。如通过协同静态扫描集成帮助研发团队把更多的精⼒投⼊到业务层 ⾯的确认,显著地提升整体研发质量。 03平台型产品 随着中国企业数字化进程的不断推进,企业在使⽤CI/CD ⼯具时的场景逐渐趋于复杂。⾏业的多样性也不断展现出来。因此,研发团队⽇常⼯作开始承接难度更⾼的跨功能、跨团队、跨⾏业的需求。团队在研发过程中各种插件的兼容性和适配性为团队的稳定交付带来不确定性挑战。 ⼀体化平台产品的诞⽣满⾜了这种市场需求,⼤⼤降低了插件间适配度产⽣的时间成本和适配过程中出现事故的⻛险成本。 经过三阶段的发展。⽬前,具有解决⽅案平台能⼒的产品正在不断替代此前两阶段的CI/CD成为头部企业、⾏业引领者的共同选择。 11 CI/CD赋能研发的 四⼤抓⼿ •CI/CD通过⼯作流程更新,将⼤量复杂的⼯作切分为可以控制或者可以修复的⼩单元⼯作。 •在没有实践CI/CD的团队中,通常需要花费⼤量时间,由专⻔的⾼ ⽔平开发者或者团队去统⼀集成和部署。导致研发团队在⼈⼒成本和时间成本上都承担了更⾼的成本和压⼒。CI/CD通过增加集成和部署频率,降低单次集成和部署的复杂程度,从⽽提升了单次集成 和部署动作的准确性。 持续性 01 •CI/CD通过程序帮助研发团队解放专职的集成和部署⼈员。开发⼈员提交新代码之后,程序⽴刻⾃动进⾏构建、测试、 安全扫描等多项⼯作。因为这些新提交在最终合并到主线之前,都需要通过编译和⾃动化测试流程进⾏验证。这样做是基于之前持续集成过程中很重视⾃动化测试验证结果,以保障所有的提交在合并主线之后的质量,对可能出现的 ⼀些问题进⾏预警。 02 ⾃动化 04⾼效迭代 CI/CD通过持续性、⾃动化、可追溯的实践, 在可控范围内不断降低项⽬研发的机会成本,在宏观层⾯帮助项⽬研发更⾼效迭代。 12 CI/CD赋能研发的 四⼤抓⼿ 可追溯 03 CI/CD⼩单元的持续集成、部署和交付,将原本超出控制、⾼概率不可修复的流程前置,将更多可能 出现的问题提前解决。并且所有开发⼈员均可以追 溯开发流程,更精准地帮助项⽬内容的完成。 13 CI/CD流程结构创新赋能研发效率 CI/CD的核⼼流程主要包含编码、提交、版本控制、测试(代码级)、构建、制品中⼼、部署、测试(应⽤级)和发布等。CI(持续集成)主要包括编码、构建、集成和测试;CD(持续交付和持续部署)在CI的基础上将代码部署到更为接近真实运 ⾏环境的预⽣产环境中,并在代码审核通过之后,⾃动部署到⽣产环境中。 在整体的CI/CD过程中测试步骤也可以前置到合适的位置。如在极狐GitLab中即将测试分为代码级测试和应⽤级测试,代码级测试被前置于代码提交后和构建之前,进⼀步确保整体交付和部署的准确性和持续性。 14 CI/CD⾏业发展概览 DATAS 15 CI/CD市场蓬勃发展 13亿美元规模 MarketGrowthReports2022年的统计数据,2017年CI/CD市场规模已经达到4.02亿美元,2023年市场规模有望达到13亿美元。 3.2倍规模增⻓ 85.16% 国内调查显示,持续集成、 ⾃动构建、单元测试和持续部署四种敏捷⼯程实践,占 ⽐分别为85.16%、81.61%、 81.53%和80.66%。 认可度⾼ 90% 使⽤持续集成 19.38%的企业拥有独⽴的持续集成团队维护持续集成系统;25.74%的企业实现了持续集成平台的⾃服务化,另有24.80%的企业通过⾃服务化持续集成平台实现组织级交付能⼒的提升,持续优化和改进团队的持续集成服务。 3.78%⼿⼯ 部署 软件质量被企业持续关注,集成问题普遍在1天内完成修复。如今仅有3.78%的企业 ⼿⼯完成所有环境的部署。 更⾃动化 普遍使⽤ 数据来源:2021年《中国DevOps现状调查报告》 16 CI/CD⾏业⼚商矩阵逐步形成 CI/CD市场需求的不断提升,离不开国内外众多CI/CD⼚商的持续创新和市场推⼴。 ⽬前,CI/CD已经成为DevOps最具规模的技术应⽤之⼀。 ⽬前国内外已经形成以极狐GitLabCI、Jenkins、BambooCI、CircleCI、TeamCity等为代表的⼚商矩阵。市场中的主要⼚商业务可以分为三种类型: 以极狐GitLabCI/CD为代表的DevOps平台型⼯具产品⼚商 以Jenkins、BambooCI为代表的单⼀⼯具链产品⼚商 以AWSCodePipeline为代表的企业级⼚商(与⾃身产品绑定) 17 17 CI/CD中国市场格局 DATA_ Jenkins、极狐GitLabCI/CD 呈现领先⼚商姿态 中国持续集成与流⽔线企业使⽤率 12 34 数据来

你可能感兴趣

hot

中国企业研发高效能白皮书-CI/CD篇

信息技术
InfoQ研究中心2023-01-04
hot

中国企业研发高效能白皮书-ChatOps篇

信息技术
InfoQ研究中心2023-02-22