《极狐:2023中国企业研发高效能白皮书-CI、CD篇(33页).pdf》由会员分享,可在线阅读,更多相关《极狐:2023中国企业研发高效能白皮书-CI、CD篇(33页).pdf(33页珍藏版)》请在三个皮匠报告文库上搜索。
1、中国企业研发高效能白皮书近年来中国企业研发正在从粗放型走向精益型,研发工作的“高效能”成为几乎每个研发团队共同的追求。中国软件服务产业也在近5-10年中得到了飞速发展,技术服务的边界不断拓展,赋能研发高效的产品层出不穷,适合中国研发环境的技术服务体系在不断完善。从结果上看,中国企业正在高效能研发的路径上快速前进。本份报告以中国高效能研发企业为研究对象,尝试解读市场中具有代表性的高效能研发解决方案。本次报告由五个篇章组成,如CI/CD、企业级架构、价值流管理等主题。研究小组期待可以通过研究,帮助中国企业研发团队获得高效能研发新知。3目录CONTENTSCI/CD概念和背景介绍CI/CD的概念关于
2、CI/CDCI/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 CI/CD简介GitLab CI/CD使用前和工作流极狐GitLab CI/CD特征极狐GitLab CI/CD四大核心优势极狐GitLab CI/CD真实用户使用反馈4CI/CD 概念和背景介绍5研发
3、团队提到降本增效,最直接想到的解决方案就是将一些繁琐、易错的工作,改造为持续自动化交付流程。而在研发团队传统交付过程中,“代码集成(Continuous Integration即为CI)”和“代码交付(Continuous Delivery即为CD)”可以说是很多团队最为头痛的问题。通常研发团队中会设置一位同事或者一个团队专门负责代码集成和交付工作。但往往因为项目规模、构建环境、大量细微错误积累等复杂因素,项目的集成和交付经常会成为压垮开发团队的最后一根稻草。有研究表明在软件开发早期,手动测试过多是导致开发团队开发效率低的主要原因之一。自动测试比较少,研发过程缺乏构建和部署自动化,导致了研发团
4、队手动测试容易出现大量问题。统计数据表明,62%的研发团队被这样的问题困扰。关于CI/CD5“所以,软件集成是一件高风险的、不确定的事情,国外甚至有个专门的说法,叫作集成地狱。也正因为如此,人们就更倾向于不做集成,这就导致开发末端的集成环节变得更加困难,从而形成了一个恶性循环。”开发者6 CD(Continuous Delivery)最早出现于2010年,Jez Humble和David Farley在持续交付一书中提及和定义了CD:持续交付是“一系列的原则与实践的集合;通过这个集合,团队能够在低成本、短时间及低风险的状态下以增量方式将软件变更交到用户手上。”持续交付部分由版本控制、制品管理、
5、变更管理、构建、持续集成、自动化测试、部署管理、流水线、持续交付工具等方面组成。关于CI/CDCI 为 ContinuousIntegration 的 英 文 缩 写,意 为 持 续 集 成。CD 最 早 为Continuous Delivery的英文缩写,意为持续交付;后来也被认为可以代表ContinuousDeploy,意为持续部署。如今,CI/CD一般为持续集成、交付和部署的简称。“CI(Continuous Integration)源于肯特贝克(Kent Beck)在1996年提出的极限编程方法(ExtremeProgramming)。顾名思义,极限编程是一种软件开发方法,作为敏捷开发
6、的方法之一,目的在于通过缩短开发周期,提高发布频率来提升软件质量,改善用户需求响应速度。”7关于CI/CDCI/CD这套软件工程思路和原则诞生后经常被同时提及,是更为优秀的软件开发方法,能够大大提高团队的工作效率和交付水平。持续集成(CI)是构建软件、完成初始测试等一系列工作,是通过小步快跑的方式,不断优化集成方式的过程。持续部署(CD)是将代码与基础设施相结合的过程,确保完成所有测试并遵循策略,然后将代码部署到预期环境中。CD经常被认为也同时代表持续部署即Continuous Deploy。持续部署更进一步。一旦构建在staging环境中通过了自动测试,持续部署系统将会自动将它部署到生产服务
7、器上。换言之,每个通过测试的构建都是实时的,可供用户及早反馈。这使得团队可以不断发布新特性和修复bug,并以其测试流程提供的保证为后盾。所以,很多时候CI/CD是指代通过连续方法进行软件开发的工程方案。8强痛点,推动CI/CD发展“该项目属于维护性质(在已有项目基础上开发),特征比较明显,客户也比较随(you)和(qian)。项目要求在两周内发布一些新特性。要上线的时候我才发现,团队里面居然没有人做过部署,做过的也只是通过WinSCP的工具进行拖拽。(团队没有经验的后果就是)部署10次有9次跑不起来(剩下的一次是我部署的)。”“由于客户业务发展的需求和相关安全性考虑,决定半年后升级现有Java
8、版本和中间件。除了升级中间件,还需要通过重构改善现有系统的性能,最后的测试时间只有一个月。编码一时爽,重构火葬场,做过开发的同学应该都有深刻的体会,没有测试的重构,想想都头皮发麻,修Bug的味道我知道。”开发者If it hurts,do it more often,and bring the pain forward.Martin Fowler(马丁福勒,软件开发方面的著作者和国际知名演说家)集成、部署和交付的强痛点,推动了CI/CD近十年的快速发展。MartinFowler认为如果痛点过于明确,那么就请频繁地去实践,并且将痛苦前置,以便我们更好地解决痛点,达到更接近预期的研发效果。9从理念
9、诞生开始,全球主要的研发团队即开始探索如何将CI/CD更好地在实际研发场景中帮助团队降低研发成本和提升研发效能。目前,CI/CD的实践分为三个阶段:历经三阶段,平台型产品站上历史舞台01开源软件大部分研发团队对于CI/CD的初体验多是使用开源软件/开源项目。开源项目一般解决的是行业某一个通用的痛点,行业共性需求很强。在不复杂的开发环境中,解决一些通用问题,开源软件的效果还是很容易看到。但是在复杂和具有企业个性的开发环境中,开源软件就会展现出来一些劣势。“为了项目的顺利进行,我用某开源软件部署了人生中的第一条CI流水线,整个CI流水线只有两个功能,打包和部署环境。花费的时间从原来的1人日/部署,
10、缩短到了10分钟/部署,我尝到了CI的甜头,真香啊”某金融研发团队Leader02开源软件+其他软件协同随着研发团队交付复杂程度和交付品质要求的不断提升,通用型解决方案逐渐开始面临挑战。面对个性化开发环境需求和具体的客户需求,研发团队通常无法通过单纯的人工审核流程进行满足。10平台型产品经过三阶段的发展。目前,具有解决方案平台能力的产品正在不断替代此前两阶段的CI/CD成为头部企业、行业引领者的共同选择。随着中国企业数字化进程的不断推进,企业在使用CI/CD工具时的场景逐渐趋于复杂。行业的多样性也不断展现出来。因此,研发团队日常工作开始承接难度更高的跨功能、跨团队、跨行业的需求。团队在研发过程
11、中各种插件的兼容性和适配性为团队的稳定交付带来不确定性挑战。一体化平台产品的诞生满足了这种市场需求,大大降低了插件间适配度产生的时间成本和适配过程中出现事故的风险成本。(接上页)与此同时,人工审核流程还会消耗大量的团队耐心和时间,为团队整体研发成本增加负担。此时,能够连接开源项目的其他协同软件成为降本增效不错的选项。如通过协同静态扫描集成帮助研发团队把更多的精力投入到业务层面的确认,显著地提升整体研发质量。0311CI/CD赋能研发的四大抓手01持续性 CI/CD通过工作流程更新,将大量复杂的工作切分为可以控制或者可以修复的小单元工作。在没有实践CI/CD的团队中,通常需要花费大量时间,由专门
12、的高水平开发者或者团队去统一集成和部署。导致研发团队在人力成本和时间成本上都承担了更高的成本和压力。CI/CD通过增加集成和部署频率,降低单次集成和部署的复杂程度,从而提升了单次集成和部署动作的准确性。02自动化 CI/CD通过程序帮助研发团队解放专职的集成和部署人员。开发人员提交新代码之后,程序立刻自动进行构建、测试、安全扫描等多项工作。因为这些新提交在最终合并到主线之前,都需要通过编译和自动化测试流程进行验证。这样做是基于之前持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量,对可能出现的一些问题进行预警。1204高效迭代CI/CD通过持续性、自动化、可追溯的实践
13、,在可控范围内不断降低项目研发的机会成本,在宏观层面帮助项目研发更高效迭代。03可追溯CI/CD小单元的持续集成、部署和交付,将原本超出控制、高概率不可修复的流程前置,将更多可能出现的问题提前解决。并且所有开发人员均可以追溯开发流程,更精准地帮助项目内容的完成。CI/CD赋能研发的四大抓手13CI/CD的核心流程主要包含编码、提交、版本控制、测试(代码级)、构建、制品中心、部署、测试(应用级)和发布等。CI(持续集成)主要包括编码、构建、集成和测试;CD(持续交付和持续部署)在CI的基础上将代码部署到更为接近真实运行环境的预生产环境中,并在代码审核通过之后,自动部署到生产环境中。在整体的CI/
14、CD过程中测试步骤也可以前置到合适的位置。如在极狐GitLab中即将测试分为代码级测试和应用级测试,代码级测试被前置于代码提交后和构建之前,进一步确保整体交付和部署的准确性和持续性。CI/CD流程结构创新赋能研发效率14CI/CD 行业发展概览15CI/CD市场蓬勃发展DATAS13亿美元规模Market Growth Reports2022 年 的 统 计 数 据,2017 年CI/CD 市 场 规 模 已 经 达 到4.02亿美元,2023年市场规模有望达到13亿美元。3.2倍规模增长85.16%国内调查显示,持续集成、自动构建、单元测试和持续部署四种敏捷工程实践,占比分别为85.16%、
中国电子信息产业发展研究院:2021京东冰箱洗衣机 用户白皮书(34页).pdf
中国儿童肥胖报告(53页).pdf
中国农业大学:2021年中国农货新消费发展专题研究报告(51页).pdf
浙江大学信息资源分析与应用研究中心:2020全球智库影响力评价报告(51页).pdf
中国人民银行:2021福建省金融运行报告(20页).pdf
中国万网:CDN产品白皮书(17页).pdf
中国联通:CUBE-CDN技术白皮书(39页).pdf
中国物流与采购联合会:中国医药冷链物流研究报告(2020)重点解读(21页).pdf
中国银行:日本消费升级对中国的启示报告(25页).pdf
中国睡眠研究会:2021运动与睡眠白皮书(48页).pdf
中兴:5G CDN白皮书(24页).pdf
内容分发网络(CDN)白皮书(2015年)(29页).pdf
【研报】批发和零售贸易行业:蚂蚁撼树的中国制造南通家纺产业深度调研-20200305[22页].pdf
【研报】轻工制造行业:进口废纸严限下的再次深度思考-20200105[23页].pdf
2019中国零售行业企业供应链KPI对标研究:洞悉行业发展趋势打造企业运营利器[40页].pdf
【研报】轻工制造行业精装房深度报告(二):红利之外格局几何?-20200409[31页].pdf
【研报】生物医药行业深度报告之“4+7”执行一周年回顾:整体控费效果明显量升价跌验证市场预期-20200423[29页].pdf
【研报】医药行业:2019年中国医药产业政策报告-191130[38页].pdf
【研报】血液制品行业专题报告:国内血液制品行业发展回顾-20200427[28页].pdf
【研报】生物医药行业之医药零售篇:竞争加剧经营分化头部公司稳健扩张-20200511[18页].pdf
【研报】全球价值链研究系列一:从全球价值链角度看中国制造-20200510[18页].pdf
【研报】医药行业:承接产业转移兴于全球市场-20200331[21页].pdf
2019年中国与美洲主要国家双边贸易深度解读报告(181页).pdf
【研报】医药行业:2019年中国血友病用药行业概览-191130[39页].pdf
线上健身第一股-keep招股说明书(463页).pdf
蜜雪冰城招股说明书-连锁茶饮第一股(724页).pdf
QuestMobile:2022年中国短视频直播电商发展洞察报告(30页).pdf
QuestMobile:2022新中产人群洞察报告(37页).pdf
町芒:2022现制茶饮行业研究报告(47页).pdf
麦肯锡:2023中国消费者报告:韧性时代(33页).pdf
罗振宇2023“时间的朋友”跨年演讲完整PDF.pdf
QuestMobile:2021新中产人群洞察报告(30页).pdf
锐仕方达&薪智:2022年薪酬白皮书(105页).pdf
美团:2022新餐饮行业研究报告(74页).pdf