汽车开发运维:未来道路的规则

改编自JFrog业务发展副总裁Kit Merker在swampUP 2019的主题演讲.
随着软件为我们日常生活中的所有设备提供动力,软件工程师现在是维持我们现代生活运行的机制。我们越来越信任他们用生命创造的软件。
JFrog正在努力实现它的愿景持续更新和流动软件我们对新兴的“物联网”,即工业或物联网(IoT)给予了很多关注。从制造业到智能家居,从无人机到石油钻井平台,从卫星到恒温器,这类互联的软件驱动设备种类繁多。所有这些行业的变化都是必然的,但没有一个行业的变化能像汽车行业的变化那样引起共鸣。
自动驾驶汽车就是代码
制造自动驾驶汽车的发展挑战艰巨、高风险,而且对人类安全至关重要。这就是为什么我们决定正面解决它。

汽车是非常强大的机器,我们每天都把生命托付给它。我们都知道开车很危险,但我们仍然在开车,注意交通规则,保持清醒,不发短信。为了使驾驶更安全,我们努力培养更好的司机。
越来越多地,这些强大机器的方向盘交给了软件。所以,我们需要做出更好、更安全的软件。这需要持续不断的改进更新。
软件力学规则
当我们JFrog的物联网团队开始我们的示范项目时,我们问自己:这些软件机制应该遵循哪些规则?我们决定:
规则0:不要杀人!
当然,这似乎是不言自明的。但我们非常清楚,自动驾驶汽车的目标是防止伤亡,任何故障的后果都可能是严重的。作为优先规则,这支配着我们所有的其他选择。
规则1:应及时更新。
当你打开汽车时,你不应该怀疑你的软件版本是否正确。在一个液态软件的世界里,更新不断地流向需要它们的地方,在最安全的时刻,所以汽车总是最新的。除了在最紧急的情况下,司机不需要计划他们的日程或访问服务中心来安装它。
今天,我们离那还有很长的路要走。虽然市场上的一些汽车支持无线(OTA)更新,但还没有一款汽车能够简化软件更新,让终端用户几乎看不到。
当中国的一名电动汽车司机在高峰时段意外启动交通更新时在美国,长达一小时的下载和安装让他们卡在了路上。相反,更新应该是快速且不可见的。
规则2:随着时间的推移,汽车会越来越好。
随着不断的更新,一辆车不必在离开停车场的那一刻就开始过时。软件缺陷也不应该像苹果那样引发召回捷豹最近的刹车问题.
自动驾驶汽车正变得越来越好,随着这些改进,它们的行驶里程也越来越长。通过持续交付的软件更新对于改进这些汽车至关重要。高兴的特斯拉司机经常在推特上发布新功能,让他们的体验更好,汽车更强大。通常你会认为汽车是一种贬值的资产,但我们都知道,软件只会随着反馈迭代、测试和客户使用而改进。
规则3:减少驱动程序和开发人员的焦虑。
乘客和行人可能会对自动驾驶汽车感到焦虑,但他们并不孤单。开发人员可能也会有这种紧张感——毕竟,没有人希望自己的代码签入导致代价高昂的召回事件成为头条新闻。
作为程序员和公司,我们需要能够相信我们正在推动的更新。自动化测试是必不可少的,同时还需要更好地跟踪构建元数据、虚拟驾驶环境和其他技术。但我们也需要确信我们的更新没有安全漏洞。
一个谨慎的更新创建和分发系统应该有助于在驱动程序和开发人员之间建立牢固的信任关系。
汽车液体软件
我们JFrog的物联网团队一直在使用2022世界杯32强赛程表时间 为了证明汽车用例swampUP 2019的与会者看到并探索了Liquid软件是如何真正工作的。
在旧金山,我们首次展示了使用RC车辆的现场演示。在这个小范围内,我们展示了如何使用Enterprise+在车辆行驶时更新软件。

在我们的系统中,我们使用了行业特定的技术,包括的必要为我们集成的嵌入式Linux构建系统柯南,我们的C/ c++包管理器.我们也在使用汽车级Linux,我们已经集成了物联网工具,如熔岩用于自动化设备管理和测试。

- 为了使汽车在钥匙转动时保持最新状态,我们依靠JFrog分布将发布包交付给Artifactory边缘将下载与安装分开的节点。我们使用修理者用于在设备上并行部署,允许在出现任何故障时快速回滚到最后一个安全版本。
- 随着时间的推移,为了使汽车变得更好,我们利用了用于CI/CD的JFrog管道从客户反馈中获取持续的软件更新和改进。
- 为了帮助减少司机和开发者之间的焦虑,Artifactory为工件的可跟踪记录提供可信的存储库,JFrog x射线捕捉和隔离任何安全漏洞通过针对基于风险的安全性的综合数据库扫描工件。
除了在我们的实验室中与我们的汽车一起进行演示之外,我们更兴奋的是与我们的客户在他们的车辆环境中合作,并帮助每个人遵守软件机制的规则!
