作者:Ivan Yang
Cloud Native at the Edge: SoftwareDefined Operation for the Embedded Edge
A Project CassiniReference Implementation
概要
在开发用于汽车,工业,自动驾驶和对安全关键应用程序的嵌入式边缘系统时,当前的工作方式(使开发人员直接处理许多底层硬件和软件组件)降低了生产率,并使人们的注意力从创新和差异化中转移了出来。为了帮助开发人员更好地构建边缘,Arm建立了Cassini方案,并利用其下的方案开发了云原生软件体系结构,该体系结构支持边缘的软件定义操作。
软件越来越重要
如今,越来越多的最先进的嵌入式边缘系统依靠数百万行代码来运行。这些先进的边缘系统涵盖了汽车,工业,自动化和对安全关键应用中的各种用例,涉及到各种频繁变化的元件,多样的硬件设备,并依赖于日益复杂且维护成本高昂的软件。这种高度的复杂性使开发变得更加困难和昂贵。当涉及混合关键性工作负载时,这种情况变得更加复杂,其中需要与传统工作负载一起处理功能安全要求,而当前的软件基础结构和模型不支持工作负载的可移植性。
交付新产品可能成为集成而不是创新的问题,因为开发人员没有专注于新的差异化功能,而是被迫花时间处理底层组件的变化,更改和更新。
由于硬件体系结构,底层固件和启动顺序的差异而产生的不兼容性会导致开发复杂化,从而使验证系统的各个部分协同工作并满足安全要求变得更加困难。这些不兼容性也会使商业软件供应商的工作复杂化,因为高级功能和工作负载无法轻松移植到不同的操作系统。因此,开发人员发现自己会花时间在第三方解决方案在其目标系统上顺利运行之前就要对其进行更改。
缺乏标准化还会在尝试在新系统中重用软件时产生问题。升级到最新版本的芯片或添加新的芯片组可能涉及许多软件更改,(这往往导致)简单的放弃原有的并重新开始会更容易些,即使创建原始代码付出了很多努力。
这些问题暴露了传统工作方式的局限性,而传统工作方式是在软件变得如此占主导地位之前建立的。该过程必须发展并采用更现代的软件驱动方法。复杂嵌入式系统的开发人员需要一种新的方式来做事,因此他们可以重用更多的代码并简化开发,测试和部署应用程序软件的过程。
软件重用可降低总拥有成本,并使开发人员更有效。
幸运的是,有一个现成的模型可供嵌入式系统用作指导。与云本机开发实践紧密相关的DevOps方法已被证明可以加快高质量软件的交付速度。现在是时候开始在嵌入式边缘域中使用DevOps了。
在Arm,我们在数据中心和其他基于云的运营中正在进行的工作向我们展示了DevOps方法的价值,特别是在优化堆栈和降低应用程序总拥有成本方面。我们看到在其他计算领域(尤其是在网络边缘)对DevOps的长期需求,并且正在多个方面开展工作,以将DevOps方法应用于嵌入式边缘系统。
Cassini方案启动DevOps
我们如何将DevOps带入嵌入式边缘的一个例子是Cassini方案,这是一项全面的行业新方案,正在为支持DevOps奠定基础。Cassini方案将使软件在边缘设备上的部署变得更加容易,因为硬件和固件将使用标准来实现安全,一致的操作以及无需修改即可运行工作负载的能力。Cassini方案还将节省时间,因为zdevelopers可以使用可移植的商品软件来掩盖潜在的复杂性
Cassini方案基于三个基本组件:健壮的标准,安全API和认证程序,以及使DevOps技术成为边缘开发一部分的参考解决方案。
v 标准:Arm SystemReady
Arm SystemReady方案是一个基础认证方案,它定义了最低限度的硬件和固件要求,因此,现成的操作系统,社区软件发行版(“ distros”)和虚拟机管理程序以及其他工作负载可以在各种Arm平台上无缝运行。对于硬件,SystemReady定义了通用的基本系统架构(BSA)和一组特定于市场的补充。对于固件,基本启动要求(BBR)描述了基于标准的启动方法和实现。
v PSA认证和PARSEC
为了满足防止未经授权的访问和数据操纵的保护需求,此两个方案确保了所有连接设备的安全基线。PSA认证计划提供了一个安全框架和认证方案,可以对信任的设备根目录的实施质量进行客观评估,从而为建立信任的基础奠定基础。开源安全性平台抽象(PARSEC)计划以平台和架构不可知的方式为应用程序提供安全的信任根抽象和公共运行时安全服务,以实现应用程序范围的安全性。
v 生态系统:云原生栈
鉴于Cassini方案的其他基础组件在硬件,固件和安全性方面的一致性,可以将与DevOps相关的现代软件开发和部署方法应用于边缘。例如,Cassini方案使开发人员更容易使用云原生技术(例如面向服务的体系结构,容器编排以及持续集成和持续交付(CI/ CD)管道)来简化开发并加速部署。Cassini方案还使软件供应商更容易提供可移植的解决方案,这些解决方案易于集成到较大的系统中,并且无需在每个设备上进行修改即可运行。
嵌入式边缘的面向服务的体系结构(SOA)
有了Cassini方案,就可以将各种DevOps方法应用于嵌入式边缘开发。特别是,开发人员可以开始使用称为面向服务的体系结构(SOA)的DevOps设计方法。
SOA特别适合当今正在开发的各种复杂的嵌入式边缘系统。这是因为SOA将工作负载变成了可以开发,部署和维护的功能性构建块,而不会迫使开发人员跟踪低级细节。SOA通过使用抽象和虚拟化来做到这一点。抽象隐藏背景细节,使使用底层硬件资源更加容易。虚拟化划分资源,因此许多任务可以在一台物理计算机上同时运行。虚拟化还可以使用容器来隔离和保护单个工作负载。容器编排用于管理容器运行时,可确保应用程序在任何基础架构上的任何位置一致地运行。
借助SOA,开发人员可以专注于差异化
标准化是SOA方法中的另一个关键要素,因为它在开发,部署和现场维护的产品阶段之间提供了一致性。
1.开发
SOA标准支持统一的开发惯例,例如一致的工具,行业最佳惯例以及对持续改进和持续交付(CI/ CD)的承诺,有助于提高质量,使其更易于管理许多开发人员的工作并促进开发 团队和公司提供了更多协作和共享代码的方式。
2.部署
SOA标准使部署,更新和验证工作负载的过程更具可重复性,并且在将工作负载部署到目标的方式,用于检查工作负载完整性的方法以及如何访问系统资源方面具有更高的一致性。
3.现场维护
SOA标准提供了一种一致的方式来启动工作负载,建立运行时要求和管理系统资源,因此,只要使用SOA工作负载,就可以更轻松地管理和监视包含SOA工作负载的大型复杂系统。
基于Cassini项目的Arm SOA平台
从Cassini方案定义的硬件,固件和安全性标准开始,我们正在创建一个SOA开发平台,该平台增加了对实时性和安全性至关重要的操作的支持,并专门针对嵌入式边缘系统使用。我们的SOA平台旨在使开发人员能够利用抽象化,虚拟化和标准化来更快地改变,从而比以往更快地发展和改进产品。
以下模块图提供了该新SOA平台如何运行的高层视图:
v Cassini方案层
Cassini方案运行在Arm合作伙伴的芯片之上,为在各种边缘生态系统中的安全操作奠定了基于标准的基础。SystemReady合规性确保在不同产品中的一致部署,PSA认证在硬件级别建立了信任根,PARSEC为跨平台的应用程序提供了安全的信任根抽象。SOA开发平台支持在安全域中使用受信任的执行环境(TEE),以隔离和保护敏感操作
v 管理程序层
SOA架构在ProjectCassini固件之上,具有一个可创建和运行虚拟机的管理程序,因此多个操作系统可以同时使用系统的硬件。这使得配置底层功能(例如内存分区和监视(MPAM)和通用中断控制(GIC))更加容易,并且进一步简化了用于混合关键性工作负载部署的SoC架构功能的配置。虚拟机管理程序还支持部分虚拟化(PV)接口,该接口可简化对加速器的访问并启用二进制兼容的工作负载。PV接口使在较早版本或技术级别上创建的应用程序保持不变,并且无需重新编译即可运行。
v 板级支持包(BSP)
传统上,与给定片上系统(SoC)的BSP关联的项(即,特定于硬件的驱动程序和操作系统)与虚拟机管理程序之上的抽象层虚拟IO关联。使用由芯片提供商提供的BSP的虚拟版本,开发人员可以使用特定的硬件体系结构,而不必跟踪SoC或其内核的更改。
v 容器和虚拟机
SOA使用容器编排,容器运行时和支持虚拟IO的虚拟机(VM)来使单个工作负载在任何基础架构上一致地运行。工作负载采取便携式容器的形式,可以在内部或由第三方开发。这为开发人员提供了更大的灵活性,同时也使商业软件提供商更容易提供有用的工作负载,这些工作负载可以部署在任意数量的系统中,而无需考虑其硬件配置。开发人员可能仍需要微调虚拟化的工作负载,以在其目标系统中获得最佳性能,但是,从基本准备就绪的基准功能开始(开发)可以节省大量的前期时间和精力。
v 混合关键和安全岛
在管理程序控制下,每个工作负载都在其自己的容器中运行时,可以创建一个混合关键系统,该系统支持由汽车安全完整性级别(ASILs)定义的不同风险类别。例如,在乘用车中,具有ASIL-B等级的较低风险工作负载(例如倒车灯)可以与具有ASIL-D等级的高风险工作负载(例如防抱死制动器)独立运行。这两个工作负载可以分别创建,修改和发展,但可以在同一系统中同时运行。而且,相同的ASIL-B工作负载可以视为一个独立的项目,并且由于其实现是从基础系统中抽象出来的,因此可以快速部署到其他类型的车辆,例如无人运输车。
SOA平台还支持使用安全岛,该安全岛使用专用的计算,内存和I / O资源来管理关键功能,并确保系统在所有可能的情况下继续安全运行。安全岛的通信和监视功能将通过标准接口抽象到系统的其余部分,以便需要访问安全岛的工作负载可以以一致的方式进行操作。
全行业合作
为了开发SOA平台,Arm跨行业工作,以满足所有利益相关者的需求并确保互操作性。例如,我们正在与Arm合作伙伴合作,为特定细分市场定义解决方案,以便产品开发和部署可以更快地进行。我们还与上游开源项目合作,以确保符合解决方案标准,从而最大程度地减少out-of-tree补丁和其他不一致之处,并简化产品原型设计。同时,我们正在与商业软件供应商合作,以实现其上市组件的集成,从而使开发人员能够更快地从开发过渡到生产。
告诉我们你的想法
我们很荣幸能在支持者中选拔一些最有影响力的技术领导者。至关重要的是我们合作伙伴的反馈。我们欢迎您提供回应,并希望对我们提供的信息发表评论。我们期待着在边缘收到想法和想法,以及如何最好地确保和利用它。
要与我们分享您的反馈,我们邀请您发送电子邮件至:project-cassini@arm.com.
Arm致力于协作。我们欢迎您对Cassini方案的真知灼见。
采取下一步
要了解有关Cassini项目及其与嵌入式边缘SOA的关系的更多信息,请访问:www.arm.com/project-cassini。
更多边缘云原生相关技术知识请关注Arm软件开发者专栏。