发版周期缩短1半,自动化率提升60%,上汽通用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客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
2天前
|
消息中间件 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的融合实践
【5月更文挑战第9天】随着云计算和微服务架构的普及,自动化运维成为确保系统可靠性和效率的关键。本文将深入探讨如何通过Ansible和Kubernetes的集成,构建一个强大的自动化运维体系。我们将分析Ansible的配置管理功能以及Kubernetes容器编排的优势,并展示如何将二者结合,以实现持续部署、快速扩展和高效管理现代云原生应用。文章还将涵盖实际案例,帮助读者理解在真实环境下如何利用这些工具优化运维流程。
|
23小时前
|
安全 Devops 测试技术
深入了解阿里云云效DevOps:构建高效软件开发实践
阿里云云效DevOps,集成CI/CD与自动化测试,提升开发效率。支持持续集成确保代码质量,自动化测试加速交付,多环境及灰度发布保障安全可靠性。助团队构建高效开发实践,增强竞争力。
7 1
|
4天前
|
运维 Kubernetes 监控
构建高效自动化运维体系:基于Ansible的策略与实践
【5月更文挑战第8天】 在当今IT基础设施管理领域,自动化不再是一个选择,而是必要的步骤。随着复杂性的增加和变更的频繁性,自动化工具如Ansible提供了一种高效、可靠的解决方案来简化配置管理和多节点部署。本文将探讨如何利用Ansible构建一个高效的自动化运维体系,涵盖其核心原理、策略设计以及在实际环境中的应用。我们将分析Ansible与其他自动化工具的不同之处,并提供一些最佳实践,以帮助运维专家提升他们的工作效率和系统稳定性。
|
6天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器化技术融合实践
【5月更文挑战第6天】随着企业IT架构的复杂化以及快速迭代的市场需求,传统的运维模式已难以满足高效率和高质量的交付标准。本文将探讨如何通过结合DevOps理念和容器化技术来构建一个高效的自动化运维体系,旨在实现持续集成、持续部署和自动化管理,提升系统的可靠性、可维护性和敏捷性。
|
6天前
|
敏捷开发 测试技术 持续交付
深入理解自动化测试:框架与实践
【5月更文挑战第5天】 在现代软件开发周期中,自动化测试已成为确保产品质量和加速交付过程的关键环节。本文将深入探讨自动化测试的核心概念、框架选择以及实际实施过程中的最佳实践。通过分析各种自动化测试工具和技术的优缺点,我们旨在为读者提供一种系统化的方法来构建和维护有效的自动化测试环境。
|
11天前
|
机器学习/深度学习 人工智能 算法
深入理解与实践:基于AI的软件测试自动化
【5月更文挑战第1天】随着人工智能的不断发展,其在软件测试中的应用也日益广泛。本文将探讨如何利用AI进行软件测试自动化,包括其理论基础、实现方式以及在实际中的应用。我们将通过实例分析,展示AI在提高软件测试效率和质量方面的巨大潜力。
|
11天前
|
运维 Kubernetes Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【5月更文挑战第1天】 随着云计算的普及和企业数字化转型的加速,传统的IT运维模式已无法满足快速迭代和高可用性的要求。本文探讨了如何通过DevOps文化和容器化技术的融合来构建一个高效、稳定且可扩展的云基础设施。文章首先回顾了DevOps的核心理念及其对运维工作的影响,随后详细介绍了容器化技术的基本概念、优势以及在现代云环境中的关键作用。接着,文中以一系列真实案例为基础,分析了将DevOps与容器化相结合时所面临的挑战和解决方案,并提出了一套实施框架。最后,文章总结了这种融合实践对提高运维效率、加快产品上市速度和保障系统稳定性的积极影响,同时对未来的技术趋势进行了展望。
|
29天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
2月前
|
数据采集 机器学习/深度学习 算法框架/工具
利用Python实现基于图像识别的自动化数据采集系统
本文介绍了如何利用Python编程语言结合图像识别技术,构建一个自动化的数据采集系统。通过分析图像内容,实现对特定信息的提取和识别,并将其转化为结构化数据,从而实现高效、准确地采集需要的信息。本文将详细讨论系统的设计思路、技术实现以及应用场景。
|
2月前
|
Web App开发 Python
在ModelScope中,你可以使用Python的浏览器自动化库
在ModelScope中,你可以使用Python的浏览器自动化库
18 2

热门文章

最新文章