0 背景

不是提出一种新的边缘计算框架,而是博取所长,创建一张边缘计算知识地图,后续笔者的自研开发项目和更深入的边缘计算技术的探讨,将围绕这张知识地图展开。本文的行文的思路则借鉴模型驱动设计[1],从产品经理、架构师和软件工程师三个不同的视角去审视边缘计算实现。

1 产品经理实现视角

洞察出某个场景的需求和痛点问题,然后识别出问题解决后的商业价值或者学术价值,只有有价值的问题和需求才值得去做,接下来就是瞄准这个价值点,提出要实现的关键目标,到了这一步可以说是完成了业务建模,最后要实现这个模型需要什么样的基础能力,又该如何在我们的产品或者系统中实现,进一步将业务模型收敛成具体的需求提出来,后面的架构设计也将基于这套业务模型和系统需求展开。

边缘计算 边缘节点 边缘计算算法实现_边缘计算 边缘节点

时延诉求,智能家居终端业务不同带宽需求,企业或园区用户的数据安全和预测性运维四个典型场景,分别对应低时延、高带宽、数据安全和隐私三个边缘计算关键痛点问题,最后的预测性运维则作为基础设施,为前三项提供基础能力。

自动驾驶场景降低时延对于驾驶安全性而言是十分重要的,这也是自动驾驶领域最为关键和痛点的问题,需要从技术上去降低网络、计算等各方面的时延;智能家居终端业务不同带宽需求,主要是当前智能家居场景有不同的上网诉求,比如智能门锁、智能窗帘、智慧灯控等需要很少的带宽,但是8K视频、网游、VR/AR等设备需要较大的带宽和qos要求,如何在有限的带宽资源条件下为不同的业务划分不同的网络资源,提升用户的整体上网体验,需要根据业务动态地对网络进行分片。在企业或者园区场景的数据安全,当前主要是使用专网vpn等方式,未来随着接入的设备增多,数据有可能在用户未知的情况下自动上云了,这个时候需要一种可以在本地进行计算和存储的设备,保证数据的安全性;最后就是预测性维护,这是未来万物互联首要解决的核心问题之一,因为那个时候上网的设备将是数以万亿计的,如果靠人工去维护显然是不现实的,所以需要提供自动化的运维方式,降低能耗、成本、提升企业的运营水平。

        为了解决上面的痛点问题,获得想要的价值,其实有很多的解决方案,在这里我们引入边缘计算的技术。在降低时延方面,边缘计算可以就近处理数据,将网络资源下沉,也相应的降低了网络时延,所以基于边缘计算的数据处理是我们在降低时延层面的一个关键目标;接下来针对不同的业务动态对网络进行分片,这需要智能识别不同的业务,并对网络资源进行分片,如果只靠边缘计算设备是很难完成精准的业务分析,需要借助云计算强大的数据分析能力,对不同的业务进行训练,然后将训练的模型卸载到边缘设备上,边缘设备就可以就地识别,这就是基于边云协同的智能网络分片原理;数据安全在企业或者园区的场景,我们自然想到不要将数据上送入云,直接在本地进行存储,将存储资源卸载到靠近用户的边缘计算存储设备。最后就是预测性运维,边缘计算可以提供协同制造的能力,在边缘侧可以对设备建立数字孪生,实时监控设备的运行情况,在本地完成决策和执行。

        将上述的业务模型和关键目标进一步抽象,我们发现要实现这些目标还是离不开计算、网络和存储三项基本能力,不过这三项基本能力需要我们换一个视角去实现,引入一个关键概念叫卸载,就是将这些本来集中在云端的资源卸载到靠近用户的边缘设备上,在云端可以提供大数据分析、历史数据留存、人工智能的模型训练和应用,全局运维、存储和调度等功能,在边缘侧则提供本地的数据分析、设备的监控、服务的管理等功能,边云协同各自发挥优势,才能真正地解决上面的痛点问题。

2 架构师实现视角

云端和边缘侧分别完成不同的功能,云端负责全局视角的应用提供,边缘侧则负责局部视角的计算、存储和网络分析。边缘侧的边云协同的关键功能由图中的服务管理模块提供,这一模块的核心能力就是卸载服务能力。除此以外,上述关键目标中的边缘计算的数据处理和边云协同的智能网络分片,由数据管理模块完成;数据的本地存储提升安全性和隐私性,由安全管理模块负责;预测性维护(协同制造)由设备管理模块完成。最后,再加上边缘北向的hub接口(适配云端),边缘南向的hub接口(适配终端)就可以搭建一个完整的边缘设备或者平台。

边缘计算 边缘节点 边缘计算算法实现_物联网_02

以下是边缘设备/平台各个模块详细功能:

  • 设备管理模块:主要负责对终端设备,边缘设备的连接和状态等信息进行监控、管理和维护,属于管理面。这其中包括边缘设备之间的互联和自管理,边缘设备与终端设备的互联,边云设备的互联,在边缘设备上建立终端设备的数字孪生,收集和监控设备的各类告警,并对其进行预测试维护等功能。这个模块是整个边云协同的基础,为三层(云边端)设备提供基本的互联互通功能,后面的三个模块都需要依赖这个基础模块才可以完成各自功能。
  • 数据管理模块:主要负责对上下行数据进行分发、搜集、预处理、本地数据分析、实时控制和执行,属于数据面。这其中包括:在上行方向上对从终端搜集的数据进行清洗和预处理,收敛到一定范围,然后再上送到本地模型进行分析。因为本地分析模型只卸载了部分数据分析能力,主要的模型训练功能还是在云端,所以还需要将收敛后的数据同步一份到云端,由云端负责数据模型的训练。在下行方向上边缘侧设备会根据分析的数据进行决策执行,实时响应控制终端设备完成相应动作,将分析后的数据结果分发到边缘设备和终端设备上;已经训练好的数据模型也会定期卸载到边缘设备上,让边缘设备上的模型越来越智能。数据管理模块是整个边缘计算设备的核心,其他的模块都是围绕这个模块提供服务。
  • 安全管理模块:主要负责边缘设备提供的服务和数据的安全性,终端设备连接的安全性,本地智能化的安全感知,属于安全面。因为边缘设备接入的设备数量多而庞杂,被攻击和窃取的面更广,所以需要有一套完整的安全管理体系去保障安全性。之前的一些安全体系还是可以借鉴的,比如身份认证,安全编排等,但是面对新的应用场景,边缘计算设备还是要探索自己独有的一些安全策略,比如基于本地数据的安全感知,云端安全模块的卸载,本地数据的缓存加密等。
  • 服务管理模块:主要负责将云端相关的服务模型卸载到本地边缘设备,为终端和边缘侧设备提供升级、存储、可视化和人工智能等服务,属于控制面。这个模块是针对现有的云计算服务进行的卸载,需要考虑到在诸如嵌入式网络设备,网关设备作为边缘设备,资源上的紧缺性,因此需要对算法的架构进行创新,不能照搬沿用现有的框架。
  • 边缘南向hub:主要负责终端设备的连接入网,数据采集、消息代理、事件上报,以及边缘设备的互联接,属于转接面。在协议层面上,终端设备的接入协议(WIFI/BT/5G/NB-IOT/光纤等)十分丰富,需要通过边缘南向hub,将协议映射成可以进行端云通信的协议,比如MQTT协议;在数据层面上,需要将各种数据格式映射成统一的一种数据模型,如二进制或者JSON格式;在网络层面上,还会涉及到不同的边缘节点之间的自组网,对边缘节点进行抽象。
  • 边缘北向hub:主要负责对接云平台,属于转接面。在上行方向上,负责将边缘设备和终端的部分预处理的数据,历史数据上送到云端;在下行方向上,负责将云端大数据分析的结果、训练的模型下插到边缘侧和终端设备。

管理面、数据面、安全面、控制面和转接面5个方面进行的设计,借鉴了一些开源项目的架构,在这个层面上,并不关注技术和方案的细节,笔者后续的实战篇分享中,将围绕这些模块功能做详细设计和实现。

3 软件工程师实现视角

技术地图,作为开发和实现上面功能的基本能力,详见下图。图中将这部分的技术拆分成8个模块,设备管理模块需要设备服务(协议转换)、消息处理和支撑技术中的通信和连接技术储备;数据管理模块需要基础平台资源中的算法执行框架、业务知识、支撑技术中的人工智能以及性能指标数据的技术储备;安全管理模块需要支撑技术中的安全技术、业务知识中的可信执行环境的技术储备;服务管理模块需要基础平台资源、业务知识中的动态调度/卸载支撑技术中的并发、交互技术和设备管理的技术储备;边缘南向hub需要设备服务(协议转换)、基础平台资源中的服务发现、隔离技术等相关技术储备;边缘北向hub需要基础平台资源、业务知识、云侧的通信和连接技术储备。

边缘计算 边缘节点 边缘计算算法实现_物联网_03

以下是各个模块的详细说明:

  • 设备服务(协议转换):主要负责终端设备和边缘设备的接入、协议转换、数据建模、组网和上云。包含的技术有:终端设备接入技术(蜂窝技术5G/NB-IOT、卫星通信、光纤接入+wifi、蓝牙,构成空天一体的通信网络);用于边缘设备互联的mesh自组网,用于数据建模的物模型,物联网的通信协议MQTT、客户服务器的通信协议HTTP和网络管理SNMP协议(当前多采用yang模型)。
  • 消息处理:主要负责消息通信和各设备之间的负载均衡,此处的负载均衡扩展到云端和边缘端之间的协同,消息通信的范围也扩展到云边端三个角色。
  • 指标数据:主要负责衡量边云协同的效率、整个端到端系统的工作情况以及边缘设备在能耗方面的优势,包括预测性速度、内存占用率、能耗等。该指标数据还有一个任务就是通过数据化的方式评估边缘设备方案的优劣,在做技术选型时需要据此做出选择。
  • 基础平台资源:这部分是在开发一个边缘设备时,需要的完整软硬件技术栈。硬件层面上需要考虑同构/异构模型,体系架构上选择arm还是x86,操作系统方面需要有针对边缘计算特点的选择,比如ROS系统,中间件则主要探索边缘设备平台化的业务模型,微服务是为了适应在云边之间、边边之间应用的快速卸载,服务发现是为了适应在高速移动应用场景,终端服务在不同边缘设备之间的快速切换,最后的算法执行框架是为了适应在边缘网关(嵌入式设备为主)场景下的算法执行。
  • 业务知识:边缘计算是跟垂直行业强相关的技术,需要以垂直行业知识为抓手,探索边缘计算技术;在实际的开发实践中需要关注和应用开源项目,不能闭门造车;模块中接下来的4条,分别从数据、架构、安全和算法的4个角度给出了方向,可以作为平台化的业务技术储备,为上面的垂直行业服务。
  • 隔离技术:主要应用在通过服务器搭建的边缘设备上,边缘计算不仅可以以一个硬件设备的形态存在,还可以在服务器上以虚拟化的方式存在,这就需要用到虚拟化和容器相关的技术。
  • 设备管理:设备管理主要用于问题定位、调试和设备的升级过程,在借鉴现有技术的同时还需要关注边缘设备上的独特性。
  • 支撑技术:这部分列举的比较宽泛,基本上包含了一个完整的边缘设备需要的通信、交互、计算、安全和系统的各个方面,当然此处只是提醒读者日常中需要注重积累这部分的技术栈,并不一定都要完全掌握。

        以上是从软件工程师视角上的一张技术地图,这其中涉及的技术理论和知识,也是后续笔者分享的主题,笔者将通过边学边分享的方式将这个技术栈搭建起来,也希望对读者有所启发。

4 小结

知识地图,为后续进行的相关边缘计算设计和开发工作做铺垫。如果你想从本文有另外收获的话,请去查阅一下模型驱动设计,然后试着在工作中,从这三个不同的视角去分解问题,相信你会打开更广阔的世界。

三个典型应用场景,带着搭建一起领略边缘计算的奥妙,敬请期待!

参考文献:

[1]边缘计算与云计算协同白皮书2.0.ECC.2020.12