利用基于Ubuntu的EB corbos Linux构筑隐形容器壁垒

描述

 

1.摘要

 

汽车高性能计算(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-pilotOCI工具项目提供了启动应用程序和封装软件组件所需的工具。要管理目标系统上的容器,需要使用本地podman注册表。oci-pilot项目所提供的工具包括一个可以将符合OCI标准的容器导入到本地镜像库的注册工具,以及一个可以使容器化应用程序如同本地应用程序一样运行的启动器。

注释

在使用OBS的容器构建支持时,这些注册和启动工具会自动集成到容器封装过程。也就是说,由Elektrobit创建的容器包会在安装过程中执行所有容器化应用程序注册步骤。而选择不创建容器包的客户可以通过oci-pilot项目提供的工具包来获得支持。

符合OCI标准的容器主机提供了基于podman的强大容器镜像库布局,它与Docker的组合是最广泛使用的容器主机工具。Docker需要有一个后台守护程序,而podman则作为一个独立的应用程序运行。因此,podman通常比Docker更受青睐,在嵌入式用例中更是如此。

基于Ubuntu的EB corbos Linux旨在提供一个分离容器镜像库。注册的容器镜像被存储在一个额外的可选加密的只读分区中,该分区通过基于A/B分区的更新概念支持OTA更新。创建的容器实例在运行时支持基于overlayfs的写时复制。所有写入操作都集中在额外分区。如果数据损坏,写入分区会自动重置。由于采用分离镜像库,容器镜像及其实例之间存在基于分区的解耦,这使得容器引擎可以在任何时间进行稳健的重置。

容器

图1:镜像库布局

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的许多其他产品一样,一直在持续增强和更新。

作者

 

Marcus Schäfer

Elektrobit汽车操作系统软件工程师

Marcus Schäfer对开源软件充满热忱,因为他坚信每个人都有机会学习自由和开源软件模型,并运用自己的经验和知识进行创新。他在软件开发中重点关注服务器、云和虚拟化这三个层面。

实现针对汽车设备的嵌入式Linux系统发行版是他当前参与的项目之一。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分