汽车业的软件开发方法正在不断演进,这已经不是什么秘密!当今消费者对“软件定义”汽车的期待越来越高,主要体现在高安全性、自动自主性和便利性这三个方面。OEM厂商如何在不妥协的情况下实现这三大方面,同时有效地管理好不断增长的软件复杂度?一个前景极好的解决方案就是容器化技术。根据云原生计算基金会公布的数据,目前有超过60%的后端开发人员正在使用容器技术来进行软件构建和部署。采用这种技术,OEM厂商可以显著加速其软件部署,提高可扩展性,并对复杂的汽车软件生命周期进行有效的管理。容器技术为软件开发提供了一种高效的模块化方法,既能保持汽车系统整体性和安全性,又能满足不断变化的消费者需求,同时拥有更大的灵活性和敏捷性。
什么是容器?
在深入探讨容器为OEM带来的好处之前,首先要了解它究竟是什么。从本质上讲,容器是一个轻量级的独立可执行软件包,其中包含了运行应用软件所需的一切,包括代码、运行时、系统工具、库和设置。这就类似于使用zip文件,以可移植且有效的方式打包和分发文件。容器可以将应用软件封装成一个单独的包,从而使软件从一个计算环境迁移到另一个计算环境之后仍然能够可靠地运行。容器是管理汽车软件部署的好方法,因为它们具有可移植性、可扩展性、高效性和安全性。汽车平台需要以下三个主要元素来有效地实现容器化:
- 容器编排系统。例如Kubernetes,它可以自动部署、扩展和管理这些应用软件,允许开发人员专注于软件的构建和部署,而不必操心底层基础设施的细节。
- 空中下载互联(OTA)网络,用于以安全可靠的动态方式与云端进行容器交换。Wind River Studio Over-The-Air Updates为已经交付用户使用的汽车提供多层次的OTA部署管理与更新功能。
- 支持容器的运行时环境,例如风河的VxWorks,这是第一个也是目前唯一一个支持使用兼容OCI标准的容器的RTOS。
附带说明一下,OCI(Open Container Initiative,开放容器倡议)是一个开放的治理架构,旨在面向容器技术建立行业标准,以便确保容器能够可靠、一致且安全地部署在各类系统上。
解决OEM面临的挑战
软件开发过程中面临着许多紧迫挑战,而容器技术为OEM提供了一个极具吸引力的解决方案。以下是容器解决方案能够解决的5个关键挑战:
- 可移植性和一致性。OEM通常都必须面对开发、测试和生产等不同的工作阶段。容器化在上述几个阶段之间提供了具备一致性的环境,确保无论底层基础设施如何改变,其软件都能以相同的方式运行。
- 可扩展性。容器技术允许跨多个节点进行应用软件的复制和分发,从而实现了横向扩展。这对支持OEM处理可变工作负载或突发负载高峰的情况尤其有用。
- 隔离性和安全性。容器在应用软件之间提供了一定程度的隔离性,减少了漏洞或入侵的影响,因而增强了安全性。每个容器都是独立运行的,从而最大限度地减少了交叉污染,并能确保代码变更不会对车内相邻的混合关键性软件产生不利影响。
- 微服务架构。许多OEM都在向微服务架构过渡,以提高可伸缩性、可维护性和灵活性。容器技术非常适合部署微服务,因为每个服务都可以在自己的容器中独立打包和部署。
- 遗留应用软件的现代化。容器技术允许OEM厂商将遗留应用软件封装在容器中来实现现代化,使它们更容易迁移到云环境或更新后的平台上,而且无需进行重大的代码更改。
容器和虚拟机的取舍
由于容器和虚拟机(VM)都支持在共享计算平台上并发运行各种工作负载,因此会让人忍不住想要在这两种技术之间进行比较,但是两者各自都有一些显著的独特之处。与虚拟机不同的是,容器是在操作系统层级之上进行虚拟化,实现了轻量级部署、减少系统资源消耗,并具备更快的启动速度。此外,容器提供的是应用软件的相同包装,由此确保了跨越开发环境的一致性,并且可以轻松地扩展或收缩,以便快速部署在不同的系统上。这在汽车环境中特别有益,因为这里的软件需要以最小的调整来部署在不同的模型或系统上。
需要注意的是,容器和虚拟机的应用并不是相互排斥的。事实上,它们通常可以在更广泛的软件体系架构中相互补充,这就需要提醒企业团队注意,应该尽量投资于这两种技术都兼容的软件解决方案。
结论
随着汽车业持续进行的数字化转型,容器技术已经成为降低软件复杂度并满足消费者需求的变革性技术。通过采用容器技术,OEM可以充满信心地驾驭复杂的汽车软件未来,提供重新定义驾驶体验的创新解决方案。
作者简介
Saleh Bhatti是风河公司的产品营销实习生。Saleh正在滑铁卢大学攻读管理工程学士学位。他致力于将科技与商业相结合,为人们的生活带来真正的价值。
0 comments:
New comments are not allowed.