总体介绍框架
参考文献:《边缘计算:现状与展望》施巍松
1、边缘计算
将计算任务在接近数据源的计算资源上运行,有效减少计算系统的延迟,减少数据传输带宽,环节云计算中心压力,提高可用性,并能够保护数据安全和隐私。
2、三个问题
- 边缘计算从哪儿来?
- 现状
- 到哪儿去?
3、发展历程
技术储备期、快速增长期、稳健发展期。
4、七项关键技术
5、六类典型应用
6、需要解决的六类问题
传统云计算中心缺点
- 实时性不够
- 带宽不足
- 能耗较大
- 不利于数据安全和隐私
边缘计算
1、操作对象
云服务的下行数据、万物互联服务的上行数据
2、边缘指的是
从数据源到云计算中心路径之间的任意计算和网络资源,是一个连续统
3、与云计算关系
相辅相成,边缘计算需要云计算中心强大的计算能力和海量数据的支持;云计算中心需要边缘计算中边缘设备对海量数据及隐私数据的处理。
4、优点
- 不把数据传入云端,极大减轻了网络带宽和数据中心功耗的压力;
- 不需要通过网络请求云计算中心的响应,减少了系统延迟、增强了服务响应能力。
- 隐私数据存在网络边缘设备,减少数据泄露风险,保护用户隐私。
发展
1、技术储备期
内容分发网络(CDN,content delivery netword)
基于互联网缓存网络,依靠部署在各地的缓存服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,将用户的访问指向距离最近的缓存服务器上,以此降低网络拥塞,提高用户访问响应速度和命中率。
功能缓存(function cache)
CDN强调内容的备份和缓存,边缘则是功能缓存。
小朵云(Cloudlet)
可信且自愿丰富的主机,部署在网络边缘,与互联网连接,移动设备可访问并提供服务。强调下行,即将云服务器上的功能下行至边缘服务器,减少带宽和时延。
移动边缘计算(MEC,mobile edge computing)
接近移动用户的无线接入网范围内,提供信息技术服务和云计算能力的一种新的网络结构,已成为一种标准化、规范化的技术。它强调在云计算中心与边缘计算设备之间建立边缘服务器,在边缘服务器上完成终端数据的计算任务。
雾计算(fog computing)
迁移云计算中心任务到网络边缘设备执行的一种高度虚拟化计算平台。通过减少云计算中心和移动用户之间的通信次数,缓解主干链路的贷款负载和能耗压力。关注基础设施之间的分布式资源共享问题。
海云计算(cloud-sea computing)
2、快速增长期
3、稳健发展期
七项核心技术
1. 网络
将计算推至靠近数据源的位置,甚至将整个计算部署于从数据源到云计算中心的传输路径上的节点。三个新要求:
服务发现
计算服务请求者的动态性,如何知道周边的服务?
快速配置
用户、计算设备动态增加、减少(车……),服务也要迁移,导致大量突发网络流量。而广域网的网络情况比云计算中心复杂,带宽也有限。如何从设备层支持服务的快速配置?
负载均衡
边缘设备产生大量数据,边缘服务器提供大量服务,根据服务器和网络状况,如何动态调度到合适的计算服务提供者?解决方法:
“建立一条从边缘到云的计算路径” 解决方法:
命名数据网络(NDN,named data networking)
将数据和服务进行命名和寻址,以P2P和中心化方式相结合进行自组织的一种数据网络。
数据从源到云的传输关系?——使用NDN解决计算链路中服务发现的问题。
软件定义网络(SDN,software defined networking)
控制面和数据面分离的可编程网络+简单网络管理。网络管理者可以快速进行路由器、交换机的配置,减少网络的抖动,支持快速流量迁移。
数据服务迁移,网络层面的动态性请求?——结合SDN
2. 隔离技术
边缘设备需要通过有效的隔离技术来保证服务的可靠性和服务质量。
计算资源的隔离:应用间不能互相干扰。
数据的隔离:不同应用程序具有不同的访问权限。
——VM虚拟机、Docker容器技术
- Docker技术:实现应用在基于OS级虚拟化的隔离环境中运行,其存储驱动程序采用容器内分层镜像的结构,使得应用程序可以作为一个容器快速打包和发布,保证了应用间隔离。
3. 体系结构
未来的体系结构应该是?通用处理器和异构计算硬件并存的模式。
异构硬件牺牲部分通用计算能力,使用专用加速单元减小了某一类或多类负载的执行时间。
边缘计算常针对某一类特定的计算场景设计边缘计算平台的体系结构。
4. 边缘操作系统
边缘操作系统,向下管理异构的计算资源,向上处理大量的异构数据以及多用的应用负载,负责将计算任务在边缘计算节点上部署、调度、迁移,从而保证计算任务的可靠性以及资源的最大化利用。倾向于对数据、计算任务、计算资源的管理框架。
机器人操作系统(ROS,robot operating system)
提供硬件抽象和驱动、消息通信标准、软件包管理……
5. 算法执行框架
人工智能算法——在云数据中心,算法执行框架更多执行模型训练,输入的是大规模的批量数据集,关注的是训练时的迭代速度、收敛率和框架的可扩展性;在边缘设备上,执行预测任务,输入实时小规模数据,其计算资源存储资源受限,更关注算法执行框架预测式的速度、内存占用量和能效。
属性 | 云服务器 | 边缘设备 |
---|---|---|
输入 | 大规模、批量数据集 | 小规模、实时 |
任务 | 训练、预测 | 预测 |
关注点 | 训练的迭代速度、收敛率、框架可扩展性 | 预测速度延迟、内存占用量、能效 |
支持边缘设备执行智能任务、针对边缘设备的算法执行框架:TensorFlow Lite、Caffe2、PyTorch、MXnet……但是没有一个能在所有的关注点维度都取得最好的表现。
6. 数据处理平台
边缘设备时刻产生海量数据,来源和类型多样化,大多具有时空属性。构建数据处理平台,针对边缘数据进行管理、分析和共享。
- OpenVDAP:异构计算平台、操作系统、驾驶数据收集器、应用程序库。安装部署,完成车载应用计算、车与云、车与车、车与路边计算单元的通信。
7. 安全和隐私
处于靠近用户侧、传输路径上的数据,更容易被入侵。边缘计算节点的分布式、异构型——难以统一管理。存在安全问题:应用安全、网络安全、信息安全和系统安全。
密码学——信息安全,
访问控制策略——越权访问防护
机器学习
可信执行环境(TEE,trusted execution environment)
在设备上一个独立于不可信操作系统而存在的可信的、隔离的、独立的执行环境,通过硬件机制来保障(Intel软件防护扩展、Intel管理引擎、x86系统管理模式、AMD内存加密……)。通过将应用运行到可惜的执行环境中,并将使用到的外存进行加解密,故当边缘计算节点被攻破时,其应用与数据仍然能保证安全。
六大典型应用
1、公共安全中实时数据处理
滴滴行车录像、视屏有用性检测系统
2、智能网联车(CAVs)和自动驾驶
KITTI自动驾驶算法评测数据集、视觉算法……
传感、感知(定位、识别、追踪)、决策。
软件栈:Apollo(百度)、Autoware(早稻田)
3、虚拟现实(VR、AR增强现实)
MUVR,在边缘服务器上支持多用户VR程序的处理框架,其将VR图像渲染到边缘服务器,并尝试重用用户之前的VR图像帧,以降低边缘服务器的计算和通信负担。
Furion:移动端VR框架,将VR负载分为前景交互和背景环境2种,前景交互在云端处理,而背景环境渲染卸载到移动端处理。
Google glass数据收集、显示VR图像,cloudlet(边缘节点)图像渲染、人脸识别。
4、工业物联网
边缘计算应用于工业物联网的优势:
- 改善性能,工业中常见的报警、分析等靠近数据生产者的地方处理和决策会更快;
- 保证数据隐私,避免数据传输到共享数据中心后数据暴露等带来的安全隐私问题;
- 减少操作成本,减少数据传输量和带宽,从而减少了工业生产中由网络、云数据中心。
5、智能家居
对于异构的设备,设备的命名、数据的命名、设备之间的智能化联动都是问题。隐私数据不能上传到云端。边缘计算可以将数据推送到家庭内部的网关,减少家庭数据的外流。
eg. 亚马逊Echo、三星SmartThings、谷歌Google home ——智能家居控制中心(不能完全依靠自身)
微软HomeOS,苹果HomeKit,——智能家居框架
EdgeOSH:通信模块、数据管理模块、自管理模块(提供统一编程接口)
非侵入式负荷检测(NILM,non-intrusive load monitoring),关注家庭用电状况并分析。
6、智慧城市
无人驾驶——依赖车内计算单元来识别交通信号和障碍物,并且规划路径。
EdgeOSc:底层数据感知层、中间的网络互联层、顶层的数据应用管理层。
六个面临的问题方向
编程模型
编程模型可以使开发者快速上手开发应用产品。从功能角度讲,边缘计算是一种分布式的计算系统,具有弹性管理、协同执行、环境异构的特点。包含三个关键内容:
应用程序/服务功能可分割。一个任务可以分成若干个子任务,并任务功能可以迁移到不同的边缘设备。
数据可分布。针对不用的数据源而言。
资源可分布。数据有可分布性,从而要求处理数据的计算、存储和通信资源也有可分布性。
边缘设备大多是异构的计算平台,且每个设备上的运行环境数据不同,资源相对有限,因此在边缘计算场景下部署应用程序会比较困难。——轻量级编程语言EveryLite将计算迁移任务中主体为接口调用的时间和空间复杂度受限的任务称为“微任务”,EveryLite可以处理微任务。
软硬件选型
边缘计算系统有碎片化、异构性的特点,硬件层面上,有CPU、GPU、FPGA、ASIC等各类计算单元。即使是基于同一计算单元,也有不同的整机产品,例如基于英伟达GPU的边缘硬件产品,既有计算能力较强的DRIVE PX2,又有计算能力较弱的Jetson TX2;在软件系统上,针对深度学习应用,有TensorFlow,Caffe,PyTorch等各类框架,不同的软硬件及组合有各自擅长的应用场景,使得开发者不知道该如何选用合适的产品——针对自身应用的计算特性、满足计算能力需求的硬件产品、合适的软件框架开发,成本。
工具?帮助用户对边缘计算平台性能、功耗分析并提供软硬件选型参考。
基准程序与标准
如何评测边缘计算的系统和平台?——经典基准测试集(benchmark):并行计算PARSEC、高性能计算HPCC、大数据计算BigDataBench。
边缘计算?SD-VBS、MEVBench是针对移动端设备评测基于机器视觉负载的基准测试集;SLAMBench针对移动端机器人计算系统;CAVBench针对智能网联车边缘计算系统。
趋势:先针对每个场景出现一个经典基准测试集,之后各个集相互融合借鉴,找出边缘计算场景下的若干类核心负载,最终形成边缘计算场景中的benchmark。
动态调度
边缘计算系统要根据任务类型和边缘设备的计算能力进行动态调度:
- 云计算中心和边缘设备之间的调度;
自下而上、自上而下。自下而上是在网络边缘处,将边缘设备采集或者产生的数据进行部分或全部的预处理,过滤无用的数据,降低传输带宽。自上而下是指将云计算中心所执行的复杂计算任务进行分割,然后分配给边缘设备执行,以充分利用边缘设备的计算资源。
- 边缘设备之间的调度。
与垂直行业的紧密结合
边缘节点的落地
- 新型商业模式
- 边缘节点的选择
- 边缘数据选择
- 边缘节点的可靠性