您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[极狐]:中国企业研发高效能白皮书(合集) - 发现报告

中国企业研发高效能白皮书(合集)

信息技术2023-08-23-极狐�***
中国企业研发高效能白皮书(合集)

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