发版周期缩短1半,自动化率提升60%,上汽通用DevOps转型实践

本文涉及的产品
云效 DevOps 流水线,基础版人数 不受限
云效 DevOps 制品仓库,基础版人数 不受限
云效 DevOps 代码管理,基础版人数 不受限
简介: 传统汽车制造行业如何成功实现DevOps转型,让我们一起来看看上汽通用是如何做到的。

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

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

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

上汽研发团队面临的挑战


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

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


研发提效转型之路

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

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

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

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

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

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

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

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


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


云效实施经验

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

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

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

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

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

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

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

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


未来展望

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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
SVN版本控制系统
SVN是现在软件开发之中的主流软件版本控制工具,在工作之中利用SVN可以有效的解决多人开发的代码管理问题,本课程将为读者讲解SVN服务器的配置以及基于MyEclipse的SVN客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
5天前
|
敏捷开发 人工智能 Devops
探索自动化测试的高效策略与实践###
当今软件开发生命周期中,自动化测试已成为提升效率、保障质量的关键工具。本文深入剖析了自动化测试的核心价值,探讨了一系列高效策略,包括选择合适的自动化框架、设计可维护的测试脚本、集成持续集成/持续部署(CI/CD)流程,以及有效管理和维护测试用例库。通过具体案例分析,揭示了这些策略在实际应用中的成效,为软件测试人员提供了宝贵的经验分享和实践指导。 ###
|
4天前
|
机器学习/深度学习 人工智能 jenkins
软件测试中的自动化与持续集成实践
在快速迭代的软件开发过程中,自动化测试和持续集成(CI)是确保代码质量和加速产品上市的关键。本文探讨了自动化测试的重要性、常见的自动化测试工具以及如何将自动化测试整合到持续集成流程中,以提高软件测试的效率和可靠性。通过案例分析,展示了自动化测试和持续集成在实际项目中的应用效果,并提供了实施建议。
|
5天前
|
Java 测试技术 持续交付
探索自动化测试在软件开发中的关键作用与实践
在现代软件开发流程中,自动化测试已成为提升产品质量、加速交付速度的不可或缺的一环。本文深入探讨了自动化测试的重要性,分析了其在不同阶段的应用价值,并结合实际案例阐述了如何有效实施自动化测试策略,以期为读者提供一套可操作的实践指南。
|
7天前
|
运维 安全 Devops
DevOps实践中的安全审核和合规性
DevOps实践中的安全审核和合规性
|
7天前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率?
DevOps实践中,如何平衡开发速度和安全审核的效率?
|
5天前
|
Web App开发 敏捷开发 测试技术
探索自动化测试的奥秘:从理论到实践
【10月更文挑战第39天】在软件质量保障的战场上,自动化测试是提升效率和准确性的利器。本文将深入浅出地介绍自动化测试的基本概念、必要性以及如何实施自动化测试。我们将通过一个实际案例,展示如何利用流行的自动化测试工具Selenium进行网页测试,并分享一些实用的技巧和最佳实践。无论你是新手还是有经验的测试工程师,这篇文章都将为你提供宝贵的知识,帮助你在自动化测试的道路上更进一步。
|
5天前
|
敏捷开发 Java 测试技术
探索自动化测试:从理论到实践
【10月更文挑战第39天】在软件开发的海洋中,自动化测试是一艘能够带领团队高效航行的船只。本文将作为你的航海图,指引你理解自动化测试的核心概念,并分享一段实际的代码旅程,让你领略自动化测试的魅力和力量。准备好了吗?让我们启航!
|
6天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
7天前
|
数据采集 IDE 测试技术
Python实现自动化办公:从基础到实践###
【10月更文挑战第21天】 本文将探讨如何利用Python编程语言实现自动化办公,从基础概念到实际操作,涵盖常用库、脚本编写技巧及实战案例。通过本文,读者将掌握使用Python提升工作效率的方法,减少重复性劳动,提高工作质量。 ###
20 1
|
1月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
65 4