
1.1 边缘计算
随着通信技术的发展及“万物互联”概念的兴起,连接到互联网的用户数量和设备数量都在迅猛增长,形成了规模庞大、结构复杂的物联网(Internet of Things,IoT)环境。据《思科年度互联网报告》预测[1],互联网用户数量将从2018年的39亿增长到2023年的53亿,机器对机器(Machine to Machine,M2M)连接数量也将从2018年的61亿增长到2023年的147亿。这些用户和用户、设备和设备之间的复杂连接产生了庞大的通信数据及纷繁复杂的请求,为处理这些对延迟要求极为苛刻的服务请求和相应的数据,传统的中心云网络已经不再适用,取而代之的是一种新型的计算范式—边缘计算。
1.1.1 什么是边缘计算
边缘计算(Edge Computing,EC)是一种新型的网络技术,它能够在移动网络边缘、无线接入网络(Radio Access Network,RAN)等靠近移动用户的位置上提供远优于云计算的高响应、低延迟的服务[2]。换言之,边缘计算旨在靠近数据生成的网络边缘部署具有存储、计算、通信等多种能力的设备,在数据生成的源头完成处理,并将结果返回给用户或终端设备,避免远距离传输产生的高延迟,提升用户体验。边缘计算架构示例如图1-1所示,边缘计算网络通常由三层构成,自底向上分别是用户层、边缘层和云层。

图1-1 边缘计算架构示例
1.用户层
用户层主要由两部分构成:多种多样的终端设备和将它们连入边缘网络的网络转发设备。首先,终端设备,如各类传感器、摄像头、智能手机、计算机、无人机、车辆等,是网络中传输数据的源点,通过与环境直接进行交互获取数据信息,并对采集到的数据进行分析和处理。然而,终端设备往往无法完成计算量庞大、能耗要求高的任务,这种情况通常需要更高级的处理设备参与,例如边缘服务器或云中心服务器等。
部分终端设备无法直接接入边缘网络,因此辅助终端设备接入网络的部分设施有时也被划分为用户层设备。一方面,部分终端设备分布在各自的局域网中,不与互联网直接连接;另一方面,考虑到终端设备功耗约束,部分终端设备只能使用蓝牙等低能耗通信协议,无法直接与IP网络通信,要通过网关、本地数据中心、蜂窝网络集成设备等设施转发才能接入边缘网络。随着技术的进步和设备的更新换代,某些网络转发设备除了转发网络报文,也具有一定的数据操作能力,例如:树莓派(Raspberry Pi)、ASUS Tinker Board等基于Linux系统的部分IP网关设备可以轻松地托管Docker镜像等虚拟化环境[3-4]。由于,IP网关设备并没有较为标准、严格的区分,此设备也可作为边缘层节点进行数据传输[4]。
随着5G技术的发展,新兴应用百花齐放。这些应用在提供令人眼花缭乱的画面的同时,也需要海量的运算能力及存储空间支持,比如扩展现实(Extended Reality,XR)[1]、远程协作、多人游戏等应用对画面、声音、延迟等因素存在诸多限制。然而,大多数用户端设备不具备较强的运算能力或较大的存储空间,因此,用户需要将计算或存储任务发送到上层网络中能力更强的服务器进行处理。在传统的云计算网络中,任务通过云服务器进行整合、分析、处理,在边缘计算中,任务主要通过靠近用户的边缘服务器执行。
2.边缘层
边缘层指从数据源到云数据中心的路径上,位于网络边缘的所有计算与网络资源[5]。边缘层设备通常由多种通信设备与服务设备构成。常见的通信设备包括:路由器、网关、交换机、接入点、基站等;而服务设备主要指各类部署在数据源周边的服务器及具有处理能力的CPU、GPU等运算硬件。
出于降低延迟的考虑,网络服务供应商(Internet Service Provider,ISP)通常会将自己的应用部署在边缘服务器的虚拟机上,从而为网络通信设备覆盖到的用户提供支持。这种技术通常被称为任务卸载(Task Offloading),它允许用户只承担数据收集与转发的任务,而不需要为应用付出太多的计算资源与存储资源,例如云游戏[6]的服务流程。在处理用户发来的请求过程中,数据会通过传输设备从终端设备发送到边缘处理节点或边缘服务中心,必要时边缘服务器还会向中心云服务器申请缓存的数据,作为模型的训练集或处理当前请求的历史经验。
为了平衡任务负载,相邻的各个网络服务器之间也可以相互协作,承担对方用户发送来的计算与存储任务。在中心化的边缘场景中,有关计算任务与处理位置的调度由边缘层控制系统完成;而在分布式系统中,则会由部署在每个服务器上的负载均衡服务自动调度。因此,考虑对用户请求的处理流程,根据不同的应用类型,将边缘层分为系统级、边缘主机级及网络[7]。边缘层架构的参考模型如图1-2所示。

图1-2 边缘层架构的参考模型
3.云层
“云”通常指的是一组公开或私有的服务器,是整个边缘网络环境中拥有最高计算能力、存储能力的设备。除了执行用户发来的请求外,云服务器也可以用来托管、编排或管理不同边缘节点上的服务或作为中心控制器进行负载均衡、请求调度等多种工作。此外,“云”也是某区域范围内的数据中心(Data Center)。在边缘节点从开始建立到销毁的整个过程中,都需要大量数据的处理、转发、存储等过程,这些数据一方面来源于边缘周边的数据中心,另一方面也可以是云端直接传输。边缘节点只有申请到必要的数据后,才能正常地执行任务。
边缘计算作为传统云计算的改良方案,具有以下几个方面的优势:
1)延迟低。由于边缘计算能够将处理请求的服务器部署在靠近数据源的位置上,与全部传到距离较远的云计算中心相比,传输距离更短,传输速率更高。因此边缘计算能够有效地降低延迟,保证高效率网络协作和服务传递,同时增强用户的体验。
2)可靠性高。在边缘计算中,所有的边缘服务器和IoT设备都位于用户附近,当某个用户断开连接或出现网络故障后,可以更及时地更新、排查或重新连接。相反,在云计算中,若数据在上传到中心云服务器的过程中出现故障,设备状态更新或重新连接较为困难。
3)可扩展性强。边缘计算在边缘端部署了大量的服务器,因此更容易地接入各种IoT设备,与IoT设备进行数据交换和通信也更加方便。
4)安全性好。云计算架构让所有数据都传输回主服务器,在传输与用户操作过程中,极易遭受到攻击,比如:DDoS攻击,影响服务的部署和运维。首先,如果使用了边缘网络,便可以利用不同的数据中心和设备分配数据处理工作。因此,攻击者难以通过攻击一台设备来影响整个网络。其次,如果数据是直接存储在本地的,那么可以利用本地安全控件对数据进行监视,极大增加了攻击的难度。最后,数据在近源端执行备份与更新更加方便,更好地保证设备和数据的安全性。
基于上述的几个优点,边缘计算架构受到学术界、工业界的广泛关注,被认为是实现下一代互联网愿景的关键技术,如:IoT[8]、触觉互联网[9]和元宇宙(metaverse)等。
1.1.2 边缘计算的背景与发展历史
2002年,亚马逊公司首先提出了基于网络的零售服务,并创建了子公司“亚马逊网络服务”,开启了历史上第一例基于网络的商业服务。2006年,谷歌的CEO埃里克·施密特使用“云”这一概念来首次描述在互联网中提供服务这一商业模式[10]。同年3月,亚马逊上线了“简单存储服务”(S3),并在8月推出了“弹性计算云”(EC2),为其他网站提供诸如存储、计算等多种网络服务[11-12]。这是云计算架构第一次在商务环境中大规模使用,自亚马逊公司起,众多公司争相效仿,最终形成了以云计算为中心的基本网络服务架构。
2009年,卡内基梅隆大学教授Satyanarayanan首次提出了Cloudlet概念[13]。Cloudlet也被称作“微云”,是一个具有一定处理能力的微型数据中心。它与互联网紧密相连,能够像中心云服务器一样处理移动设备发送的部分请求。
随着技术的发展,网络边缘的数据开始了爆炸式增长,单纯使用传统的云计算架构难以满足越来越苛刻的各类要求。在这一阶段中,边缘计算技术得到了广泛的关注。2012年,思科公司提出了雾计算的概念[14]。形象地说,云飘在天空之上,而雾萦绕四周。同边缘计算一样,雾计算致力于将计算能力部署到临近用户的网络边缘,并依靠广泛的雾节点实现对用户的全方位覆盖,以此加速用户计算。
在2013年,诺基亚西门子网络和IBM公司首次提出移动边缘计算(Mobile Edge Computing,MEC)这一概念,并开发了第一版MEC平台。在这一阶段,MEC的概念只有本地范围,还没有考虑到应用程序迁移、本地与边缘的交互操作等一系列问题[15]。2015年,欧洲电信标准协会(ETSI)给出了MEC的标准定义,并成立了行业规范组推进MEC的标准化工作[2]。同年,国际电信联盟(ITU)明确5G的主要应用场景为增强型移动带宽、海量机器类通信与超高可靠性低时延通信[16]。随后,MEC和网络功能虚拟化(Network Functions Virtualization,NFV)、软件定义网络(Software-Defined Networking,SDN)一起被欧洲5G基础设施公私合作伙伴关系(5G PPP)认定为5G网络的主要新兴技术[17]。
自2015年开始,“万物互联”概念得到广泛关注。MEC作为这一概念的重要技术支持,引起了国内外无数研究人员前所未有的重视。据Scopus统计[18],在论文标题、摘要、关键词中包含“Edge”和“Computing”的文献搜索量在2015年前后发生了快速增长,尤其是2017年以来,边缘计算方向的文献数量呈现飞跃式上升,如图1-3所示。

图1-3 边缘计算相关文献数量变化
2016年,欧洲电信标准协会将MEC从移动边缘计算扩展为多接入边缘计算(Multi-access Edge Computing)。同年,美国自然科学基金委将边缘计算列为美国未来研究的突出领域,取代了原本云计算的位置。12月,边缘计算联盟(Edge Computing Consortium,ECC)成立,主要成员包括ARM、中国信息通信技术研究院、华为等多家组织或企业。截至2021年7月,ECC会员数量已达到300多家。同期,ECC起草了多部边缘计算白皮书,为边缘计算的发展起到了重要的引领、推动作用。同年,全球首个以边缘计算为主题的学术会议—ACM/IEEE Symposium on Edge Computing于10月27—28日在美国华盛顿召开,这标志着边缘计算这一新生领域的规模和影响力达到了新的高度。
2017年,亚马逊、微软、谷歌等公司相继发布了多种与边缘计算相关的新产品,范围包括边缘计算服务器、边缘计算解决方案、硬件芯片、软件堆栈等。同年,国际电工委员会(International Electrotechnical Commission,IEC)发布了垂直边缘智能(Vertical Edge Intelligence,VEI)白皮书,书中着重讲解了边缘计算对于工业、制造业等依托生产链行业的重大价值,通过引入边缘计算架构,在保证精度的基础上,有效减少能源消耗、降低每个生产环节的制造时间,同时在一定程度上降低前后两个环节之间的耦合度。在2017年,以边缘计算作为关键词、标题的论文数量陡然增加,边缘计算也进入了井喷式发展阶段。
2018年,由施巍松教授团队编写的《边缘计算》出版,这是国内边缘计算方向第一本较为全面的理论方向书籍[19]。同年5月,Intel和风河两家公司建立StarlingX作为边缘计算新的开源平台,由OpenStack联盟管理。同年7月,由中国计算机学会(China Computer Federation,CCF)发起的边缘计算技术研讨会(SEC China)在长沙召开。同年9月,以“边缘计算,智能未来”为主题的边缘智能论坛在上海召开,表明了中国对边缘计算发展的支持与关注。与此同时,云原生计算基金会(Cloud Native Computing Foundation,CNCF)与Eclipse基金会展开合作,成立了Kubernetes物联网边缘工作组,推进Kubernetes在边缘环境中的使用,表明了技术社区对于边缘计算方向的密切关注。
2019年,权威IT研究与顾问咨询公司Gartner出版了《边缘计算成熟度曲线2019》报告[20]。文中对区块链、边缘安全、微云、边缘网络等多种边缘计算相关技术的发展情况进行了描述,表示边缘计算技术已经进入期望膨胀期,在2~5年内将达到完全成熟。同时,ECC与绿色计算产业联盟(Green Computing Consortium,GCC)联合发布了《边缘计算IT基础设施白皮书1.0》,旨在构建边缘计算IT基础设施规范[21]。11月28日,由边缘计算产业联盟主办的2019边缘计算产业峰会在京正式召开[22],体现出我国政府对于边缘计算行业发展极高的重视程度。业界也涌现出了多个成熟的边缘计算框架,包括KubeEdge[2]、EdgeX Foundry[3]、StarlingX[4]等。综合来看,目前边缘计算产业理论已经步入行业落地阶段,未来发展可期。
2020年至今,虽然疫情对多数产业造成了严重冲击,但是反而推动了数字业务的高速发展。到2022年,企业生成的超过75%的数据,都将在传统的集中式数据中心或云端之外的位置上接受处理[23]。《边缘计算与云计算协同白皮书2.0》[24]指出,边-云协同、边缘智能已经成为核心能力发展方向。
1.1.3 边缘计算的相关技术
1.云计算
云计算通常指传统的中心式的数据存储或任务处理架构,主要流程是用户先将所有待处理的数据上传到云端,随后服务提供商或基础设施提供商在中心云服务器上部署服务并进行处理。云计算网络整体呈现为二层的星状结构,其中心节点为云服务器,边缘节点为用户。然而,随着用户量的增多,这种脆弱的星状结构难以为继,可能会出现单点故障、网络拥塞等问题,因此催生了边缘计算的出现与发展。
2.雾计算
雾计算是由思科公司于2012年提出的概念,用于更好地刻画、描述边缘节点在整个网络架构中的位置和地位。其中,“雾”是形容临近用户的服务器数量多、覆盖范围广,也与云计算作为呼应。在雾计算兴起的一段时间内,不少组织对雾计算和边缘计算的概念进行了区分,比如:开放雾联盟(OpenFog Consortium)曾提出,雾计算更加强调边缘服务器在边缘计算中的地位,更加着重优化边缘服务器上遇到的瓶颈与挑战;而边缘计算则更加重视边缘设备本身的异构性、本地能力等相关因素,通过优化处理请求的算法或通过模型压缩等方式优化边缘计算过程。时至今日,雾计算的概念已经归并到边缘计算当中,“雾计算”这一名词渐渐地也不再被提起。
3.5G
5G是第五代移动通信技术(5th Generation Mobile Communication Technology,5G),是边缘计算兴起的关键技术。2013年,欧盟决定投入5000万欧元研发5G,并计划在2020年建立成熟完备的5G标准,同年4月,我国IMT-2020(5G)推进组第一次在北京召开会议,标志着5G技术的发展竞争正式展开。2014—2017年,5G技术快速发展,并在2017年12月21日的国际电信标准组织3GPP RAN第78次全体会议上,宣布5G NR首发版本正式冻结。2018—2021年,短短的三年间,5G已经完成了从理论突破到实践落地,相继在多个国家开始运行,成了建设IoT和MEC生态的重要一环。相比于4G通信1Gbit/s的通信速度,5G通信能够实现10~20Gbit/s的峰值传输速率,1ms的通信延迟,10Mbit/s·m-2以上的流量密度,能够轻松满足目前应用所需的各种带宽、时延要求,是未来发展不可或缺的中心技术之一。
如果说边缘计算是一个理想的网络结构模型,那么5G凭借着高速率通信、低延迟、节能、低成本的特性,成功为边缘计算的落地与边缘智能提供了有力保障,是边缘计算能从模型顺利落地的主要原因之一。
4.大数据
大数据是指数量巨大、结构复杂的数据集合。计算机需要在可接受的时间范围内,对这个数据集合进行调用、存储、处理等操作,最终成为能够辅助用户决策的有效信息。自2004年前后,谷歌公司发表了与分布式系统相关的三篇论文[25-27]后,大数据方向开始了飞速发展。2006—2009年,并行计算和分布式系统开始出现,同时也涌现了如Hadoop[5]等成熟的大数据框架,为大数据的发展提供了良好的支持。2010年以来,伴随着用户设备数量的激增,网络中数据碎片化、分布式、流媒体的特征更加明显,大数据的价值逐渐凸显。如今,大数据已经逐渐成为至关重要的、内容广泛的研究方向,遍布于边缘计算的方方面面。对于大数据的存储、管理、分析,也成为所有相关从业者在深入探索中绕不开的挑战。
5.NFV
NFV,即网络功能虚拟化,是指将网络上的某些传统功能,如防火墙、交换机等,抽象成为虚拟功能,通过将这种虚拟设备部署到多种不同的网络、不同的设备中,实现网络功能的通用性。传统的虚拟设备如虚拟机(Virtual Machine,VM)、容器(如Docker)、微内核,其上搭载的各种通用功能便是NFV的实例,这些功能都已被广泛部署和应用。
6.SDN
SDN是一种新型的网络设计理念。在传统的网络架构中,每个路由器都拥有自己的转发规则,因此同时管理网络中的每个路由器是很困难的。SDN依靠数据层与逻辑层分离,降低了网络配置与管理的成本。具体来说,SDN将网络改造为应用层、控制层、基础设施层及南北两向接口,SDN的网络架构如图1-4所示。

图1-4 SDN的网络架构
通过SDN控制层以及南向接口,就能实现针对基础设施层所有数据流统一的配置、转发、控制等管理操作。
7.云-边-端协同
由于用户需要频繁地与边缘服务器、云服务器进行沟通与交流,因此三层之间的协同至关重要。从交互的对象来看,一共有三种协同方式[28]:
1)端-边协同的方式主要指用户生成的请求可在本地执行或卸载到边缘服务器上执行,无须云服务器的资源就能解决。端-边协同主要解决的问题有:降低请求延迟和移动设备能量消耗[29]、最小化动态请求对性能的影响,或者探索端-边设备协作中的设备异构性等。
2)边-边协同通常发生在边缘端处理用户请求时,当某个边缘服务器缺少请求对应的服务或单点负载过高时,需要通过多个边缘服务器之间的通信完成资源请求或任务调度。
3)云-边协同最常发生在云中心服务器内容分发网络搭建的过程中,也就是在多个边缘服务器中从云中心服务器获取对应的服务、数据资源时产生。云-边协同是边缘计算区别于云计算的本质,即将服务从云端转移到靠近数据源的边缘层这一过程。除此之外,针对部分边缘服务器无法处理的请求,任务调度器也会将之传递给云服务器进行处理。
云-边-端协同技术涉及的内容十分广泛,本书将在第10章作进一步的阐述。
8.任务卸载
任务卸载主要指将本来需要在本地处理的请求,转发到边缘服务器上进行处理,从而降低用户本地的计算压力与存储压力。为了能在边缘服务器上处理请求,就需要将服务提前部署在边缘服务器上,等到请求到达时正常处理。按照被卸载任务划分的不同粒度,分为全部本地执行、全部边缘执行或部分本地、部分边缘执行。其中全部边缘执行有时也包括将部分延迟不敏感的请求交给云端执行,从而获得全局的最优解。关于任务卸载更详细的信息,本书将在第6章进行介绍。
9.边缘缓存
边缘缓存通常指在边缘服务器上缓存一定量的数据,当用户申请数据时,边缘服务器不必向数据中心请求数据,而是可以直接将需要的内容返回给用户,从而大大提高请求的服务质量。尽管增加缓存势必会增加一定量的开销,但是这种方法对于延迟的减小是十分显著的。相比于其他场景,在数据缓存中,能耗与延迟的矛盾更加直观且明显。
增加数据缓存也可以抵御单点故障,从而提高整个网络的安全性、可靠性。如何高效、实时地刷新数据缓存区域,是目前学者最为关注的方向之一。本书将在第7章围绕智能服务缓存与优化的相关问题进行更详细的展开。
10.联邦学习
联邦学习(Federated Learning,FL)是一种分布式机器学习技术框架,用于解决网络中用户隐私的安全性问题。联邦学习有三大构成要素:数据源、联邦学习系统、用户。在联邦学习系统中,各方数据源进行数据预处理,共同建立联邦学习的训练模型,并将输出结果反馈给用户。根据参与各方数据源分布的情况不同,联邦学习可以被分为三类:横向联邦学习、纵向联邦学习、联邦迁移学习。本书将在第5章详细介绍不同的联邦学习方法。
11.无服务计算(serverless)技术
无服务计算技术指仅仅在服务器上部署服务用户的功能,开发者不需要关注支撑服务运行的设施环境,只需要专注于业务开发与运维。在传统的MEC中,服务供应商会将自己的服务放置在边缘服务器上,这种服务通常指虚拟机、软件程序、容器镜像等。随后服务供应商需要关注和管理自己的服务执行情况,比如,针对短时间内的巨大用户流量,服务供应商可能需要重新部署自己的服务。而在无服务计算中,应用将与服务器解耦,应用程序占用的资源预估,服务器的维护、配置都将由云平台或云厂商完成。针对波动的流量,无服务计算可以弹性地为服务添加或减少资源,开发者仅需要根据租用的资源量或使用时间付费即可,大大降低了服务供应商的压力。