Page 282 - 《软件学报》2021年第12期
P. 282
3946 Journal of Software 软件学报 Vol.32, No.12, December 2021
addresses the data storage, and it is still challenging to manage and schedule resources among edge clusters in edge computing.
Containerization has been widely employed in edge computing, but the current container orchestrators utilize the inefficient orchestration
schemes, which leads to high computation latency. Thisstudy proposes the function delivery network (FDN). On the one hand, FDN
provides the interface and containerization computation platform for users to access the edge computing resources. On the other hand,
FDN optimizes the resource utilization and computation latency by orchestrating the containers to the appropriate edge clusters. Moreover,
a heuristic container orchestrating algorithm is developed that enables the inter-cluster container orchestrating. The FDN system is
implemented based on Openwhisk and the FDN system is deployed in China Mobile network, and the FDN system is evaluated. The
results show that the proposed FDN system can decrease the task computation latency, and the heuristic container orchestration algorithm
outperforms the traditional container orchestration schemes.
Key words: function delivery network; edge computing; container orchestration
随着物联网、机器学习、VR/AR 等应用的发展,网络数据量正在快速增大.5G 时代的到来,加快了数据产
生的速度,网络的流量也会大幅增加,并会出现更多基于 5G 的新型应用.这些应用都将大幅度增加数据规模和
[1]
网络流量,对数据实时处理的速度提出了更高的要求 .
学术界和工业界也提出了很多提高数据处理效率和应对网络流量的解决方案.Pallis 等人提出了内容分发
[2]
网络 CDN(content delivery network) ,将网络资源存放到分布式的服务器上,而用户可以根据网络情况访问响
应速度更快的服务器上.但是 CDN 只解决了数据存储,而不涉及数据计算.边缘计算(edge computing) [3,4] 将服务
器部署到距离用户更小的边缘端,从而高性能的边缘服务器能够以更小的延迟处理用户的数据请求和流量.但
是边缘计算存在大量分布式的边缘计算集群,面对用户不同的计算任务需求,管理者经常需要将不同的计算环
境从管理中心迁移到相应的边缘服务器,这加大了应用的开发和部署难度.
容器化技术是当前学术界和工业界研究的热点问题之一,它能够快速直接在操作系统层级向用户开放多
个独立的用户态空间实例,并支持携带程序包与软件库,让容器直接在机器部署并运行,并在不同计算实体上实
现资源的快速迁移,省去了开发人员繁琐的资源部署和配置步骤.研究人员也提出了一些容器化的边缘计算平
台,改善了边缘计算中环境迁移困难的问题.但由于其分布式架构的特点,边缘计算平台仍然存在着分布式资源
难以统一管理的问题,包括网络流量和计算资源的管理和调度等.因此,我们需要改进现有的架构,开发一种方
便部署、管理和统一调度的边缘计算平台.
本文中,我们提出了功能分发网络 FDN(function delivery network),能够有效管理和调度分布式边缘服务器
[5]
的计算资源,并结合无服务化计算(serverless computing) ,为用户提供了访问计算资源的接口.我们将网络分成
了控制器、DNS(domain name server)以及边缘计算集群.其中:DNS 会解析用户的地址以及提交的任务等信息;
而控制器会收集网络流量和用户的信息,计算出一个容器编排策略,将任务对应的容器分配到不同的边缘计算
器,最小化任务的计算延迟;边缘计算集群会根据编排策略将相应容器部署并运行,并最终将任务计算后的结果
返回给用户.FDN 保持了边缘计算中网络延迟小、响应速度快的优点,同时,通过中心化控制器统一管理网络中
的边缘计算集群和流量信息,实现了分布式资源的收集、管理和调度.另外,通过容器技术并结合无服务化计算,
FDN 将计算任务函数化,实现了计算环境的快速迁移.
由于不同的容器编排策略会对系统的计算性能产生影响,因此在 FDN 中,我们需要考虑容器编排的效率问
[7]
[6]
[8]
[9]
题.目前,工业界存在一些容器编排工具,例如 Mesos ,Kubernetes ,Yarn ,Borg 等,但它们不能取得很好的编
排性能.一方面,它们采用的是低效的容器编排策略,例如先来先服务等;另一方面,它们没有考虑计算任务的数
据结构.对于以有向无环图(directed acyclic graph,简称 DAG)作为底层的数据结构的复杂计算任务,可能存在着
多个子任务,并且子任务间存在着数据依赖和执行顺序要求,因此,我们需要考虑不同容器的编排顺序.同时,目
前的编排器只支持单一数据中心,无法在多集群系统中实现跨集群的容器资源编排.
为了在边缘计算平台中取得更好的容器编排效果,本文为 FDN 系统设计了一种基于启发式的跨集群容器
编排策略.我们证明了计算最优化容器编排问题是一个 NP 难问题,无法在多项式时间内解决.因此,我们开发了
基于启发式的容器编排算法.它综合考虑了有向无环图任务中子任务的先后执行顺序以及每个子任务的计算
量、计算需求等信息,同时考虑了用户到集群的访问延迟以及集群本身的网络流量、闲置资源等信息.算法会