汽车视角下看DevOps的内核和适用性

原创 水轻言 2023-09-27 09:33

如果要问,这几年的汽车行业里,什么增长最快?有一个答案是,“概念”。


概念实在是满天飞,似乎是没有几个新概念加持,大家讲话时,都不由得会羞红双脸。


DevOps是从IT飞过来的热点概念之一。同很多其他概念一样,我们耳熟能详,但似乎又很难准确描述出它是什么。


本文就致力于拆解这个DevOps,抽取其精华,并破除概念的遮蔽。此外,也初步寻找它在汽车行业里的位置。

1

DevOps的历史渊源


我们从两个维度来讲DevOps的渊源:


  • 与汽车的渊源:从1950年开始发展的丰田精益的衍生。

  • 与敏捷的渊源:从2001年开始发展的敏捷实践的延续


DevOps这个名字则源自Patrick Debois于2009年在比利时发起的第一次DevOpsDays活动。


总体来说,在软件领域,DevOps与敏捷有着密不可分的关系和非常相近的原则


当然,DevOps也有自己特定的增量或说强调的重点,继续往下看。


2

汽车与IT中的概念的差异


DevOps是由Development和Operation这两个词组成的,而它们也存在于汽车行业,但含义不同。


  • Development

在汽车行业,用Engineering会更贴切些,因为Development的内涵稍窄,主要侧重于描述预研类项目或者局部设计开发类领域,并不足以涵盖大多数工程活动。


IT的Development的范畴则会更大。我们可以从Engineering和Development这两个词的差异,体会到那一点行业差异的微妙。


  • Operation

汽车行业的Operation主要是用来描述工厂运营的,也就是SOP后的大批量生产及相关职能的总称,而当软件真正上车再到客户手里又是下一个阶段了。


DevOps中的Operaton更多是IT系统或产品部署到客户生产环境后运维的概念,此时,也已经正式给客户提供服务了,并不存在汽车出厂运输这种环节。


可见,这里的差异会更突出,二者完全不是一个维度的概念,汽车软件的运维意味并不明确,当前形势下也不够现实,所以,这里的差异几乎会一票否决在汽车行业里去实现DevOps最初的愿望


当然,如果往长远预想,OTA足够成熟自由后,开发阶段的变更就能够及时持续体现在消费者车上,那样,才更接近IT DevOps的场景。


关于汽车与IT的差异,我在早期的一篇文章“软件和机械到底有何异同?”中的“软件工厂”部分有过简单的介绍,可以参考。


不过,两个行业在Operation阶段都追求稳定性倒是一致的。另外,我们也可以放大汽车行业Operation的范围,比如,将验收部门理解为Operation,而后去尝试适配DevOps的理念或实践。


概念梳理完毕后,我们就可以抛开偏见和盲从来看待DevOps。


3

DevOps的基本原则:三步工作法


这部分内容将构成DevOps的基本框架。


所谓三步工作法,既是有一定内在逻辑次序的工作步骤,也对应着三个工作原则,即流动原则、反馈原则和持续改进原则。


  • 流动原则:从左到右,让工作从开发到运维快速地流动,强调快速向客户交付价值。

  • 反馈原则:从右到左,让工作的表现快速反馈,强调快速获得客户对价值的反馈。

  • 持续改进原则:从全局进行持续改进,强调系统性的优化。

下面我们会依次展开3个原则的一些具体内容。


4

第一步:流动原则


流动,像水一样流动。先抛开实际场景,我们尝试从这种意象感中寻找让工作流动的方法。


4.1 工作放到桌面上


为了能够知道工作堵塞在什么地方,就需要把工作从桌子底下拿上来,精心撰写的ppt是不可能反映真实现场的,比如,看板、共享数据存储区、质量评审等。

4.2 让员工安心工作


为了让工作效率持续,要保证价值增值人员(比如,开发)不受干扰地完成工作,避免多任务切换,避免某些领导或职能为了刷存在感或自我成长而让员工频繁汇报。


4.3 有成果就赶紧交付


对于软件开发,最典型的就是代码,及时提交,daily构建。

4.4 减少沟通接口


组织庞大后,为了分工精细和流程标准化,难以避免地会增加更多的接口,多手信息会不断传递。


最好是用自动化的手段去覆盖人工接口,这样还可以保留分工的收益。


4.5 消除浪费


这个概念在精益里提得非常多。比较典型的有手工操作、数据传输延迟、资源不足导致的等待以及几乎不会有第二个人看的文档等。


4.4 自由搭建环境


对于IT而言,这里会有开发环境、测试环境与(类)生产环境,如果环境能够快速搭建且数量充裕,开发、测试、运维自然是更快速通畅。


对于汽车行业来说,生产环境的障碍主要集中在周边件成熟的实车,由于实车成本高昂以及多模块协同困难,环境的获取是个巨大瓶颈。


短期内,可以尝试的是提升台架的真实性;长期看,或可建立云端环境,这样就能够快速获取并更新交互模块的最新软件。


总之,整车环境的快速搭建应作为车厂的核心优化点

此外,汽车软件环境还包含另外一环,就是终端客户对软件的评价,也就是从终端客户视角的实际用车环境里评价软件。


我们可能没有办法把真正买车的客户引进来,但可以提前把开发版本发布给内部类似职能团队,比如,后道的质量或体验团队。从这里我们也可以引出另外一个车厂关键优化点,整合验收资源


4.5 统一代码仓库


为了最大程度降低生产环境出问题的风险,可以应用统一的代码仓库,将所有代码、库、脚本、配置文件等都纳入软件版本管理系统,以便能够快速准确地恢复生产环境。此外,通常对于生产环境的任何变更,都要通过软件版本管理系统处理,而非手动。


实际上,这一部分理念不太适用于汽车软件,但给我们的启发是,OTA失败后,如何快速恢复


4.6 持续构建集成和自动化测试


CICD已经比较广泛地应用在了汽车软件行业,比如,常用的Jenkins、GitLab CI等。以及,自动化测试工具自动化地完成静态扫描、单元测试、集成测试等。


这里,很关键的一点是,基于乃至后续验收测试的问题,去不断完善早期自动化测试的用例和脚本,以让其尽可能提前识别问题


不过,汽车软件的多层次、多职能测试是一个障碍,目前还局限在模块级的早期开发阶段。


5

第二步:反馈原则


除了下游的反馈,这里也关注终端客户的反馈,也就是所谓的生产环境的运维环节。


对应地,可以总结为两个要素:


  • 快速、频繁地获取下游客户的工作反馈,以保证开发及时调整。

  • 快速、频繁地获取生产环境表现,以保证系统安全可靠


据此,我们来总结相关的方法与实践。


5.1 建立监控机制


通常,我们要建立全面的监控系统,监控各个环节的数据表现与日志记录等,一旦生产环境发生意外,能够第一时间识别。


对于这一点,汽车行业也不太明显,产品本身功能安全设计中的嵌套诊断监控倒是有类似的意味,但它暂时无法反馈到企业的运维部门


现在,我们期望通过层层审批来获取反馈,通过各种KPI来监控表现,但仍然流于形式和漫长等待的居多。


我们需要思考,如何搭建反映真实开发现场的指标体系?如何建立反映终端客户状态的数据埋点机制?


5.2 应用A/B测试


这种思路更多适用于用户体验的开发中,比如,在网站或app开发中,将控制组A和实验组B两个版本推送给不同的用户群,然后基于不同用户的反馈,来判断两个版本的优劣。


类似地,这在汽车行业也暂时没看到实现路径,大规模用户的互联网环境和一人一车的用车环境不能类比


5.3 代码评审


各类领导评审已经不鲜见了,而其带来的弊端,正是我们要解决的,暂且不论。


在各种评审中,代码评审是个平民化的、非官僚的,但又颇为奏效的手段。常见的实践有,结对编程、代码工具门禁、会议评审或邮件评审等。


6

第三步:持续改进原则


在前两步的交付与反馈中,我们得到了产品,完成了业务。


这一步更多集中在最容易被人忽视的地带——改进上。


改进也包含两个层面:人与产品。前者侧重于人的能力和责任意识的提升,后者侧重于组织、流程、基础设施及产品的架构优


这里必然要以务虚的文化作为起步,但我们又不想谈文化,因为文化是所有人都知道且认同,但又不知所云或不以为然的东西。文字解决不了这种问题。


简单提两点实践。


6.1 使用全员共享的数据库(含代码库)


改进的前提是让人知道,不知道的话,既无动力,又无能力。这和前面所讲的“工作放在桌面上”殊途同归,既然文化宣贯没用,不如从技术手段限制私藏私控数据与信息的行径。


6.2 清理技术债务


不完备的文档、复杂的系统架构、诡异的产品逻辑、屎山代码,这都是技术债务,要及时清理。


这个道理人人都懂,这也是是所谓的重要但不紧急的事。


手段上,可以设定强制的清理技术债务时间段,这个时间段不允许进行功能开发。这种方式在我以前经历的一家精益工厂见到过类似场景,生产线是不允许班组长干活超过工作时长的30%的,他们要致力于班组与产线这个系统的管理和优化。


7

写在最后


大体上,汽车行业可以这么看待DevOps。


  • DevOps致力于融合开发和运维来持续向终端客户交付价值。

  • 车载软件没有DevOps里的Ops,没有运维。

  • DevOps比较适合汽车软件工具链的开发。

  • DevOps是另外一个更大的概念——敏捷的一部分。

  • 敏捷来源于精益,那些满是油污的汽车工厂可能并不代表落后。

  • 精益也是一个包罗万象的概念集合。

  • 历史的方法解决不了未来的问题,跨行的方法也解决不了本行的问题。

  • 太阳底下没有新鲜事,所有这些概念都在重复讲类似的事情。

  • 重点学习概念背后的基础原则、基本方法、单体工具与良好实践。

  • 所以,不要纠结了各种概念本身,不必强调我们在走什么体系框架。

  • 跨越式解决问题的核心仍然是技术,比如,工具链和自动化测试。

  • 空杯、往外看,并聚焦于自己的业务。




水轻言 致力于汽车软件研发管理。
评论
  • 2024年之前国际国内大品牌芯片,是电子产品生产主流供应产品,国际和国内大品牌电子芯片,产品质量有保证,质量过硬,芯片各项参数满足电子产品需求,但价格高,交货慢,工厂接了急单,国内外大品牌产品短期内交不出来,交出芯片,价格太高。目前来看,以美国为首国外势力,对我们国家一些高端芯片,不出货,不卖给我们,我们要生产电器产品,一定要自己研发芯片,替代进口芯片,低价格芯片替代高价格芯片。国外买家对电子产品,价格压的太低,用国内外知名品牌电子芯片,那电子产品成本高过了卖价,工厂没有利润,工厂无法生存,芯片
    开发工匠 2025-01-01 11:49 91浏览
  • 在科技飞速发展的今天,5G 通信技术无疑是最耀眼的明星之一。它如同一场数字革命的风暴,以其前所未有的速度、极低的延迟和强大的连接能力,为我们的生活、经济和社会带来了翻天覆地的变化,开启了一个万物互联的崭新时代。5G 技术的卓越特性5G,即第五代移动通信技术,相比其前辈们,有着诸多令人瞩目的特性。首先是超高速率。5G 网络的理论峰值下载速度可达 10Gbps,这意味着下载一部高清电影只需短短几秒钟,而 4G 网络可能需要几分钟甚至更长时间。这种高速率让高清视频流、云游戏等对带宽要求极高的应用变得流
    Jeffreyzhang123 2025-01-02 14:18 56浏览
  • 常见通信标准无线通信标准蜂窝移动通信标准:如 2G(GSM)、3G(WCDMA、CDMA2000、TD - SCDMA)、4G(LTE)以及 5G 等。以 5G 为例,其具有高速率、低时延、大容量等特点,为智能交通、工业互联网和物联网等领域提供支持。无线局域网标准:主要是 IEEE802.11 标准,也就是我们常说的 Wi - Fi。例如 IEEE802.11ac 和 IEEE802.11ax(Wi-Fi 6)等标准,不断提升无线局域网的传输速度和稳定性。短距离无线通信标准:包括蓝牙(Bluet
    Jeffreyzhang123 2025-01-02 14:33 39浏览
  • 前言近年来,随着汽车工业的快速发展,尤其是新能源汽车与智能汽车领域的崛起,汽车安全标准和认证要求日益严格,应用范围愈加广泛。ISO 26262和ISO 21448作为两个重要的汽车安全标准,它们在“系统安全”中扮演的角色各自不同,但又有一定交集。在智能网联汽车的高级辅助驾驶系统(ADAS)应用中,理解这两个标准的区别及其相互关系,对于保障车辆的安全性至关重要。ISO 26262:汽车功能安全的基石如图2.1所示,ISO 26262对“功能安全”的定义解释为:不存在由于电子/电气系统失效引起的危害
    广电计量 2025-01-02 17:18 72浏览
  • 【工程师故事】+半年的经历依然忧伤,带着焦虑和绝望  对于一个企业来说,赚钱才是第一位的,对于一个人来说,赚钱也是第一位的。因为企业要活下去,因为个人也要活下去。企业打不了倒闭。个人还是要吃饭的。企业倒闭了,打不了从头再来。个人失业了,面对的不仅是房贷车贷和教育,还有找工作的焦虑。企业说,一个公司倒闭了,说明不了什么,这是正常的一个现象。个人说,一个中年男人失业了,面对的压力太大了,焦虑会摧毁你的一切。企业说,是个公司倒闭了,也不是什么大的问题,只不过是这些公司经营有问题吧。
    curton 2025-01-02 23:08 26浏览
  • 随着全球汽车行业向更加清洁、可持续的能源转型,燃料电池汽车(FCV)作为一种具有广阔前景的技术,正逐渐受到业界的广泛关注。这类氢能源车辆通过燃料电池中的电化学反应,将氢气转化为电能,并仅产生水作为副产品,展现出显著的环境效益。然而,氢气的易燃性也为燃料电池汽车的安全带来了挑战,因此,高效的氢气泄漏检测系统和残氢排放监控技术对于确保车辆的安全性和可靠性至关重要。 ‌一、氢能源车氢气泄漏检测技术‌为了确保燃料电池汽车的安全性,氢气传感器被广泛应用于氢气泄漏检测中。这些传感器能够集成到车辆的
    锂电小助手 2025-01-02 10:05 45浏览
  • 国际标准IPC 标准:IPC-A-600:规定了印刷电路板制造过程中的质量要求和验收标准,涵盖材料、外观、尺寸、焊接、表面处理等方面。IPC-2221/2222:IPC-2221 提供了用于设计印刷电路板的一般原则和要求,IPC-2222 则针对高可靠性电子产品的设计提供了进一步的指导。IPC-6012:详细定义了刚性基板和柔性基板的要求,包括材料、工艺、尺寸、层次结构、特征等。IPC-4101:定义了印刷电路板的基板材料的物理和电气特性。IPC-7351:提供了元件封装的设计规范,包括封装尺寸
    Jeffreyzhang123 2025-01-02 16:50 82浏览
  • 早期概念与探索阶段(19 世纪以前):在古代,人类就对自动机械充满了想象,如古希腊时期的希罗发明的自动门、水钟等自动装置,中国古代的指南车、木牛流马等,虽然这些装置不能称之为真正的机器人,但为后来机器人的发展奠定了思想基础。从概念走向实践阶段(19 世纪~20 世纪初):随着工业革命的到来,自动机概念开始与实际机械设计结合,出现了具有实际功能的自动机械,例如雅卡尔提花机等,可通过穿孔卡片控制编织图案,为后续可编程控制的机器人发展提供了灵感。现代机器人产业萌芽期(1920 年代~1950 年代):
    Jeffreyzhang123 2025-01-02 14:53 75浏览
  • 2层PCB设计时候回路的寄生电感计算方式。由两个平面构成电流路径的回路电感,取决于每个平面路径的局部自感和它们之间的局部互感。平面越宽,电流分布就越扩散开,平面的局部自感就越小,从而回路电感也就越小。平面越长,局部自感就越大,从而回路电感也就越大。平面间距越小,平面之间的互感就越大,从而回路电感也就越小。当该区域为正方形,即长度等于宽度时,无论边长是多少,长和宽之比始终等于1。令人惊奇的是,一对平面上的边长为100mil的正方形区域和边长为1in的正方形区域的回路电感相同。平面对上的任一正方形区
    tao180539_524066311 2025-01-02 13:51 35浏览
  • 在科技飞速发展的今天,机器人已经逐渐深入到我们生活和工作的各个领域。从工业生产线上不知疲倦的机械臂,到探索未知环境的智能探测机器人,再到贴心陪伴的家用服务机器人,它们的身影无处不在。而在这些机器人的背后,C 语言作为一种强大且高效的编程语言,发挥着至关重要的作用。C 语言为何适合机器人编程C 语言诞生于 20 世纪 70 年代,凭借其简洁高效、可移植性强以及对硬件的直接操控能力,成为机器人编程领域的宠儿。机器人的运行环境往往对资源有着严格的限制,需要程序占用较少的内存和运行空间。C 语言具有出色
    Jeffreyzhang123 2025-01-02 16:26 75浏览
  •  在这个日新月异的科技时代,智能家居正以前所未有的速度融入我们的日常生活,从智能灯光到温控系统,从安防监控到语音助手,每一处细节都透露着科技的温度与智慧。而在这场智能化浪潮中,一个看似不起眼却至关重要的组件——晶体管光耦,正扮演着连接物理世界与数字世界的隐形桥梁角色,默默推动着智能家居行业的发展与革新。 晶体管光耦——智能家居的“神经递质”晶体管光耦,作为一种能够将电信号转换为光信号,再通过光信号控制另一侧电路开关的电子元器件,其独特的工作原理使得它在隔离传输、抗干扰及保护电
    晶台光耦 2025-01-02 16:19 52浏览
  • 很荣幸收到富芮坤 FR3068x-C低功耗开发板,参加测评。断断续续看了一些资料,今天有时间把开发环境初步搭建好了,能下载程序了。记录一下,给大家分享一下。1、找不到ARMCM33_DSP_FP。安装Keil。我之前安装的Keil版本低,下载了重新安装了5.41,安装完成后,在工程配置页面的Device页面没有找到官方说的ARMCM33_DSP_FP,下图为官方文档内的截图,没有关系,注意右边涂黄色部分,Pack 的信息。打开keil的Pack Installer,找到ARM::CMSIS,找到
    王晓明 2025-01-01 15:38 85浏览
  • 起源与诞生:AI 技术的起源可以追溯到 20 世纪 40 年代,随着计算机技术的兴起,科学家们开始思考如何让机器具备类似人类的智能。1950 年,英国数学家艾伦・图灵提出了著名的 “图灵测试”,为 AI 技术的发展奠定了理论基础。1956 年,美国达特茅斯学院举行了一次人工智能研讨会,标志着 AI 作为一门独立学科的诞生。符号主义阶段(20 世纪 50 年代 - 70 年代):研究人员主要关注如何使用符号逻辑和推理规则来模拟人类思维,试图通过构建复杂的逻辑系统来解决各种问题。然而,由于这种方法的
    Jeffreyzhang123 2025-01-02 15:15 72浏览
  • 从无到有:智能手机的早期探索无线电话装置的诞生:1902 年,美国人内森・斯塔布菲尔德在肯塔基州制成了第一个无线电话装置,这是人类对 “手机” 技术最早的探索。第一部移动手机问世:1938 年,美国贝尔实验室为美国军方制成了世界上第一部 “移动” 手机。民用手机的出现:1973 年 4 月 3 日,摩托罗拉工程师马丁・库珀在纽约曼哈顿街头手持世界上第一台民用手机摩托罗拉 DynaTAC 8000X 的原型机,给竞争对手 AT&T 公司的朋友打了一个电话。这款手机重 2 磅,通话时间仅能支持半小时
    Jeffreyzhang123 2025-01-02 16:41 75浏览
  •  近年来,消费电子行业难言景气,长期处于萎靡不振的状态。其中,作为明星品类的智能手机同样被寒意所笼罩,出货量持续下跌。据IDC发布的报告显示,2023年全年,中国智能手机市场出货量约2.71亿台,同比下降5.0%,创近10年以来最低出货量。不过,在智能手机行业整体低迷之际,折叠屏手机却表现亮眼,成为智能手机市场唯一实现增长的品类。据IDC发布的跟踪报告显示,2023年,中国折叠屏手机市场出货量约700.7万台,同比增长114.5%。而这也是自2019年首款产品上市以来,出货量连续4年同
    刘旷 2025-01-02 11:27 36浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦