[技术文章] 利用基于 Ubuntu 的 EB corbos Linux 构筑隐形容器壁垒


白内容摘要
1. 摘要.. 3
2. 引言.. 3
3. 问题描述.. 3
4. 高级别解决方案.. 4
5. 解决方案细节.. 5
6. 客户价值.. 6
7. 概要.. 6
8. 参考文献.. 6
1. 摘要
我们希望当驾驶员进入车辆并转动钥匙时,会有多种应用程序启动来为他们提供支持。操作系统层对车辆服务的功能来说应当无关紧要。所有这些功能都需要能够可靠、可重复运行,并且独立于彼此。过去,各项功能被隔离在不同(简单的)电子控制单元(ECU)上,以确保彼此之间互不干扰。汽车高性能计算(HPC)的一大优势是能够将各种功能整合到单个 ECU 上,并利用其产生的协同效应,同时仍能保证各功能的独立性。一种显而易见的解决方案是利用企业和云计算中已成熟的一组特性,即所称的“容器”。为实现最大回报,最重要的是遵守在所有重大实现项目中广泛落实的开放容器计划(OCI)行业标准。对许多应用程序而言,最常用的实现方案之一是以 Linux 为基础的。
2. 引言
基于 Linux 的容器是一种概念,软件集成商利用这种容器将运行时环境与主机操作系统隔离。它经常被用于在封闭环境内运行软件。在汽车行业中,由不同公司提供最终产品的某一组成部分,这种概念有助于集成第三方软件,而不会对系统中的其他组件造成冲击或者负面影响。软件制造商在各自的独立开发环境中实现并测试应用程序,把其当作一个容器来对待,并且在将这一容器移交给系统集成商时,不必担心存在不一致的问题或不必要的副作用。能够大规模采用这一做法的基础是,存在一套由开放容器计划(OCI)所定义的行业标准,具体参见https://opencontainers.org。
3. 问题描述
在汽车行业中,操作系统的卖点通常与“如何直接、低成本地集成第三方应用程序”这一问题的答案紧密相关。如前所述,容器是一种解决方案,但随之而来的问题是如何让第三方供应商接受这一概念。除了技术解决方案,还有一个重点在于工具和/或咨询服务,要设法取信于那些打算使用基于 Ubuntu 的 EB corbos Linux 操作系统的客户或合作伙伴。
4. 高级别解决方案
Elektrobit 提供的容器系统由以下组件和服务组成:
OCI 容器构建系统是开放构建服务和 KIWI 工具的组成部分。Elektrobit 致力于构建并维护 OCI 容器,将其作为内部开放构建服务实例(OBS)的一部分。该服务包括根据人类可读的基于 KIWI 的容器镜像描述创建符合 OCI 标准的容器,以及自动进行容器封装。自行使用 OBS 的客户可通过此解决方案获得支持。使用不同工具创建容器的客户可以保留自已原有的流程,只要保证生成的容器符合 OCI 标准即可。
名为 oci-pilot 的 OCI 工具项目提供了启动应用程序和封装软件组件所需的工具。要管理目标系统上的容器,需要使用本地 podman 注册表。oci-pilot 项目所提供的工具包括一个可以将符合 OCI 标准的容器导入到本地镜像库的注册工具,以及一个可以使容器化应用程序如同本地应用程序一样运行的启动器。
注释
在使用 OBS 的容器构建支持时,这些注册和启动工具会自动集成到容器封装过程。也就是说,由
Elektrobit 创建的容器包会在安装过程中执行所有容器化应用程序注册步骤。而选择不创建容器包的客户可以通过 oci-pilot 项目提供的工具包来获得支持。
符合
OCI 标准的容器主机提供了基于 podman 的强大容器镜像库布局,它与 Docker 的组合是最广泛使用的容器主机工具。Docker 需要有一个后台守护程序,而
podman 则作为一个独立的应用程序运行。因此,podman 通常比 Docker 更受青睐,在嵌入式用例中更是如此。
基于 Ubuntu 的 EB Corbos Linux 旨在提供一个分离容器镜像库。注册的容器镜像被存储在一个额外的可选加密的只读分区中,该分区通过基于 A/B 分区的更新概念支持 OTA 更新。创建的容器实例在运行时支持基于 overlayfs 的写时复制。所有写入操作都集中在额外分区。如果数据损坏,写入分区会自动重置。由于采用分离镜像库,容器镜像及其实例之间存在基于分区的解耦,这使得容器引擎可以在任何时间进行稳健的重置。

5. 解决方案细节
对于上述解决方案,有不同成熟度的实现方案可供选用:
采用基于 Ubuntu 的 EB corbos Linux 发行版提供的容器库,里面包含了用于 Elektrobit 的工具和服务的 OCI 容器。
采用托管在 GitHub 平台(https://github.com/Elektrobit/oci-pilot)上的 oci-pilot 开源项目。工具包可以作为基于 Ubuntu 的 EB corbos Linux 发行版的一部分,在 Artifactory 上加以使用。
采用当前设计的容器主机操作系统镜像实现方案,其中包括容器镜像库和运行时系统。x86 镜像适合在 QEMU 中运行。AArch64 镜像针对的是 NXP 和 Raspberry Pi4 板卡产品。
6. 客户价值
面向未来的 OCI 标准是被所有一级云服务供应商(如亚马逊网络服务、谷歌计算引擎或 Microsoft Azure)所采用的行业标准。从开发到测试的所有工作流程都依赖于标准的通用工具和技术。基于 Ubuntu 的 EB corbos Linux 完全兼容这一成熟的技术。该技术的应用范围得以高度扩展,因为客户可以直接使用容器,而无需作任何调整。所提出的容器封装概念还提供了一个可能会令客户感兴趣的解决方案,以帮助他们干净地构建和维护容器。
7. 概要
使用现有的标准开源工具(podman、KIWI、OBS),提供一个符合 OCI 标准的容器引擎概念,以此作为基于 Ubuntu 的 EB corbos Linux 发行版的一部分,通过社区维护,会降低发生技术不符合行业标准的风险。该实现方案属于基于 Ubuntu 的 EB corbos Linux 的一个附加解决方案,并不是实现操作系统的先决条件。
该解决方案和 Elektrobit 的许多其他产品一样,一直在持续增强和更新。
欲了解更多信息,请联系 Elektrobit 销售:saleschina@elektrobit.com
8. 参考文献
[1] https://opencontainers.org
[2] https://github.com/Elektrobit/oci-pilot
[3] https://github.com/Elektrobit/nautilos-images
关于作者
Marcus Schäfer
Elektrobit 汽车操作系统软件工程师
Marcus Schäfer 对开源软件充满热忱,因为他坚信每个人都有机会学习自由和开源软件模型,并运用自己的经验和知识进行创新。他在软件开发中重点关注服务器、云和虚拟化这三个层面。
实现针对汽车设备的嵌入式 Linux 系统发行版是他当前参与的项目之一。
关于 Elektrobit
Elektrobit 是一家屡获殊荣、富有远见的全球性供应商,致力于为汽车行业提供嵌入式互联软件产品和服务。作为汽车软件行业的佼佼者,凭借 35 年为本行业服务的经验,Elektrobit 为超过 6 亿辆汽车的逾 50 亿台设备提供支持,并针对汽车基础软件、互联和安全、自动驾驶和相关工具,以及用户体验提供灵活、创新的解决方案。Elektrobit 是大陆集团的全资独立子公司。
有关更多信息,请访问: http://elektrobit.cn
获取该技术文章完整PDF,请访问官网提交表单进行下载:https://www.elektrobit.cn/tech-corner/invisible-container-fortress-with-eb-corbos-linux/