Introduction to Edge Computing

什么是边缘计算

来自OpenStack白皮书的定义:边缘计算是为应用开发者和服务提供商在网络的边缘侧提供云服务和IT环境服务 简单来说就是,在网络的边缘(逻辑上的边缘,即远离数据中心而更接近数据输入的位置)提供应用,计算,数据存储等服务。 数据从靠近网络边缘的位置产生,因此在边缘进行处理可以更高效。

边缘计算最初的思想可以追溯到CDN (Content Delivery Network),实时根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求导向到离用户最近的服务节点上,对于流媒体等非常重要。边缘计算也可以看作是结合云计算思想的通用化产物。

为什么需要边缘计算

在资源有限(resource constrained ),比如带宽限制(bandwidth limited)的环境下,或者是网络连接不稳定(Unreliable Connectivity)时,数据无法顺利的传回数据中心进行处理,至少是实时处理(real-time response),为了提升服务质量以及更好的用户体验(你一定不希望Siri十秒钟之后才有反应),可以尝试将部分计算放在靠近数据源的地方,比如移动基站甚至是手机上!

在一些对于实时性要求非常高的情景下,比如自动驾驶,低延迟(Low Latency)是非常重要的。物体识别,目标检测等算法一定需要在本地机器上完成,此时汽车就可以看作是一个边缘节点。

还是使用自动驾驶的例子,雷达传感器,各种高清摄像头产生的数据量非常庞大,如果都传回云端,会对数据的存储以及网络流量造成较大的压力。从节约资源以及缓解压力的角度看,应用边缘计算是一个比较合适的解决方案。

考虑到隐私的问题,敏感数据可以在边缘被处理,避免传送到云端造成隐私泄露的风险。

目标

在靠近数据输入或用户的地方提供计算存储网络带宽 减少时间延迟带宽限制

云计算的特点

集中的大规模资源:AWS拥有几十万台服务器,可以提供强大的计算能力与服务。集中的集群可以降低运行与维护的成本,降低网络传输的压力。

按需服务与高可伸缩性:共享的大规模资源池可以让用户根据需求使用服务,同时也可以方便的扩展,动态伸缩来满足规模变化的需要。

虚拟化:使用的资源,创建的应用并不受物理位置的限制。虚拟化技术把物理资源映射为虚拟资源,虚拟化的资源可以动态的扩展与迁移,同时也提高了物理资源的利用率。

边缘计算与云计算数据中心的区别

资源的限制:云计算数据中心规模非常巨大,可以提供大量的计算存储资源。而边缘层的设备和节点的计算与存储资源通常比较有限。

物理环境复杂:数据中心的建造在选址以及建设部署方面有较多的考虑,设备的物理环境比较合适,并且能集中的监控与管理。而边缘的设备所在物理环境就比较复杂,可能会有比较大的差异,而且由于网络或者其他原因不能实时的监控。

节点的差异:与数据中心的集中部署不同,边缘节点可以是基站,也可以是小规模的站点集群,甚至是单个的设备。物理上的差异也是管理上的挑战。

面临的挑战

边缘节点的通用计算 边缘节点的差异很大,怎样让不同的边缘节点支持一种通用的计算方法值得探索。使移动设备,交换机,路由器等不同的设备,在支持各自的任务处理以外,也支持一种通用的计算。 联系到 AGI(Artificial General Intelligence,通用人工智能),目前的人工智能解决方案几乎都是定制的,专注于一项或几项特定的任务。学术界和工业界的目标都希望能构建一个有更大广度的智能系统,对很多复杂问题提出一种通用的解决方案。

边缘节点发现 可以先联系分布式系统或者微服务中的服务发现。在服务实例数量动态变化的情况下,为了让客户端能够访问到服务,以及不同的服务之间彼此发现,就需要使用服务发现,通过对服务中心的请求来动态获取服务实例。 在边缘计算中也是类似。但需要进一步考虑到节点之间的差异性,比如设备的类型,数量,计算能力,网络连接状况等。节点的稳定性更加重要。

任务的划分和转移 如何自动高效的划分任务以及合理分配到节点进行计算,调度与部署的策略都需要进一步研究。综合多方面因素(带宽,时延,计算所需的资源等)的任务卸载模型与算法都需要研究。

服务质量与体验的稳定 在数据中心过载的情况下依然要维持边缘节点的稳定。

边缘节点的安全性 公共的设备,例如交换机、路由器等,作为边缘节点提供服务时需要考虑安全性,节点作为物理设备原有的功能,设备的所有者等因素。

边缘节点的管理 云计算数据中心的优势在于集中的硬件和低管理成本。边缘节点的分散性增加了管理的成本和复杂性,因此需要更合适的方案来管理节点。

研究领域正在做的工作

通用的标准 各大组织机构已经提出了自己制定的云标准,但在不能很好的适用于边缘计算领域

合适的框架与开发工具 目前还没有合适的结合边缘计算特点的框架与平台,开发者通常需要学习非常多的底层知识并结合设备的特点进行开发

函数库与算法 资源有限的边缘节点需要更加轻量级的算法

操作系统 轻量级的操作系统或者微内核来快速部署应用环境,支持通用计算。Docker是先有技术中的一种候选解决方案。

工业界的一些解决方案

AWS Greengrass

Greengrass 把本地计算、消息收发、数据缓存、同步和 ML Inference (机器学习模型推理)功能带入本地设备,降低将 IoT 数据传输到云的成本。 greengrass(图片来自AWS)

Multi-access Edge Computing (MEC)

之前叫做 Mobile Edge Computing,指在蜂窝网络边缘(一般指移动基站)提供云计算服务,主要为了减少核心网络设备的营运压力。Nokia在2016年提出了自己的MEC解决方案

OpenStack++

作为OpenStack的扩展,主要应用于靠近边缘节点的小规模云数据中心(Cloudlet)的部署。提供了边缘节点发现,维护以及VM的切换等功能。

从深度学习的角度

在边缘节点进行模型计算的挑战

硬件要求 神经网络模型对于设备的内存,计算能力都有比较高的要求。

算法的优化 传统的神经网络模型通常比较大,在边缘节点的部署有一定的难度。近几年在卷积神经网络上所做的模型压缩工作取得了非常大的进步,具有代表性的有 SqueezeNet、MobileNet、ShuffleNet、Xception。

References OpenStack White Paper Challenges and Opportunities in Edge Computing Edge Computing: Vision and Challenges The Emergence of Edge Computing

Chuanrong Li

Read more posts by this author.