品牌名称
上汽通用
企业规模
5001-10000人

云效合作上汽通用:DevOps转型实践与效率提升

331次阅读

(1)客户介绍

在2018杭州云栖大会研发效能最佳实践专场上,上汽通用研发服务经理沈骏带来了上汽通用在企业数字化转型及研发效能提升方面的实践分享。

在业务需求不断更替、系统运维成本不断增高、研发效能缺乏有效度量以及复杂多样的技术架构等多重挑战下,上汽通用通过与阿里云效平台合作,引入云效研发流程,成功将发版周期缩短了一半,自动化率提升了60%。
 

沈骏指出,“通过过去1年左右与云效平台的合作,上汽SGM项目成功落地,并具有了一定的成效。目前SGM项目在云效上的代码模块有94个,新建/开发/集成中的项目有57个,完成发布生产环境的项目有34个。目前云效管理的测试环境资源池有191台测试用机,自动化测试执行机有6台,活跃用户有82位。

 

undefined

 

(2)项目背景

上汽通用汽车信息系统部有着4个独立且完整的应用交付团队,在过往的项目交付中,团队面临着多方面的挑战:

undefined

 

  • 首先是业务创新带来的业务系统的不断更替,其需求有一定的时效性,而且有些新业务具有不稳定性,整个应用在研发过程中也会发生变化;
     
  • 其次,已经上线的业务系统,其运维成本也在不断增高。主要成本来源于新成员和新代码的带入,同时回归测试也会在后期变更中成为人力消耗的大户;
     
  • 再次,多研发团队本身的不一致性,带来的技术架构的多样性和环境管理的不一致性,也为后期项目管理带来难度;
     
  • 最后,从管理角度来看,无法对研发过程的效率进行有效度量,急切需要将效率的提升可量化并且显性化。

 

 

(3)解决方案

通过与阿里云效平台合作,上汽通用重点在6大方面进行了尝试和改进:

1. 提升了持续交付的能力,带来了价值的持续交付

2. 将项目过程中的质量控制内建到自动构建过程中

3. 持续交付价值和度量的显性化

4. 研发流程的标准化和平台化管理

5. 研发模式的规范化,引入阿里的标准模式

6. 分层自动化测试提升回归测试的效率,同时也提升测试数据准备的效率

上汽SGM的原有研发流程是按照CMMI 3的成熟度要求来定义的,其规范程度很高,活动内容定义清晰,产出交付件定义完整。但其瀑布模式的交付过程,很难适应现有快速的交付要求。同时,它没有统一的过程管理平台。

undefined


 

此外,原有的研发工具方面还会出现版本不一致、功能重复等问题,缺乏有效集成,自动化测试能力弱。

 

undefined


 

 

云效实施经验

之所以引入阿里云效平台,主要是因为云效具有明确的研发流程,包括职责定义和管理活动内容。同时其管理活动均可在平台上落地,也覆盖了整个项目交付生命周期。

undefined


 

上汽源码的版本控制也引入了阿里的管理模式,分支开发和单元测试,集成分支自动化测试和发布生产环境,发布后合并主分支,可支持同一应用多项目多版本的开发模式支持。
 

undefined


 

通过过去1年左右与云效平台的合作,上汽SGM项目成功落地,并具有了一定的成效。目前SGM项目在云效上的代码模块有94个,新建/开发/集成中的项目有57个,完成发布生产环境的项目有34个。目前云效管理的测试环境资源池有191台测试用机,自动化测试执行机有6台,活跃用户有82位。
 

在自动化AUI测试方面,配合数据银行,上汽将长业务流程的测试用例进行了模块化,只将同一系统内局部的业务流程进行自动化。通过数据银行构造端到端的业务数据,从而支持该局部业务流程的测试完整性。带来的好处是可以减少上下游的变更带来的影响,加快测试开发的速度,也可以在用例执行阶段更快地定位和分析问题。

 

undefined


 

目前已经实施云效分层测试自动化的典型项目中,数据配置单的执行成功率能保持在90%,

 

而AUI自动化的成功率一般在50%-60%之间。究其原因,主要是UI的变化、流程的变化带来的冲击。后期项目中,会将进一步优化AUI测试用例的选择方法,同时提升测试开发人员的开发效率和能力,进一步提高自动化测试的效费比。
 

undefined


 

云效的引入为交付效率的加速做出了技术方面的可能,可以将原有的交付管理从2周的频率压缩到1周,同时也将自动化率从原有的20%提高到80%。
 

undefined


 

除此之外,云效项目的实施也给管理改进带来了新的视角,包括研发工具和过程的标准化、浏览器标准、中间件标准、公测环境的标准化、人和团队观念的转型、手工测试人员转测试开发的要求、测试数据的准备和复用等。


 

未来展望

undefined

(4)价值体现

未来,我们希望与云效工具平台继续合作,进一步推进价值的快速交付,让研发过程流水线化,带动代码的顺畅流动,让质量控制过程前置,让质量内建到整个项目构建过程中,也让研发过程产生的过程数据能够被IT利用起来,从而反过来驱动研发过程的进一步进阶。