主要挑战
1 多主体的资源管理
边缘计算资源分散在数据的传输路径上,被不同的主体所管理和控制,比如用户控制终端设备、网络运营商控制通信基站、网络基础设施提供商控制路由器、应用服务供应商控制边缘服务器与内容传输网络。云计算中的资源都是集中式的管理,因此云计算的资源管理方式并不适用管理边缘计算分散的资源,而目前关于边缘计算的研究也主要集中在对单一主体资源的管理和控制,还未涉及多主体资源的管理.一种比较直观的解决方式是各个主体对资源自我管理,然后通过中间服务(brokerservice)来进行资源供给.但这种方式只能提供基本的功能,如果要满足使用者的特殊需求(如自动供给),中介层则需要自己实现部分
IaaS(infrastructureasaservice)平台功能。这需要依赖各个主体提供的API,只要有1个主体提供的
API不够灵活,就很难实现,因此实现灵活的多主体资源管理是一个十分富有挑战性的问题。
2 应用的移动管理
应用的移动管理边缘计算依靠资源在地理上广泛分布的特点来支持应用的移动性,一个边缘计算节点只服务周围的用户。应用的移动就会造成服务节点的切换。而云计算对应用移动性的支持则是“服务器位置固定,数据通过网络传输到服务器”,所以在边缘计算中应用的移动管理也是一种新模式,主要涉及以下2个问题:
1)资源发现。应用在移动的过程中需要快速发现周围可以利用的资源,并选择最合适的资源。当前虽然也有很多成熟的资源发现技术,在云监控(cloudmonitor)与云中介(servicebrokerage)中被广泛运用,但边缘计算的资源发现需要适应异构的资源环境,还需要保证资源发现的速度,才能使应用不间断地为用户提供服务。
2)资源切换。用户移动时,移动应用使用的计算资源可能会在多个设备间切换,而资源切换要将服务程序的运行现场迁移。热迁移技术可以解决这个问题,但是传统热迁移技术的目标是最小化停机时间,而资源切换需要最小化总迁移时间,因为在迁移的过程中用户要忍受升高的延迟。另外,传统的虚拟机迁移是在数据中心的内部进行,设备的计算能力与网络带宽比较固定,而边缘计算资源的异构性与网络的多样性,需要迁移过程自适应设备计算能力与网络带宽的变化。所以,边缘计算需要一套自适应的快速热迁移方案,来满足移动应用资源切换的需求。
3 虚拟化技术
为了方便资源的有效管理,边缘计算需要虚拟化技术的支持,为系统选择合适的虚拟化技术是边缘计算的一个研究热点。边缘计算对虚拟化技术的要求体现在如下3个方面:
1)边缘计算资源是一种基础设施,要尽可能地保持通用性,所以虚拟化技术应该实现最小化对应用程序运行时环境的约束,不应强制应用使用特定的操作系统、函数库等;
2)边缘计算资源的能力有限,不能像计算中心一样为应用提供充足的资源,虚拟化技术应最大化资源利用率,使有限的资源在同一时间内满足更多的请求;
3)有些边缘计算资源在处理用户任务的同时还要对外提供其他服务,虚拟化技术应将不同的任务彻底隔离,一个应用的崩溃、内存溢出、高 CPU
占用不会对其他的任务造成影响。例如在移动边缘计算中,基站能够处理用户的任务,但是这些任务不能影响基站最基本的无线接入功能。这3个方面可能会出现冲突,系统要根据自己的需求在这之间做出权衡。目前,新型的虚拟化技术层出不穷,其中有很多打破了虚拟机和容器的规则与界线,将两者充分融合,同时具备两者的优势,如LXD,Hyper,RancherOS等。所以,不拘泥于虚拟化技术现有的规则与界线,设计适应边缘计算特点的虚拟化技术也是一大挑战。
4 数据分析
数据分析的数据量越大,往往提取出的价值信息就越多。但是收集数据需要时间,价值信息往往也具有时效性,没有人会关注昨天的天气预报。边缘计算使数据可以在汇集的过程中被处理与分析,很多数据如果被过早地分析,可能会丢失很多有价值的信息,所以如何权衡提取信息的价值量与时效性是一个关键性问题。
边缘计算利用的计算节点数量众多,但节点的计算资源有限,很多都是单片机或片上系统,例如Intel小型蜂窝基站上配备 T3K
片上系统拥有4核ARM处理器和2GB
的内存;而目前流行的Hadoop,Spark等数据分析模型利用的计算资源特点却是“数量相对较少,但资源十分丰富”,高效运行的Spark需要8核 CPU
与8GB内存的计算节点支持,因此 Hadoop,Spark等数据分析框架不适应边缘计算的资源环境。现有很多计算框架适用于资源有限的计算节点,如实时数据处理框架
ApacheEdgent,深度学习框架 TensorFlow
等,但仍不成熟,有很多问题需要解决。例如ApacheEdgent只支持类似过滤,聚集这样的简单操作,而
TensorFlow目前的版本只能用于单PC或单移动设备上的计算。
5 编程模型
边缘计算资源动态、异构与分散的特性使应用程序的开发十分困难,为减少应用的开发难度,需要可以适应边缘计算资源的编程模型。Hong等人提出了一个边缘计算编程模型,针对地理空间分布的延迟敏感的大规模应用,该模型适应分散、异构的资源环境,并使程序可以根据负载动态伸缩。但是该模型假设资源之间的网络拓扑必须是树状的,无法适应边缘计算资源的动态性。Sajjad等人研究了流处理应用的编程模型,该模型利用空间上分散的计算资源处理数据,将任务区分为本地任务和全局任务,本地任务可以在更靠近数据源的计算节点上执行,从而减少应用在网络上传输的数据量。