深度解读DevOps在汽车行业的应用

汽车   2024-09-18 08:11   上海  

本文约14,000字,建议收藏阅读


作者 | 北湾南巷

出品 | 汽车电子与软件


         

 

随着汽车行业的数字化转型和智能网联汽车的快速发展,汽车软件复杂度和代码数量不断攀升,传统的软件开发与运维模式面临着严峻挑战。DevOps作为一种促进开发与运维高效协作的方法,为汽车行业带来了新的机遇。

         

 

         

 

成功实施DevOps需要重视文化转变、技术整合,以及安全与合规性的管理。这些因素对于确保DevOps顺利推行并取得理想效果至关重要,通过组建专注于DevOps的团队、引入自动化工具、优化流程与规范,并强化安全和合规性管理,软件开发与运维得以深度融合显著提高了软件交付效率和质量。DevOps的应用不仅缩短了开发周期,还通过自动化、持续集成和持续交付等实践降低了运维成本,增强了企业的市场竞争力。

           

 

           

 


#01

引  言
         

 

1.1 研究背景与意义
         

 

数字化转型已成为汽车行业的必然趋势,传统的软件开发和运维模式由于开发周期长、交付速度慢、运维成本高等问题,难以满足快速变化的市场需求。因此,汽车行业迫切需要更高效、灵活且可靠的软件开发和运维方法。
           

 

           

 

DevOps作为一种强调开发(Development)与运维(Operations)紧密协作的方法论,在全球范围内受到广泛关注。通过打破开发与运维之间的壁垒,DevOps实现了无缝衔接,大幅提升了软件交付速度和质量,同时降低了运维成本。对于汽车行业,引入DevOps具有重要的现实意义和长远价值。
           

 

   

* DevOps是一种软件开发方法学,它强调开发团队与运维团队的协作,以实现软件的高效、快速交付和质量保证。

详细解释

Plan(计划)

- 协作制定 DevOps 实施的目标、需求和资源规划。

- 确定项目的范围、目标和时间表。

Code(编码)

- 编写软件应用程序、基础设施和工具所需的必要代码。

- 使用版本控制系统来管理源代码的变化。

Build(构建)

- 将代码编译并打包为可执行的软件工件或包。

- 自动化构建过程以确保一致性。

Test(测试)

- 通过自动化测试和质量保证流程验证软件的功能性、性能和安全。

- 包括单元测试、集成测试、系统测试等。

Release(发布)

- 为部署准备软件,包括打包、版本控制和文档编制。

- 确保发布的软件符合质量标准。

Deploy(部署)

- 使用自动化的部署和管理工具将软件部署到生产环境中。

- 确保软件能够顺利运行在目标环境上。

Operate(运营)

- 维护和监控生产环境中的软件系统,确保其稳定性、可扩展性和可靠性。

- 监控系统的性能和可用性。

Monitor(监控)

- 持续跟踪和分析软件的性能和使用情况,收集指标和日志以识别问题并进行解决。

- 实时监控系统状态,及时响应异常情况。


*这些步骤形成了一个持续循环的过程,通过不断的迭代和反馈来优化软件的开发和运维效率。DevOps 的核心目标是缩短从概念到生产的周期,提高软件质量和用户体验。
           

 

DevOps的引入显著提升了汽车行业的软件开发效率和市场响应能力。通过自动化工具和技术,DevOps缩短了开发周期,加快了新功能的上线速度,使企业更快适应市场变化。此外,DevOps倡导的持续集成和持续交付实践,有助于确保软件质量和稳定性,提升用户体验。
           

 

在运维方面,DevOps的应用显著降低了成本并提高了系统可靠性。传统运维模式依赖手动操作,效率低且容易出错,而DevOps通过自动化监控和故障处理,能够实时发现并解决系统问题,从而提高系统稳定性,降低人工成本,提升运维效率。
           

 

           

 

   
随着智能网联汽车和自动驾驶技术的发展,软件在汽车中的作用和重要性不断增加。掌握高效的软件开发和运维方法对于汽车企业至关重要。通过引入DevOps,汽车企业可以建立强大的软件研发能力,为未来的技术创新和市场竞争奠定坚实基础。
           

 

1.2 国内外现状
         

 

国外汽车行业在DevOps的应用方面起步较早,并取得了显著成果。许多知名汽车制造商,如特斯拉和奔驰,已经成功将DevOps方法论融入其软件开发和运维流程中。这种整合不仅实现了开发与运维的高效协作,还显著提升了软件交付速度和质量,降低了运维成本。例如,奔驰通过DevOps缩短了车载软件系统的更新周期,提高了用户体验和市场竞争力。

           

 

国外学者对DevOps在汽车行业的应用进行了深入研究,并提出了多种优化策略和实践案例。这些研究涵盖了技术改进,如自动化测试和持续集成/持续部署(CI/CD),以及组织文化和团队协作的调整。这些综合措施推动了DevOps在汽车行业的广泛应用和深入发展。此外,国外汽车行业还积极参与开源社区和行业标准制定,与其他行业共享DevOps的最佳实践和经验,这种跨行业的合作进一步加速了DevOps在汽车行业的普及和优化。
           

 

           

 

相比之下,国内汽车行业对DevOps的关注虽然日益增加,但整体应用水平仍处于起步阶段。随着国内汽车市场的扩大和数字化转型的加速推进,越来越多的汽车企业开始认识到DevOps在提升软件开发和运维效率方面的价值。
           

 

   
           

 

一些领先企业,如吉利和一汽大众,已开始尝试引入DevOps方法论,并在实践中取得了初步成果。然而,这些企业在实施DevOps过程中仍面临团队文化差异、技术栈不匹配、安全与合规性等挑战,这要求企业在推进DevOps时更加注重策略规划和风险管理。
           

 

           

 


#02
DevOps方法论概述
         

 

2.1 DevOps定义与核心原则
         

 

DevOps,源于“Development”(开发)和“Operations”(运维)的合成词,体现了开发与运维之间的紧密协作和沟通。这一方法论通过实施自动化、持续集成、持续交付、持续反馈和共享责任等核心原则,旨在优化软件开发和运维流程,从而提升软件交付效率和质量,降低运维成本,并提高客户满意度。
           

 

           

 

在DevOps实践中,自动化是至关重要的一环。它涵盖自动化测试、自动化构建、自动化部署等多个方面,旨在减少人工干预,提高工作效率和准确性。自动化通过缩短软件开发周期,加速响应市场变化和用户需求,实现快速迭代和更新。例如,通过自动化测试,可以在代码变更时立即验证功能的正确性,从而及时发现问题并减少发布风险。
           

 

持续集成是DevOps的核心原则之一,要求开发人员频繁地将代码集成到共享代码库中,并通过自动化的构建和测试来验证代码的正确性。这种做法能及早发现并解决代码中的问题,避免问题在后期累积和放大,从而提高软件的质量和可靠性。持续集成还支持开发团队在更短的周期内发布功能,提升了团队的生产力和代码质量。   
           

 

持续交付是在持续集成基础上发展而来的,强调在短周期内频繁地将软件交付到生产环境或用户手中。这一过程确保能够及时获取用户反馈,并根据反馈进行调整和优化,从而更好地满足用户需求,提升用户体验和满意度。持续交付不仅优化了发布过程,还使软件能够更快速地适应市场和技术变化。
           

 

持续反馈是DevOps中的另一个关键环节。它涉及在整个软件开发生命周期中不断收集和分析用户反馈、系统性能数据等信息,以便及时发现问题并进行改进。这种反馈机制有助于形成闭环的质量控制体系,确保软件的持续优化和提升。通过持续反馈,团队可以更好地理解用户需求,并针对性地进行改进,提高软件质量和用户满意度。
           

 

           

 

共享责任是DevOps文化中的重要理念,强调开发与运维团队之间的共同目标和责任担当,打破传统模式下的壁垒和隔阂。通过共享责任,DevOps促进了团队之间的协作与沟通,形成了高效的工作氛围和协同效应。这种文化转变有助于提高团队的整体效率,缩短开发周期,同时提升软件的稳定性和可靠性。
           

 

总的来说,DevOps作为一种先进的软件开发和运维方法论,通过核心原则的实践应用,为汽车行业及其他领域带来了显著的变革和价值提升。其对提高软件交付效率、降低运维成本、以及提升用户体验等方面的贡献,已经在全球范围内得到广泛认可和应用。
           

 

2.2 DevOps关键实践
         

 

DevOps实施过程中的关键实践包括持续集成(CI)、持续交付(CD)、自动化测试、自动化部署以及监控与日志分析等。这些实践方法通过引入自动化工具和优化流程,显著提升了软件开发和运维的协同效率,确保了软件的高质量快速交付。
           

 

   
           

 

  • 持续集成(CI)是DevOps中的核心理念之一。它强调开发人员频繁地将代码集成到共享代码库中,并通过自动化的构建和测试流程来尽早发现并解决问题。持续集成服务器监控代码库的变化,一旦有新的提交,就会自动触发构建和测试流程。这种做法不仅减少了集成风险,还能够更快地获取代码更改的反馈,从而提升代码质量和稳定性。通过及早发现问题,团队能够在问题扩展前进行修复,降低后期修复的成本。
           

 

  • 持续交付(CD)是持续集成的延续,旨在确保软件能够在任何时间点以最小的变更成本可靠地发布。持续交付建立了一个全自动化的软件发布流程,使得从开发到生产环境的每一步都能快速、安全地完成。这种方法使企业能够更快地响应市场变化,满足客户需求,同时降低发布新版本的风险。持续交付还包括构建自动化回滚机制,以应对发布后可能出现的问题。
           

 

  • 自动化测试在DevOps中扮演着至关重要的角色。通过自动化的工具和脚本执行测试用例,自动化测试提高了测试效率和准确性。它能够快速验证代码的正确性,并在代码提交后自动运行,及时发现并报告潜在问题。自动化测试不仅减少了人工测试的错误和遗漏,还能够进行更广泛的测试覆盖,提高软件的整体质量。
           

 

  • 自动化部署是DevOps实践中的关键环节。它通过使用自动化工具和脚本进行应用程序的部署,减少了手动部署的复杂性和出错率。自动化部署确保每次部署都按照一致的标准进行,提高了部署效率和可靠性。此外,自动化部署与持续集成和持续交付流程紧密集成,实现了软件的快速迭代和发布。
           

 

  • 监控与日志分析是DevOps中不可或缺的组成部分。实时监控应用程序的性能和状态,团队能够及时发现并解决潜在问题。日志分析提供了系统运行情况和用户行为的深入洞察,为优化软件性能和改进功能提供了有价值的数据支持。监控工具和日志分析不仅帮助团队在问题发生时做出迅速反应,还可以进行趋势分析,预防未来可能出现的问题。
           

 

2.3 DevOps工具与技术
         

 

   
支持DevOps实施的工具和技术涵盖了软件开发生命周期的各个环节,这些工具和技术不仅提升了开发效率,还确保了软件的质量和稳定性。以下是一些关键的DevOps工具与技术及其在汽车行业中的应用:
         

 

         

 

1.版本控制系统(如Git)是DevOps流程中的基石。它们允许团队成员协作开发,跟踪代码更改历史,并确保数据的一致性和完整性。在汽车行业中,版本控制系统被广泛应用于管理复杂的软件项目,包括车载信息系统和自动驾驶技术等。通过使用Git等工具,开发团队能够有效协同工作,减少代码冲突和错误,从而加速软件的交付速度。
         

 

2.自动化测试工具(如JUnit和Selenium)对于确保软件质量至关重要这些工具能够自动执行测试用例,检测代码中的缺陷,并提供即时反馈。在汽车行业中,自动化测试被广泛应用于验证车载软件功能是否符合预期。自动化测试的使用有助于早期发现并修复问题,从而降低后期修复成本和风险,并提高软件的可靠性。
         

 

3.持续集成/持续交付平台(如Jenkins和GitLab CI/CD)是实现快速、可靠软件交付的关键。这些平台能够自动化构建、测试和部署代码,确保软件在任何时候都处于可发布状态。在汽车行业中,持续集成和持续交付被用于加速车载软件的迭代速度,以满足市场对新功能和性能改进的不断需求。使用这些平台,开发团队能够更频繁地发布软件更新,同时保持高质量和稳定性。
         

 

         

 

4.容器化技术(如Docker)为DevOps提供了灵活且可移植的运行环境。通过容器化,开发团队可以将应用程序及其依赖项打包在一起,确保在不同环境中的一致性。在汽车行业中,容器化技术被用于简化车载软件的部署和管理过程。容器化的使用能够加速软件交付和更新,同时降低运维成本和复杂性。    

5.自动化部署工具(如Ansible和Terraform)能够自动化地配置和管理基础设施。这些工具帮助开发团队快速、准确地将应用程序部署到各种环境中,包括云平台、虚拟机或物理服务器。在汽车行业中,自动化部署减少了手动配置和管理的错误,提高了部署效率和可靠性。通过这些工具,开发团队可以更快地响应市场需求,实现软件的快速迭代和更新。
         

 

         

 

6.监控与日志分析工具(如Prometheus和ELK Stack——Elasticsearch、Logstash和Kibana)对于确保软件的稳定性和性能至关重要。这些工具实时收集和分析系统运行数据,提供关于性能瓶颈、潜在问题和安全漏洞的洞察。在汽车行业中,监控与日志分析被广泛应用于车载软件的运维阶段。通过使用这些工具,运维团队能够及时发现并解决潜在问题,确保软件的稳定运行和客户满意度。
         

 

DevOps工具与技术为汽车行业的软件开发和运维带来了显著变革和价值。通过利用这些工具和技术,汽车行业的开发团队能够更高效地协作,更快速地交付高质量的软件产品,从而满足市场的不断变化需求并提升企业的竞争力。
           

 

         

 


#03
汽车行业特点及挑战
         

 

3.1 汽车行业特点
           

 

汽车行业具有高度复杂性和不断发展的特性,对软件开发和运维提出了独特要求。

主要挑战包括:
           

 

1.系统复杂性:现代汽车依赖大量电子控制系统,这些系统需紧密协作以确保车辆正常运行。软件开发人员需具备深厚的专业知识,以应对复杂的系统设计和集成挑战。
           

 

2.严格的安全性要求:汽车直接关系到乘客和行人的生命安全,因此软件缺陷不可接受。软件开发和运维必须严格遵循安全标准,确保软件稳定可靠,避免安全隐患。
           

 

3.法规遵从性要求:汽车行业受到各国政府法规和标准的严格监管,以保证车辆的安全、环保和性能。制造商需在开发和运维中充分考虑法规要求,以确保产品符合认证标准,这增加了开发难度和成本。
    
标准/

ISO/SAE 21434

UN R155

全称

道路车辆网络安全工程标准

联合国第155号法规:道路车辆网络安全

发布组织

国际标准化组织(ISO)和美国汽车工程师学会(SAE)

联合国欧洲经济委员会(UNECE)

重点领域

网络安全工程,包括开发和生产阶段的网络安全

网络安全管理系统(CSMS)及其合规性要求

适用范围

道路车辆的整个开发生命周期,包括概念、开发、生产、运营和退役

全球新型车辆的认证和销售要求

主要目标

确保车辆电子系统和软件的安全性,防止网络攻击

确保车辆满足必要的网络安全标准才能获得全球市场认证

核心内容

- 网络安全管理

- 建立网络安全管理系统(CSMS)

- 风险评估方法

- 风险管理

- 开发和生产的安全性

- 持续监控和响应

- 监控和响应

- 合规性要求

实施方法

提供技术指导和框架,强调生命周期内的安全性

作为法规要求,规定车辆必须符合的网络安全标准

管理要求

建立网络安全管理框架,持续评估和改进

制定和维护网络安全管理系统,并定期证明其有效性

主要区别

强调技术层面的实施和管理方法

强调法规要求和合规性,确保车辆符合网络安全认证标准


4.智能网联汽车的挑战:智能网联汽车集成了先进技术,增加了软件开发和运维的复杂性。汽车制造商需投入更多资源来应对这些挑战,并提升软件开发和运维能力,以满足市场需求。
           

 

   
           

 

机遇与DevOps的作用:DevOps通过自动化、持续集成和交付、实时监控等实践,有助于优化软件开发和运维流程,提高交付速度和质量。有效的DevOps实施可以帮助汽车制造商应对行业挑战,抓住数字化转型的机遇,提升市场竞争力。
           

 

3.2 DevOps实施挑战
           

 

在汽车行业实施DevOps方法论时,面临以下挑战:
           

 

1.文化与组织架构的冲突:传统研发模式中,开发与运维分工明确,DevOps的跨职能协作对现有组织架构构成挑战。成功实施需高层支持和全员参与,包括推动团队合作和开放沟通。
           

 

           

 

2.技术实施的复杂性:汽车行业的软件系统复杂多样,特别是在智能网联和自动驾驶领域。确保技术在DevOps框架下顺畅集成,避免技术壁垒,是实施中的关键任务。
           

 

3.安全性与合规性要求:汽车软件故障可能导致严重后果,DevOps需在快速迭代的同时确保软件质量和安全。需要嵌入严格的安全检查和合规审查,满足如ISO 26262等安全标准和数据保护法规。
           

 

4.人才与技能匹配问题:DevOps实施需要跨领域知识和技能的团队。由于复合型人才稀缺,汽车企业需通过培训和招聘弥补人才缺口,并建立持续的职业发展机制。
           

 

   
5.流程和工具的适配:将DevOps应用于汽车行业需调整现有流程和工具,确保与传统开发和运维流程兼容,并不断优化以适应技术和业务需求的变化。
           

 

           

 

总之,汽车行业在推行DevOps时面临多方面挑战,包括技术整合、组织文化、人才结构等。全面认识并应对这些挑战,能够提高软件开发和运维效率,提升产品质量和客户满意度,帮助企业在市场竞争中脱颖而出。
           

 

           

 

 
#04
DevOps在汽车行业的应用案例分析
            

 

4.1 SDV背景下DevOps的应用
         

 

汽车行业正经历从传统内燃机到电动汽车的转型,同时从以硬件为中心的产品转变为以软件定义的产品,这些产品支持自动驾驶功能和无线更新。这一变革需要新的电气/电子(E/E)和软件架构,基于硬件与软件的解耦设计。
         

 

波士顿咨询公司(BCG) 曾表示:“仅仅是从内燃机到电动汽车 (EV) 的转变就足以撼动整个行业,而通过软件进行的创新也已然能够改变游戏规则。”“移动出行行业正经历着前所未有的大变革,OEM应加快上市速度,并针对客户需求做出更加积极的响应。......继续以传统方式运作的企业将无法实现这种蜕变并会在新的环境中丧失竞争力。”
         

 

为了适应这些变化,汽车开发和工程流程需要从传统的孤岛式组织转向敏捷和DevOps驱动的流程,以实现更好的跨部门协作,并提高开发速度和灵活性。
         

 

软件定义汽车(SDV) 是这一变革的核心。它依赖于集成的DevOps方法,将软件更新直接推送到车载系统中。具体包括:
         

 

  • 软件定义汽车(SDV):通过集成的软件系统,SDV能够支持高级驾驶辅助系统(ADAS)、自动驾驶、智能导航等功能,并具备高效的无线更新能力,以支持功能改进和系统优化。   
         

 

  • DevOps方法:包括自动化的持续集成和持续交付(CI/CD),实现软件的快速开发、测试和部署。这种方法涵盖了从软件开发到车载系统更新的全过程,确保软件能够及时、安全地更新到车辆中。
         

 

DevOps的实施不仅能解决SDV面临的技术挑战,还能带来新的业务机会,包括在传统汽车之外的共享出行和智能环境等领域,为原始设备制造商(OEM)提供更多的增长和创新机会。
         

 

软件定义汽车(SDV)需要一个集成的后台和车载架构。为了支持持续的功能开发和上线,DevOps方法和工具可以应用于汽车软件开发和运维中。
         

 

         

 

子模块

功能介绍

DevOps 角色介绍

DevOps 方法论应用

Vehicle

Android App

提供车载应用程序,支持多种功能,如导航、媒体播放和通信。

开发人员:负责应用的开发、测试和发布。

CI/CD: 自动化应用的构建、测试和部署。

运维人员:监控应用的性能和稳定性。

敏捷开发: 快速迭代和更新应用程序。


AUTOSAR Classic

提供标准化的车载软件架构,支持安全关键型应用。

嵌入式软件工程师:负责 AUTOSAR 组件的开发和集成。

版本控制和测试: 确保 AUTOSAR 组件的功能和安全标准。

测试人员:验证功能和性能。


AUTOSAR Adaptive

提供灵活的软件架构,支持高级驾驶辅助系统和自动驾驶功能。

系统架构师:设计和实现灵活的软件架构。

敏捷开发: 支持复杂需求的快速迭代和更新。

开发人员:支持高级功能的开发。


Middleware

提供数据传输和协调功能,用于中间件服务的集成。

中间件开发人员:负责中间件的设计、实现和维护。

自动化: 自动化中间件的测试和性能优化。

运维人员:监控中间件的运行情况。


OTA Client

管理车载系统的软件更新,通过空中更新(OTA)实现。

更新工程师:设计和实施 OTA 更新策略。

自动化部署: 集成 OTA 更新至 CI/CD 流程中,确保安全更新。

运维人员:监控更新的执行和问题处理。


Vehicle Data

处理和管理车辆的实时数据,用于分析和优化。

数据工程师:负责数据采集、处理和分析。

数据管理和分析: 自动化数据采集、处理和监控,确保数据准确性。

分析师:挖掘和利用数据提供见解。


Cyber Security

保护车载系统免受网络攻击,确保数据安全。

安全专家:进行漏洞扫描、安全测试和风险评估。

DevSecOps: 持续集成安全测试和漏洞扫描,确保系统安全。

运维人员:监控系统的安全性。


Hypervisor

提供虚拟化支持,隔离不同的车载应用程序。

虚拟化工程师:负责虚拟化环境的配置和维护。

虚拟化管理: 确保虚拟环境的稳定性和安全性。

测试人员:验证虚拟化环境的兼容性和性能。


OS Container Platform

提供容器化平台,用于管理和部署应用程序。

容器化工程师:负责容器化环境的搭建和管理。

容器化: 实现一致的开发、测试和部署环境,减少环境配置差异。

运维人员:监控容器化平台的健康状态。


BSP Boot Loader

初始化硬件和加载必要的软件组件。

引导程序工程师:负责引导程序的开发和优化。

自动化测试: 确保引导程序的兼容性和性能,支持系统稳定启动。

测试人员:验证引导程序的稳定性和兼容性。

Connect

Edge Services

在车辆边缘进行数据处理,减少延迟和带宽消耗。

边缘计算工程师:负责边缘服务的设计和部署。

持续监控和自动化管理: 确保边缘服务的高可用性和安全性。

运维人员:监控边缘服务的运行状态。


Cloud CDN

提供全球内容分发,加速内容传输。

CDN 管理员:负责 CDN 的配置和优化。

自动化部署和扩展: 确保内容的高效传输和安全性,自动调整策略。

运维人员:监控 CDN 的性能和安全。

Backend

Vehicle Operations

管理车辆的操作,包括软件状态监控、身份访问管理和更新发布。

后端工程师:开发和维护车辆操作相关的服务。

敏捷开发和自动化: 支持高效的开发和部署,优化系统功能。

运维人员:确保系统的稳定运行。


Connected Vehicle Services

提供联网车服务,如应用商店、紧急服务和导航等。

服务管理员:负责服务的集成和管理。

协作开发和自动化: 确保服务的高效提供和管理。

运维人员:确保服务的可用性和性能。


Vehicle DevOps

提供车辆 DevOps 工具,包括敏捷工具和测试工具。

DevOps 工程师:实施 CI/CD 流程,支持开发和部署。

敏捷工具和自动化: 支持快速开发和持续集成。

测试人员:验证工具的有效性。


Backend DevOps

提供后台 DevOps 工具,包括云工具链和开源工具。

DevOps 工程师:负责后台系统的自动化和优化。

持续集成/部署和自动化: 确保后台系统的高效管理和自动化更新。

运维人员:确保后台系统的稳定性。


Cloud Infrastructure

提供云计算基础设施,包括安全性和多云管理。

云工程师:负责云资源的管理和配置。

云计算和自动化: 支持高效的云资源管理和自动化部署。

运维人员:监控云基础设施的运行状态。


Data

管理和存储各种数据,包括用户数据和系统数据。

数据工程师:负责数据的采集、存储和分析。

数据管理和自动化: 自动化数据采集、处理和分析,确保准确性。

分析师:挖掘和利用数据提供见解。

External Systems

Content Provider

提供内容服务,如地图和天气数据。

内容管理员:负责内容的提供和更新。

内容管理和自动化: 确保内容的准确性和高效分发。

服务提供商:确保内容的质量和准确性。


Service Provider

提供服务支持,如网络连接和紧急服务。

服务经理:负责服务的提供和管理。

服务管理和自动化: 提高服务提供的效率和质量。

运维人员:监控服务的性能和稳定性。


Supplier

提供硬件和软件组件,支持各种功能。

供应链经理:管理供应链中的组件集成。

供应链管理和自动化: 确保组件的质量和集成效率。

质量工程师:确保组件的质量和兼容性。


VDX Infra.

提供数据交换平台,支持车辆数据的流通。

数据交换工程师:管理数据流通平台。

数据交换和自动化: 支持高效的数据交换和集成。

数据管理员:确保数据流通的有效性和安全性。


Vehicle 模块关注车载系统中的软件和数据组件,包括硬件驱动和应用程序。它负责确保车辆的核心控制、信息娱乐系统和辅助驾驶功能正常运行。
         

 

Connect 模块专注于车辆的网络连接和数据安全,涵盖边缘服务和云内容分发网络。它确保车辆能够稳定连接到网络,保护数据安全,并提供实时数据处理和内容传输。
         

 

Backend 模块涉及车辆操作、联网车服务以及 DevOps 管理。它处理车辆数据的存储、分析和后台服务管理,并支持软件更新和维护。

         

 

External Systems模块包括外部内容和服务的集成,如地图服务和实时交通信息,提升车辆功能和用户体验。
         

 

这些模块共同协作,实现车载系统的智能化和高效运行。
   

子模块

功能

Vehicle 的关联

Connect 的关联

Backend 的关联

与 External Systems 的关联

DevOps 方法论

Vehicle

Android App

车载应用程序

Connected Vehicle ServicesApp StoreEmergency Services交互

利用Edge ServicesCloud CDN确保应用内容和服务的快速加载和更新

通过Vehicle SOC监控软件状态,确保应用程序的稳定性

-

CI/CD: 通过持续集成和持续交付实现应用的快速迭代和更新。


AUTOSAR Classic

标准化车载软件组件和服务

支持安全关键型应用,确保符合功能安全标准

AUTOSAR Adaptive支持高级功能和数据交换能力

通过Vehicle SOC监控,确保AUTOSAR 组件的运行稳定性

-

版本控制和测试: 严格的版本管理和测试确保软件符合功能安全标准。


AUTOSAR Adaptive

灵活的软件架构支持

支持高级驾驶辅助系统(ADAS)和自动驾驶功能

支持Edge ServicesCloud CDN中的数据处理和传输

支持Vehicle DevOpsBackend DevOps中的持续集成与交付

-

敏捷开发: 支持快速迭代和更新,适应复杂的需求变化。


Middleware

数据传输和协调

提供Vehicle Operations 中Identity Access Mgmt.OTA Release Mgmt.的中间件支持

协助Edge Services数据处理和传输

确保Backend DevOps中的组件集成和质量控制

-

自动化: 高度模块化和自动化的测试确保中间件的可靠性和性能。


OTA Client

空中更新客户端

推送和管理软件更新

使用Cloud CDN进行内容分发和更新

OTA Release Mgmt.配合,管理软件更新发布

-

自动化部署:与CI/CD 管道集成,确保安全的更新流程。


Vehicle Data

车辆数据管理

提供Maintenance & RepairFleet Mgmt.所需的实时数据

通过Edge Services进行数据处理,并与Cloud CDN存储和分发数据

支持Data Ingest & LabelAnalytics中的数据分析和处理

-

数据管理和分析: 自动化数据采集、处理和监控,确保数据准确性。


Cyber Security

网络安全保护

Identity Access Mgmt.Software Updates相关,确保数据和软件的安全

保护Edge ServicesCloud CDN中的数据传输安全

Backend DevOps中集成安全测试和漏洞扫描

-

DevSecOps: 在开发周期中持续集成安全测试和漏洞扫描。


Hypervisor

虚拟化环境

支持Vehicle DevOps的虚拟化环境,提高系统灵活性和资源利用率

支持Edge Services的虚拟化需求

提供Backend DevOps的虚拟化支持

-

虚拟化管理: 确保虚拟环境的稳定性和安全性,支持多个系统的运行。


OS Container Platform

容器化平台

支持Vehicle DevOpsBackend DevOps中的应用开发和部署

支持Edge ServicesCloud CDN中的容器化部署

用于Backend DevOps中的持续集成和部署

-

容器化: 实现一致的开发、测试和部署环境,减少环境配置差异。


BSP Boot Loader

板级支持包引导程序

初始化硬件,加载Vehicle Operations所需的软件

确保Edge ServicesCloud CDN的引导程序兼容性和稳定性

自动化测试引导程序的兼容性和性能

-

自动化测试: 确保引导程序的兼容性和性能,支持稳定的系统启动。

Connect

Edge Services

边缘计算服务

实时数据处理、数据过滤和预处理

提供本地计算支持和数据传输,减少延迟和带宽消耗

支持Vehicle DevOps中的数据处理和Backend DevOps的数据管理

-

持续监控和自动化管理: 确保高可用性和安全性,支持快速迭代和更新。


Cloud CDN

云内容分发网络

提供OTA ClientAndroid App的内容分发和更新

高效内容分发、负载均衡和安全性增强

支持Cloud ToolchainContinuous Deployment中的内容优化

提供Content Provider的内容分发支持

自动化部署和扩展: 确保内容分发的高效性和安全性,自动化调整策略。

Backend

Vehicle Operations

车辆操作管理

管理Vehicle SOCIdentity Access Mgmt.OTA Release Mgmt.

使用Edge ServicesCloud CDN提供数据和服务支持

进行Data Ingest & LabelModel Creation & Training

-

敏捷开发和自动化: 支持高效的开发和部署,确保系统功能的稳定性。


Connected Vehicle Services

车联网服务

提供App StoreEmergency ServicesNavigation Weather ParkingMaintenance & Repair等服务

通过Cloud CDN提供高效内容分发

提供Fleet Mgmt.EV Services 的支持

-

协作开发和自动化: 支持跨系统的服务管理,确保服务质量和稳定性。


Vehicle DevOps

车辆DevOps 工具

支持Android ToolsAutosar ToolsECU Test Virtual Test

通过CI/CD流程实现快速迭代和部署

实现Continuous Integration/ DeploymentSimulation Validation Test

-

敏捷工具和自动化: 支持快速开发和持续集成,优化开发流程。


Backend DevOps

后台DevOps 工具

支持Vehicle DevOps的开发和部署工具

管理Cloud ToolchainAgile Tooling,确保Cloud CDN的优化

提供Cloud ToolchainContinuous Deployment的支持

-

持续集成/部署和自动化: 确保后台系统的高效管理和自动化更新。


Cloud Infrastructure

云计算基础设施

提供Vehicle Operations 和Connected Vehicle Services的云计算支持

管理Cloud CDNEdge Services的云基础设施

支持Backend DevOps中的云计算和Cloud Toolchain

-

云计算和自动化: 支持高效的云资源管理和自动化部署。


Data

数据管理

管理Vehicle DataUser Data

支持Data LakeCache,确保数据的有效存储和访问

支持Data Ingest & LabelAnalytics中的数据分析和处理

提供Source RepoArtifact Repo的数据支持

数据管理和自动化: 支持数据的自动化采集、处理和分析,确保准确性。

External Systems

Content Provider

内容提供

提供应用和服务所需的内容,如地图和天气数据

支持Cloud CDN中的内容分发

支持Connected Vehicle Services 和Backend DevOps中的内容支持

-

内容管理和自动化: 确保内容的准确性和高效分发。


Service Provider

服务提供

提供网络连接和服务支持,如紧急服务

支持Vehicle OperationsConnected Vehicle Services的服务管理

支持Backend DevOpsCloud Infrastructure的服务管理

-

服务管理和自动化: 确保服务的高效提供和管理。


Supplier

供应商

提供硬件和软件组件,支持AUTOSAR ClassicAUTOSAR Adaptive

支持Vehicle OperationsConnected Vehicle Services的组件管理

管理供应链中的组件集成和质量控制

-

供应链管理和自动化: 确保组件的质量和集成效率。


VDX Infra.

车辆数据交换平台

支持Vehicle DataEdge Services的数据流通

确保Data Ingest & LabelAnalytics中的数据交换和管理

提供Data LakeCache中的数据流通和支持

-



表格详细说明了各模块及其子模块在 DevOps方法论下的作用和关联,提供了一个全面的视角来理解系统的集成和优化。
         

 

4.2 某主机厂的DevOps应用
         

 

该汽车制造商在DevOps实施初期,便明确了目标与愿景,即通过DevOps方法论优化软件开发和运维流程,提高软件交付速度和质量,以适应市场快速变化的需求。
         

 

   
         

 

步骤

详细描述

需求阶段

功能/系统开发

最左侧模块代表需求的起始阶段,团队首先进行功能和系统开发,定义软件的需求和目标。

开发阶段

 
 
 
SDB/SWRS下发

需求明确后,会有系统设计文档(SDB)或软件需求规格说明(SWRS)下发给开发团队,指导接下来的开发工作。

软件需求开发

开发团队根据下发的文档进行软件需求的开发,明确每个功能的具体实现要求。

软件锁定与提交

- 软件锁定:在需求明确后,团队进入具体的软件开发阶段,完成代码编写和功能实现后,进行软件的“锁定”操作,通常意味着冻结代码,防止新的修改,以准备进行检查和集成。


- 软件提交:在锁定后,代码提交到本地代码仓库,准备进入后续的检查和集成阶段。

持续集成和持续部署(CI/CD)阶段

 
 
 
 
 
 
 
 
 
本地代码到代码仓库

- 门禁检查:在代码提交到代码仓库之前,需要进行一系列检查,以确保代码质量和符合团队的规范。


- 自定义规范检查:根据团队定义的编码规范进行检查,确保代码风格和质量。


- 代码评审:团队成员之间进行代码审查,进一步保证代码的质量和可维护性。


- 模型规范检查:对代码进行建模检查,确保设计与需求的一致性。


- 自动化单元测试:使用自动化工具进行单元测试,快速验证代码的功能是否符合预期。

代码仓库到制品仓库

- 代码入库:通过上述检查后,代码正式进入代码仓库。


- 安全扫描:在代码进入制品仓库之前,需要进行安全扫描,检测代码中是否存在安全漏洞。


- 全量静态检查:全面的静态代码分析,检查潜在的错误和代码优化点。


- 自动构建制品:一旦所有检查通过,代码会自动构建,生成软件制品。


- 编译构建:编译器将代码编译成可执行的二进制文件,准备进行测试和部署。

软件持续测试/CT

测试阶段

 
 
 
 
 
开发制品库到受控制品库

- 自动化集成测试:编译生成的制品会进行自动化集成测试,验证整体系统的兼容性和功能性。


- 受控制品库:测试通过的制品会被放入受控制品库,等待进一步的测试和发布。

集成测试

- 接口测试:测试不同系统或模块之间的接口,确保数据交换和功能调用的正确性。


- 冒烟测试:快速进行的基本功能测试,确保核心功能正常。


- 性能测试:测试系统在不同负载下的性能表现,确保满足性能需求。


- 功能点检:逐一检查每个功能点,确保实现符合设计和需求。

软件持续测试/CT

认可测试阶段

自动化HIL测试(Hardware-in-the-Loop,硬件在环测试)

使用实际硬件来进行模拟测试,确保软件在实际硬件环境中的表现符合预期。这是部署前的重要环节,可以发现一些在仿真中无法发现的问题。

度量体系

度量体系

度量体系表明在整个DevOps流程中,需要通过各种指标来持续评估和优化开发流程、代码质量、安全性等。这些指标包括测试覆盖率、代码复杂度、缺陷率、交付周期等,可以帮助团队不断提高开发过程的效率和产品质量。


跨部门DevOps团队的协作
         

 

该制造商组建了跨部门的DevOps团队,成员包括开发人员、运维人员、测试人员等。这些团队成员共同负责软件的开发、测试、部署和监控等各个环节,实现了高度的协作与沟通。通过这种方式,各个职能部门打破了传统的壁垒,形成了一个紧密协作的工作环境,显著提高了工作效率和响应速度。
         

 

引入先进的DevOps工具和技术
         

 

制造商引入了多种先进的DevOps工具和技术,包括:
         

 

  • 持续集成/持续交付平台:自动化了软件构建、测试和发布流程,加快了软件交付速度。
         

 

  • 自动化测试工具:减少了手动测试的时间和人为错误,提高了测试覆盖率和准确性。
         

 

  • 容器化技术:通过容器化部署环境,确保了软件在不同环境中的一致性和稳定性。
         

 

         

 

这些工具和技术的引入对软件开发和运维流程进行了全面优化,减少了人工干预和错误,从而提升了软件交付的效率和质量。
         

 

   
强化安全与合规性管理
         

 

在DevOps实施过程中,该制造商特别注重安全性与合规性管理。具体措施包括:
         

 

  • 建立完善的安全与合规性管理体系:对软件开发和运维过程进行严格的监控和审计。
         

 

  • 实施安全措施:定期进行安全漏洞扫描和风险评估,确保软件系统的安全性。
         

 

  • 合规性检查:确保所有开发和运维活动符合相关法规和标准,避免合规性问题。
         

 

这些措施有效保障了软件的安全性和合规性,保护了企业的声誉,并降低了潜在的法律和安全风险。
         

 

通过组建跨部门DevOps团队、引入先进的工具和技术、以及强化安全与合规性管理,该制造商在DevOps实施过程中取得了显著成效。这些实践不仅提高了软件交付速度和质量,还确保了软件的安全性和合规性,为企业的数字化转型提供了有力支持。
         

 

DevOps实施成效与经验总结
           

 

经过一段时间的DevOps实施,该汽车制造商取得了显著的成效。以下是实施成效及经验总结:
           

 

实施成效:
           

 

1.交付速度提升:借助自动化工具和持续集成/持续交付(CI/CD)流程,软件交付速度显著提高。产品上市时间从数月缩短至数周甚至数天,增强了市场竞争力,并使公司能够更迅速地响应市场需求和变化。
           

 

2.质量改善:通过自动化测试和持续反馈机制,软件质量得到了有效保障。生产环境中的缺陷和故障减少,客户满意度显著提升。这种持续集成与反馈的模式确保了软件在每个开发阶段都经过严格的验证。
           

 

3.成本降低:优化了开发和运维流程,减少了手动操作和重复工作,从而降低了总体成本。资源利用效率得到提升,节省了人力资源和运营费用。
           

 

4.团队协作加强:DevOps的实施打破了开发与运维之间的传统壁垒,促进了跨职能团队的紧密协作与沟通。这种改进提高了工作效率,缩短了响应时间,并增强了团队的凝聚力和整体执行力。
           

 

   
           

 

该汽车制造商的DevOps实践证明了这一方法论在提高交付速度、改善质量、降低成本以及增强团队协作方面的显著效果。这些经验为其他企业在实施DevOps过程中提供了宝贵的参考和借鉴。
           

 

         

 


#05
结论与展望
      

 


5.1 研究结论与创新点
           

 

本文探讨了DevOps方法论在汽车行业中的应用,揭示了其实践价值和潜力。研究结论表明,DevOps方法论能够显著提升汽车行业的软件交付速度和质量,降低运维成本,从而增强企业的市场竞争力。这一结论为汽车行业的数字化转型提供了有力的理论支持和实践指导。
           

 

5.2 未来研究方向与挑战
           

 

尽管DevOps在汽车行业的应用已初见成效,但仍面临一系列挑战和研究方向:
           

 

1.融合工程流程与DevOps理念:如何在保持汽车行业严谨的工程流程和质量控制体系的同时,充分利用DevOps的灵活性和高效性,是未来的重要研究课题。
           

 

2.智能化水平提升:随着智能网联汽车的发展,软件定义汽车(SDV)的概念逐渐受到关注。未来需研究如何结合人工智能、大数据分析等技术,进一步提升DevOps在汽车行业中的智能化水平。
           

 

3.安全性和合规性:DevOps的快速开发和发布提升了效率,但也增加了安全风险。未来需关注如何在保障开发效率的同时,确保软件的安全性和合规性,这可能需要与信息安全和法律合规领域的专家进行跨学科合作。
           

 

   
4.跨国团队协作:汽车行业的全球化趋势带来了跨地域、跨文化的团队协作挑战。如何在DevOps框架下实现高效、顺畅的跨国团队协作,并克服时区、语言和文化差异,将是未来研究的重要方向。
           

 

5.新兴领域的应用:电动化、智能化、网联化等趋势正在重塑汽车行业。DevOps方法论的应用将逐步扩展到电池管理系统、自动驾驶算法、车联网服务等新兴领域。这些领域的特殊需求和挑战,为DevOps在汽车行业的应用研究提供了新的课题和方向。
           

 

未来在汽车行业深入研究和应用DevOps方法论,将面临多方面的挑战和机遇。通过不断探索和创新,DevOps有望成为推动汽车行业数字化转型和持续创新的重要力量。
           

 



参考:

         

 

  1. 对汽车软件开发下一阶段的畅想 (aptiv.com)
  2. 汽车DevOps高效研发案例,支撑百万级车辆的软件交付 - 嘉为 (canway.net)
  3. DevOps:定义汽车软件新开发模式 - zoeking2 - 博客园 (cnblogs.com)
  4. 洞见 | 2023,DevOps推动汽车行业创新飞速发展-汽车设计与制造资讯-造车网 (zaoche168.com)
  5. DevOps:引领汽车软件新开发模式-百度开发者中心 (baidu.com)
  6. IT行业有哪些软件开发技术及软件架构值得汽车行业借鉴 – PingCode
  7. 【DevOps文化与实践】DevOps的基本原则和实施策略-CSDN博客
  8. 奔驰在打造未来汽车时的DevOps实践_DevOps & 平台工程_付辉_InfoQ精选文章
  9. 汽车软件开发中应用敏捷框架的方法-百度开发者中心 (baidu.com)
  10. 【中国汽车论坛2024】吴正:软件工厂如何实施DevOps的最佳实践 (iautodaily.com)
  11. 中国信通院“汽车云专场沙龙暨汽车行业软件研发效能成熟度模型标准发布会”召开 (51fusa.com)
  12. 持续集成与持续部署(CI/CD)的深入探讨-CSDN博客
  13. 如何在DevOps中实现高效的安全性与合规性管理1.背景介绍 在当今的数字时代,数据和信息的安全性和合规性已经成为企业和 - 掘金 (juejin.cn)
  14. “云-网-边-端”融合,汽车新势力的DevOps建设-腾讯云开发者社区-腾讯云 (tencent.com)
  15. What is Terraform | Terraform | HashiCorp Developer
  16. 深入了解JUnit:自动化测试的强大工具-百度开发者中心 (baidu.com)
  17. INTEWORK—PET 汽车软件持续集成平台-CSDN博客
  18. 汽车行业DevOps解决方案 - 嘉为 (canway.net)
  19. 汽车质量管理体系 (QMS) - Visure Solutions
  20. Docker 很难么?带你从头到尾捋一遍,不信你学不会(文末送书)-腾讯云开发者社区-腾讯云 (tencent.com)
  21. 专栏 - tidb这种把数据库放入docker是否是个好主意。| TiDB 社区    



/ END /



汽车电子与软件
每天分享一篇技术文章!
 最新文章