随着万物互联时代的到来,物联网设备数量呈爆炸式增长,在传统的云计算模型下,需要将终端设备产生的海量数据传输到云计算中心服务器,而海量数据传输所带来的时延无法满足当前多种实时性服务的时延要求。在此背景下,边缘计算的出现开创了能够在网络边缘处收集和处理数据的新型计算模式,为解决传统云计算模式中的时延、带宽和负载等问题带来了极大便利。
边缘计算通过将部分云中心的功能拓展到网络边缘,为终端设备提供有效的数据访问、计算、处理、存储、控制等服务,实现了从云到物之间无缝连接,被认为是实现万物互联的基础。
许多早期的物联网设备只能收集和发送数据去分析,然而,如今设备日益增长的计算能力允许现场执行复杂的计算,这得益于单片机嵌入式系统的发展使得越来越多的商用设备拥有足够的资源来运行较为成熟的操作系统,使其成为智能终端。同时,计算机技术与网络通信技术的发展可以实现物与物之间数据信息的实时共享,实现具有智能化的实时数据收集、传递、处理、执行,使得物联网(Internet of Things, IoT)具有巨大的潜力。
随着物联网的快速发展和4G/5G通信技术的普及,终端设备能够获得环境感知与增强的处理能力,该趋势使得人类社会正在走入万物互联(Internet of Everything, IoE)的时代。[1]将人、物、数据融合在一起,会得到一个规模巨大的网络,使数据共享和网络连接比以往任何时候都更加相关联和有价值,为个人、企业、国家、社会创造了前所未有的发展机遇。以万物互联为背景,大数据处理正在从以云计算为中心的集中式处理时代,跨入以万物互联为核心的边缘计算时代。
从云计算到边缘计算
云计算在过去十几年里是个非常热门的研究领域,它具有高可靠性、成本低廉、按需分配信息等特点,为人们解决大规模计算、资源存储等问题开辟了一条新路径。云计算是一些由计算资源集合(网络、服务器、存储)组成的服务池,通过多租户模式为多个消费者提供服务,服务池中的资源可以通过接入网络来获取,能够实现动态提供服务并重新配置。
云计算模式拥有不同的部署模型和服务模型,从给任何消费者提供云计算服务的公有云模型到部署各自的私有云计算平台,从提供基础计算资源的基础设施即服务(Infrastructure as a Service, IaaS)模型到应用作为能力的软件即服务(Softwareas a Service, SaaS)模型。云计算具有很多优势,如最小化管理代价、方便、弹性、按次收费、普遍性,使其得到广泛的应用。[2]这种大规模的商业模式计算数据中心有足够多的资源为巨量的用户服务。 然而,这种资源的集中化表现出终端用户设备和服务云之间巨大的平均距离,反过来增加了平均网络延迟和抖动。[3]除此之外,集中式云计算模型也已经展现出许多其他内在的问题。
(一)云计算线性增长的计算能力不能满足网络边缘海量的多源数据处理需求;[4]
(二)由于大规模的用户接入,网络带宽和传输速度已经达到瓶颈,同时,用户和云中心之间长距离的传输将会导致很高的服务延迟和计算资源的浪费;
(三)网络边缘的大部分终端用户一般是资源限制的移动设备,只有较低的存储、计算能力和有限的电池供应周期,所以它需要给相对于云数据中心较短距离传输的边缘卸载一些计算任务;
(四)在外包处理中,边缘设备的用户隐私数据容易被泄露。例如,精确的用户位置甚至移动轨迹。
因此,传统的云计算不能有效支持基于万物互联的应用服务。在过去几年,许多新的模式已经出现,如,雾计算,移动边缘计算和微云计算等,这些边缘模式的共同特征是将计算资源部署在网络的边缘。
2012年,思科提出了雾计算(Fog Computing)的概念,它起始的定义是“以云计算模式的拓展在终端设备和传统云服务器之间提供计算、存储和网络服务”,是为迁移云计算中心任务到网络边缘设备执行的一种高度虚拟化计算平台;
2013年,移动边缘计算(Mobile Edge Computing, MEC)的术语第一次被提出,用于描述网络边缘的服务执行,指的是在接近移动用户的无线接入网范围内,提供信息技术服务和云计算能力的一种网络结构;微云计算更加侧重于“移动”的概念,其处在移动终端和云平台之间,是被部署在网络边缘、具有移动性的小型数据中心。
类似地,有许多计算模式的目标是将云服务和资源带到距用户更近的地方,有效地处理边缘大数据问题。研究者将这种把从数据源到云计算中心路径之间的任意计算、存储、网络资源看作是一个“连续统”,[5]而边缘,可以是这条路径上的一个或多个资源节点的模式的计算统称为“边缘计算”。 在网络边缘的设备由于其对大数据的处理能力从数据消费者变为数据生产者。例如,数据获取、模式识别和数据挖掘。同时,这些终端设备提供丰富的服务接口,以边缘计算模型为核心,结合云计算中心一起为用户提供协作计算服务,二者相辅相成,应用于云中心和边缘端大数据处理,解决万物互联下云计算服务不足的问题。
显而易见,边缘计算与云计算相比,并不是为了取代云计算,而是对云计算的补充和延伸,为移动计算、万物互联等提供更好的平台。
边缘计算模型需要云计算中心的强大计算能力和海量存储的支持,而云计算也同样需要边缘计算中边缘设备对于海量数据及隐私数据的处理,从而满足实时性、隐私保护和降低功耗等需求。
边缘计算特性
边缘计算的架构是如图1中的“终端设备—边缘—云中心”三层模型,三层都可以为应用提供资源与服务。在这种架构中,边缘设备可以连接到边缘服务器上,可以彼此相互连接,也可以直接连接到云。这样的计算结构表明了边缘计算的执行可以发生在不同的层,像在核心云、边缘服务器和终端节点上。
尽管边缘计算的目的是执行一个应用中计算密集和延迟敏感的部分,边缘服务器的一些应用仍然需要和云中心通信来为全局应用同步数据。值得注意的是,分层代表了边缘计算中各组成部分的不同特征和计算能力。最低层为有较少计算能力的终端设备,主要订阅边缘服务。中间节点离终端用户更近的提供边缘计算服务。边缘服务器有时接入离终端节点距离很远的云中心。
图1 终端设备—边缘—云中心 三层模型架构
数据分层结构利于云中心和边缘的交互。在很多应用场景中,边缘节点收集传感器和设备产生的数据,做适当处理,向执行器发出控制命令。在过滤掉本地执行所需的数据后,将剩下的数据抽象虚拟化发送到更高层,在云端进行地理和时间范围内的全局化处理,这个过程的处理时间从秒级到分钟甚至以天为计量单位。所以,边缘计算必须支持许多类型的数据存储,从底层的短暂存储到更高层的半永久或永久存储。边缘端可以通过隔离需要在边缘存储的用户数据来延展云的功能,管理者可以直接在他的模型里定向分析、保护安全或者进行其他个性化定制服务。
边缘计算不能代替云计算,它是一个在终端设备和传统云计算数据中心之间提供计算、存储和网络服务的高度虚拟化平台。[6]边缘计算的很多特征决定了它是云计算重要的拓展。
(一)边缘分布、位置感知、低延迟。边缘计算由许多分布式的终端节点组成边缘网络。边缘节点在网络边缘为终端设备提供丰富的服务,因此,可以实现低延迟和环境感知的特性。
(二)分层组织结构。分层代表了边缘计算不同组成部分的不同特征和计算能力,云中心提供集中化海量资源,综合情况作全局决策。边缘节点使得数据的处理和服务更加靠近终端设备以降低时耗和功耗。(三)地理分布密集。随着万物互联的进一步发展,移动终端设备的数量达到了前所未有的程度,边缘的服务和应用分布式部署以应对地理密集的服务请求。
(四)实时交互。在边缘计算很多应用场景中,必须实现毫秒级的反应和交互,应用批处理必不可少。比如,车联网中的路边单元监控实时路况,必须做到多因素全方位检测并与来往行人车辆及时交互。(五)高异构性。边缘节点可能属于不同地理位置上分离的服务提供商,形成大规模异构的计算网络。边缘节点在网络架构的不同层中是高动态且异构的。
(六)安全性。通过减少信息需要传输的距离,窃听的几率会大幅度降低。利用基于邻近距离的认证技术,身份验证会得到增强。边缘计算的其他特性天然地增强了其安全性。 边缘计算实现的驱动力量得益于不同类型的技术。蓬勃发展的网络技术是实现延迟敏感型应用的基础,例如4G/5G、[7]认知无线电。边缘计算中的这些通信技术被用于设备到设备之间和设备到边缘服务器之间;拥有友好应用编程接口的软件开发工具箱辅助开发和集成新的可兼容性应用,并支持个性定制化的应用和服务;云计算利用集中化的强大的服务器处理计算密集的数据,边缘计算将云部分的能力带到边缘终端设备附近来最小化延迟,所以服务器也可以帮助小的资源受限的移动设备卸载计算任务。
为了处理边缘计算生态中边缘节点的高异构属性,需要一个通用编排平台来提供互操作性、软件可编程性和虚拟化。[8]互操作性允许异构边缘节点在相同架构下运作;软件可编程性使得应用开发者可以基于通用虚拟化硬件编程,边缘节点的底层硬件实现细节被屏蔽;虚拟化技术将边缘节点的资源划分为资源单元,如基于内核的虚拟机(Virtual Machines, VMs)和容器,允许用相同的物理资源产生逻辑上分离的资源,可以使得多个万物互联应用在不互相干扰的情况下共享资源。
边缘计算的应用
目前许多方面的服务已经应用到了边缘计算,如视频分析、智慧交通、智能家居、电子医疗、智能电网等。
视频分析。
视频监控和分析在过去的几年里已经得到了大范围的应用,相对于传统的将视频数据上传至云,边缘视频分析指的是在边缘设备上执行部分或全部的视频分析负载,比如实时性要求高的不同的人工智能检测算法,其在公共安全和反恐方面展现出显著的优势:一是低数据传输开销,二是低响应延迟,三是实现各种前所未有的应用程序。[10]由此,可以提取视频中有价值的信息传输到云做集中处理和决策。录像机和视频传感器获取并共享不同的视频内容,这些视频可以存储且有效管理以便之后使用。不同的安全应用可以自动从视频内容存档中提取所需数据。
智慧交通。
随着万物互联中软件、硬件和通信技术的快速发展,车辆配备了如传感器和车载计算机等设备。这些设备具有冗余的存储和计算资源,允许车辆交换信息并且以分布式方法与周围车辆和路边基础设施协同执行一些复杂的计算任务。通过车连车,车连边缘接入点、边缘接入点连边缘接入点的联通性和交互性,车联网的应用场景得到极大的丰富。边缘的移动性、低延迟、支持实时交互成为一个实现智慧交通的理想化平台。如,智慧交通灯边缘节点可以与传感器本地交互,基于传感器探测的信息,智能灯给靠近的车辆发送警告信号来阻止交通事故。
智能家居。
智能家居是以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。[11]智能家居配备了大量涌现的万物互联无线设备去探测温度、湿度、天然气等的剩余水平。[12]建筑中所有的传感器之间可以互相交换信息,联合它们的读数可组成有效测量数据。
传感器将使用边缘设备的分布式决策和激活状态来对测量数据做出反馈和响应。系统组件会协同工作来降低室内温度、注入新鲜空气或打开窗户。空调可以除湿或者增加空气中的湿度。传感器也可以根据人的活动做出相应反应(如,在人进入或者离开时打开或关闭灯)。可以在建筑的每层部署底层边缘设备,在执行的更高层协作处理。在这个场景下的边缘计算,智能家居可以感知其组织构造、内外部环境来节约能源、水和其他资源。
电子医疗。
边缘计算在这几年里已经成功应用到各个方面,也被经常用于医疗。在万物互联中,电子医疗服务往往是延迟敏感的应用,数据的实时处理和极短的事务反应时间在医疗看护中是至关重要的,边缘计算使得终端用户和医护人员可以实时监测从不同传感器产生的与健康相关的数据,如体温、心率、血压、脉搏等,如果病人出现紧急情况,可以即刻实施相关治疗措施或通知附近的医护人员,这大大地提高了有效抢救时间的利用率,增加了病人康复的可能性,降低了造成不可逆损伤的概率,甚至是挽救紧急病人的生命。
起初,云计算也被用于电子医疗应用,但因为延迟的问题并没有获得巨大的成功,边缘计算模式的出现为解决这个问题带来了新的希望。例如,可以利用边缘计算来探测、预测、防止中风病人摔倒,跌倒探测算法可以动态地部署在边缘设备和云资源中,文献[13]中的实验可以得出边缘—云中心系统比起单独使用云计算方法有更短的反应时间并消耗更少能源的结论。
边缘节点可能收集到病人很多隐私的信息,可以在不传到云中心或通知医生的情况下,自主产生辅助治疗的决策。总的来说,基于边缘计算的电子医疗系统带来更低的时间延迟、移动支持和位置感知并可从一定程度上解决病人隐私担忧方面的问题。
智能电网。
智能电网就是电网的智能化(智电电力),也被称为“电网2.0”,它是建立在集成的、高速双向通信网络的基础上,通过先进的传感和测量技术、先进的设备技术、先进的控制方法以及先进的决策支持系统技术的应用。[14]作为万物互联边缘计算的一个典型的应用场景,智能电表和微电网在网络边缘设备上作为能源负载均衡应用。
基于可用性和能源要求,设备可以自动转换成可代替的能源,比如,太阳能和风能。边缘节点可以自动观察能源消耗和分布模式。在大范围能源网络部署的情况下,云计算中心可作为集中策略的工具处理巨量数据使得应用健壮且动态,边缘和云中心的协作可以实现电网的可靠、安全、经济、高效、环境友好和使用安全等目标。
边缘计算的挑战与机遇
边缘计算面临的挑战涉及很广的范围,从异构和资源受限节点的计算任务分解到云—边缘接口的定义;从分布计算的状态一致性到易失性介质的弹性存储;从经济激励的价格到可扩展的安全对策。这些问题的基础是在“本地”和“全局”之间寻找内在平衡,我们在云和边缘之间权衡,来决策何处分配功能以及如何将它们重新组合。例如,边缘计算在异构节点(终端用户、网关、本地服务器或者数据中心)和一系列基础软件上执行一个复杂的应用,这个应用的编排绝对是一个重大挑战,要考虑高动态环境的复杂性、终端用户设备安装的不同边缘应用和支持不同管理域的必要性来适应基础设施的极度异构性和复杂的外部环境。 万物互联场景下,由于边缘计算的特性,在不同的服务级应用的实现中,展现出特定方面的需求和挑战。
(一)延迟最小化。高延迟已经成为基于万物互联智能应用亟待解决的一个严重问题。边缘计算使得数据分析在网络的边缘进行,可以支持时间敏感的功能。这是很多商业应用所必须要求的,比如,拥有毫秒级反应时间的嵌入式人工智能(Artificial Intelligence, AI)应用。作为一个解决方案平台,边缘计算必须保证满足服务质量且及时地交付任务,以达到延迟敏感应用的需求。
(二)动态和自治。由于万物互联应用的启动-关闭转换和边缘节点的移动性,边缘网络的状态是动态改变的,同时,会有一些不可靠边缘节点接入到网络,边缘计算要能够自治地处理这些动态情况,支持边缘计算的架构需要是动态可扩展的,而且要能够考虑到个人喜好,满足定制需求。
(三)服务质量。万物互联应用能指定其服务质量(Quality-of-Service, QoS)需求,如,延迟时间、吞吐量和数据位置,来满足关系感知的卸载处理。边缘计算需要可以决定在一个共享的边缘网络中同时部署多少个应用,并达到用户要求的服务质量参数。
(四)网络管理。万物互联场景下,由于海量设备的接入,产生许多常见网络现象。[15]例如,不恰当的虚拟化支持、缺乏无缝连接和低效的拥塞控制,降低了整体的网络性能。在边缘计算中有效使用网络资源对万物互联来说是最基本的。
(五)成本优化。应用一个合适的平台来实现边缘计算必要的可扩展基础设施的部署,牵扯到前期大量的投资和操作花费。[16]这些花费的大部分与网络节点的布局有关,所以,为了最小化整体成本,边缘节点的布置需要精心规划和优化。在合适的位置部署最优化的节点数量可以大幅降低资金花销,边缘节点的最优化布局可以最小化运营成本。
(六)能耗管理。边缘计算需要分配终端和云之间的计算、存储和控制功能,使得这个“连续统”的可用资源得到充分的利用,从而优化整个系统的效率和性能。能耗管理是一个基于万物互联场景的重要目标,边缘计算需要能源有效的万物互联设备和应用。数以亿计的万物互联节点需要一个智能感知平台获取能源以确保可扩展性、减少成本且避免频繁的电池替换来支持不同应用。
(七)资源管理。在应用级服务实现时,最优的资源管理也是关键的。适当的资源管理包括资源协调、可用资源估计和适当的负载分配。[17]
(八)数据管理。目前,海量的万物互联设备会产生巨量的数据需要以实时方式管理。在边缘计算中,需要有效的数据管理机制。万物互联设备产生数据的集合和传输也是数据管理中的一项挑战。
(九)安全与隐私。万物互联场景下的安全不同于其他环境,主要是因为万物互联设备受限的资源属性。边缘计算由于其分层结构特性可以天然地为资源受限的设备提供一定的安全保证,也因为如此特性,使得边缘计算收集的数据更加靠近用户端,可能牵扯到隐私问题。这种情况下,万物互联的安全泄露更加具有毁灭性,而边缘节点监测和操纵物理设备的能力是有可能威胁生命的。解决安全与隐私的问题,是实现万物互联与边缘计算的基础。
边缘计算将会带来许多新的商业机会,赋能云至今都不能有效解决的问题。[18]例如,作为云中心的代理为许多不能直接有效连接到云的终端设备提供云服务。基于边缘的服务范围正在逐渐扩大,云和边缘将会融合成统一的端到端的平台并且提供集成服务和应用,为突破现有的云计算商业模式创造机会,边缘计算的商业模型涉及到多方参与者,网络服务提供商拥有边缘服务器和网络设备,终端设备和用户可能既是客户端又是服务端。为了构造一个完全的商业模型,需要决定如何计算和监控资源,对于众多边缘参与者,如何根据冗余的资源获取激励报酬也是边缘计算商业化进程中亟待解决的重要问题。