边缘计算:原理、技术与实践
上QQ阅读APP看书,第一时间看更新

2.4 边缘计算操作系统与开源框架

操作系统对任何领域来说都是基础中的基础,边缘计算也不例外。在进行了各种各样的边缘计算系统与概念的尝试后,多个机构开始整合、抽象边缘场景中的共性问题,并提出面向边缘计算的操作系统和开源框架。不同于个人计算机语境中的操作系统,边缘计算中的操作系统主要是打通云、边、端之间的业务流程,并且将各方资源整合并提供开放接口供开发者及用户使用。相比云计算操作系统,边缘操作系统与框架主要面临以下三方面挑战。

1. 高度异构性

边缘场景不仅仅是面向的设备具有海量、异构的特点,其所使用的数据与服务通信技术、服务依赖环境、编程语言、数据格式、计算需求、业务模型与逻辑等诸多方面均存在巨大差异,这使得边缘框架很难像云计算一样全部使用标准化协议。具体而言,边缘框架需要能够整合上百种设备通信协议、服务通信协议,支持x86、ARM及大量定制化嵌入式架构,能够运行在不同的操作系统上(Windows、各版本Linux、嵌入式OS如FreeRTOS等)。

2. 边缘数据分析处理

边缘计算的一大优势是可以缩短物联网前端业务的数据生命周期,让之前需要到云中心的计算请求在边缘侧就能完成,从而节省带宽与计算资源。然而,由于边缘设备资源受限、服务异构的特点,使得运行在边缘上的数据处理服务需要满足以下几方面的要求。

①高资源利用率:当前面向云中心的计算服务以及相应的管理工具通常具有大而全的特点。如果直接在边缘端复用这些工具,其运行效率将十分受限。因此需要针对边缘场景提出定制化的服务与管理实现方式,或者至少需要对各类服务框架进行裁剪。

②能够快速地进行服务的切换,应对前端各类异构的计算请求。尤其是在移动计算的场景中,不仅单个用户请求会随时间变化,连接到边缘服务器的用户群体也会随时间变化,这要求边缘服务器能够快速地响应和切换数据处理服务。

③要支持毫秒级端到端的系统响应。与云计算相比,边缘计算的一大优势就是具有极低的通信延迟。

3. 商业模式驱动的边缘优化

当前具有代表性的边缘操作系统及开源框架如表2-3所示。值得一提的是,这些框架大多沿用了本章开头介绍的一般边缘计算框架,在此基础上针对不同的典型场景做出改进,并最终形成边缘操作系统。本节我们主要介绍由Linux基金会发起的EdgeX Foundry,以及Intel公司与WindRiver共同发起的StarlingX项目。

表2-3 边缘操作系统及开源框架

000

2.4.1 EdgeX Foundry

EdgeX Foundry是由Linux基金会发起的开源项目(简称EdgeX),主要面向通用工业物联网的应用场景,侧重于对海量异构的前端设备进行管理。如图2-16所示,EdgeX提供了设备接入、边缘数据传输等场景的实现,而在云边协同、基于云的服务与应用管理等方面未做出规范。这使得用户可以针对物联网应用场景来方便地实现基于EdgeX的边缘系统,并且在边缘系统上建立自己的服务管理与应用生态。

000

图2-16 EdgeX Foundry的愿景架构图

EdgeX的性能目标是在树莓派3及性能相仿平台(1GB内存、64位CPU、32GB以上存储空间)上稳定运行边缘服务。这相较于云计算中心配置的资源(几千台到十几万台服务器不等)可以说是天壤之别。虽然EdgeX架构依然有可能用到云中心的算力和存储,但相当部分的前端物联网需求可以直接在EdgeX网关上完成,而这些需求通常具有计算量不大,但是数量巨大、类型多样的特点,将这些计算请求在边缘设备上处理能够为主干网节省大量的带宽、存储和计算资源。图2-17显示了EdgeX的主要模块和体系结构,包括设备服务、核心服务、支持服务、输出服务四个抽象层,并且在这四层之上,具有设备和系统管理、安全层。其中设备服务层负责将各类异构设备接入到EdgeX系统中,对接各类前端物联网设备的通信与数据协议。核心服务层则提供相应的开发质量和服务注册等关键模块,管理用户的核心数据,并直接控制前端设备。支持服务层包括规则引擎、调度、警告和通知、日志等服务。输出服务层是将上述过程打包分发给用户,提供用户注册、分发等功能。

000

图2-17 EdgeX Foundry的体系结构

2.4.2 StarlingX

StarlingX是由Intel和WindRiver开源的边缘计算框架,提供了一个包括基于OpenStack平台及面向电信云的VIM在内的软件栈,提供了自动化的服务打包、编译和安装配置工具。在计算实现、网络与存储等基础能力方面,StarlingX沿用OpenStack的核心服务。在此基础上,实现编译设备上的自动化虚拟机配置与管理,并形成边缘间协同、云边协同等边缘网络核心功能。

与EdgeX Foundry相比,StarlingX更多强调边缘层的服务管理、边缘设备间协同与云边协同等功能,两者在功能定位上是相互补充的关系。对于具体的应用场景而言,我们完全可以采用EdgeX管理前端设备,采用StarlingX管理边、云端的计算服务。

2.4.3 其他开源框架

除上述介绍的EdgeX与StarlingX外,还有其他机构提出的边缘操作系统与开源框架,如亚马逊提出的AWS IoT(Greengrass),微软提出的Azure IoT Hub,AT&T提出的CORD(Central Office Re-architectured as a Datacenter),华为提出的KubeEdge,Arduino提出的Arduino IoT Cloud,谷歌提出的K3S,百度提出的OpenEdge,以及国产边缘操作系统HopeEdge、Intewell-H等。本书将在后续章节展开介绍当前的开源框架原理及其技术特点。

2.4.4 融合边缘的前端物联网操作系统

对于前端物联网设备而言,当前主流的嵌入式操作系统并不具备直接接入边缘的能力,这使得在开发边缘应用的过程中需要单独针对前端设备平台实现不同的边缘协同过程,特别是计算卸载与边-端协同的过程。为此,学术界与工业界提出了一系列融合边缘计算的前端操作系统,如AliOS Things、TencentOS Tiny、Huawei LiteOS、Contiki等。

本节以AliOS Things为例介绍面向边缘场景的物联网前端操作系统。AliOS Things面向异构的物联网设备,支持多种CPU架构,包括ARM、C-Sky、MIPS、RISCV、rl78、rx600、xtensa等。AliOS Things认证的芯片和模组数量有200多,认证的传感器数量有100多。通过整合底层的各类异构设备,并无缝地将其接入到云和边缘服务,AliOS Things可以将前端设备与边缘层有序连接起来。AliOS Things适配了分层架构和组件架构。所有的模块都以组件的形式存在,通过menuconfig配置界面进行配置,应用程序可以很方便地选择需要的组件。

通过上述的介绍可以发现,当前的边缘计算操作系统与开源框架正处于“百花齐放”的时期,各路人马从不同的角度出发,开始在前端设备接入、通用的边缘操作系统,以及服务管理等方面展开了有益的探索。