1.1 将数据放到最适合的地方处理:云计算、边缘计算和雾计算
2006年,时任谷歌首席执行官埃里克·施密特在搜索引擎大会上首次提出云计算(Cloud Computing)的概念,从此打开了云计算在商业应用领域的大门。云计算模式的重要基础是资源共享,该思想在信息技术领域的发端可以追溯到1961年人工智能之父约翰·麦卡锡提出的“效用计算”概念。当时的计算设备价格非常昂贵,是普通企业和机构难以承受的。在该思想中,分散的闲置资源将被整合,进而共享给多个用户使用。这个方法能有效弥合数据量和计算需求的增长与计算设备投入成本高而造成的计算能力不足的资源差距。通过将资源共享模式与支撑手段标准化,云计算技术逐渐成熟并且实现商用。在移动互联网时代,随着服务器集群化、虚拟化技术等关键技术的发展,云计算已经成为主流的商用数据处理模式。图1-1所示为云计算发展史上的一些重要事件。
图1-1 云计算发展史上的一些重要事件
云计算提供了大量的计算和存储资源。在一般的应用中,所有数据都先被发送到云端,然后由云端服务器对数据做进一步处理,之后再将处理结果返还给终端设备或用户。也就是说,传统的大数据处理是严重依赖云的。大多数情况下,企业将数据和应用程序集中在企业的数据中心或云服务器中,并由多个客户端设备访问。海量数据的存储和计算工作都在数据中心或云中进行,只将必要的数据(例如,查询和响应)传输回请求设备[1]。这种集中式架构有助于企业高效地管理企业应用程序、控制访问,并优化服务器,提高网络利用率。
随着无线通信技术的飞速发展,当前已进入了万物互联的时代。移动设备、嵌入式设备和传感器等终端正在不断创新,变得智能和普及,全球的移动数据呈现出指数级的增长。Cisco 2016年的全球移动数据预测报告显示,全球的移动数据将会在2021年超过49EB,达到2016年的7倍(见图1-2),2016—2021年增长率将达47%。事实上,由于短视频等多媒体应用的快速增长,截至2018年,全球移动数据的实际增长量比该预测值还要高近23%。面对海量的数据和自动驾驶等新型的应用对服务质量的严苛需求,云计算的问题正逐渐凸显出来。
图1-2 Cisco在2016年对全球移动数据的预测
云服务中心是集中式、远程的。对于物联网应用中的大部分数据,这样的存储和分析载体并不是最理想的。该模式的主要问题集中在以下6个方面[2] [3]。
1.物联网中的数据非常庞大和复杂,这些数据之间具有很强的冗余性、互补性和实时性,同时又是多源异构型数据,因此在分析与处理数据时需要更长时间。并且将数据从传感设备传输到云计算骨干网进行数据处理的过程需要经过较长的通信链路,其中可能包括接入网、核心网、网络交换机等(或局域网、城域网、广域网等)多个网络实体。数据在链路上的上传和下载都需要花费一定时间。为了使数据分析和相应的决策结果发挥作用,这些操作一般都需要快速实现,有的甚至需要实时进行,这就需要非常低的时延。比如大多数智能室内监控方案都需要支持快速响应(例如,如果在白天检测到客厅中存在运动物体,而居住者外出,则向居住者发送警报)。另外,在一些企业级物联网应用中,系统可能需要与所连接的资产进行实时(或接近实时)的物理交互,来避免机械故障。但是云服务这种集中化和远程的模式很难达到这样的低时延要求。
2.集中的数据处理方式需要有足够的网络容量来处理不间断的数据流,而海量的终端用户访问将会大幅度增加网络流量,可能引发服务中断、网络延迟等问题。并且云服务中心的接收能力始终有限,且当前许多云服务中心是按照流量计费的,基于云计算的集中化数据处理将会带来较高的处理成本。而且,纯粹的集中式环境不适用于对数据实时性要求较高的应用。例如,智能车辆需要与邻近的车辆和交通基础设施互相传输数据以防止事故。
3.云服务中心一般需要物联网终端通过网络远程访问,数据传输到云服务中心往往需要经过互联网中的多重网关、路由等的转发。这种长链路的多跳转发将会带来较长传输时延。这对于延迟十分敏感的应用,如视频流、在线游戏、控制反馈等是难以接受的,特别是在当处理需要本地实时响应的事件时。例如,当传感器检测到烟雾时需要立即自动启动灭火设备,在移动场景下用户的移动性和业务需求也需要被实时感知。
4.物联网与传统移动互联网不同,它包含了大量的行业应用,在行业法规和隐私问题的限制下,数据的完整性和机密性需要予以保证,某些类型的数据可能被禁止异地存储,并且如果把所有收集的数据都发送到云,带宽、存储、延迟和能耗(用于通信)等方面的成本也将会升高。
5.云服务器通信方式以IP通信为主,但多种多样的物联网设备与网络使云服务器不得不兼容如Zigbee、Z-Wave等其他协议,而这将耗费云服务器中的大量IT资源。
6.物联网的广泛分布特性使得其对与地理位置信息相关的应用有较大需求,云计算难以满足根据相关地理位置分布感知环境的实时要求,如遇到大规模传感网络要求传感节点定时向其他节点更新自身的信息的情形。
综合考虑以上情况,如图1-3所示将大量不同种类设备直接连接到云是不切实际的。为了解决云计算在面对物联网应用时的上述问题,网络和计算资源需要通过更合适的体系结构[1]进行配置。近年,有些企业开始将边缘计算引入物联网架构,这是物联网中最初的算力分层。在这种“云+边缘”的体系结构(见图1-4)中,计算资源可以同时分布在靠近数据源处的网络边缘(有时也称为“边缘云”或“微云”)和云服务中心,而云服务中心与“边缘云”的通信则借助通信基础设施来完成。数据可以在本地进行初步过滤、分析或进行临时存储,然后再上传到云端做进一步分析或永久性存储。这样的配置可以减少网络引起的延迟,控制网络成本,并将数据丢失或损坏的风险降至最低。
图1-3 大量不同种类的设备直接连接到云是不切实际的
图1-4 “云+边缘”的体系结构
边缘计算最初由IBM和AKAMAI联合提出,并在其联合平台WebSphere上提供基于边缘计算的服务。边缘计算是指在靠近数据源头的一侧,就近提供服务的技术。也就是说,边缘计算模式将网络服务的控制从中心节点(定义为核心)转移到另一端,即传感器本身(定义为边缘)。应用程序在边缘侧发起,以获得更快的网络服务响应;而云端仍然可以访问边缘端的历史数据。边缘计算在物联网传感器附近部署计算资源,并通过使用该资源进行本地存储和初步数据处理,来缓解网络拥塞的问题,同时提高数据处理与分析的速度,进而减少时延。最初的边缘计算设备无法协调应用对其计算资源的竞争,所以当多个物联网应用同时访问该设备时容易形成进程等待,反而增加了数据处理的时延。随着技术的发展,产生了移动边缘计算,即将移动蜂窝网中的基站作为服务提供节点,以及多通路边缘计算,即允许多种网络接入方式的移动边缘计算。
2009年,卡内基梅隆大学提出微小云(Cloudlet)的概念[4]。微小云是一种和云有着同样技术标准,但比云更加靠近用户的新型计算模式。它能够提供和云计算一样的服务,但所提供的资源有限,不像云计算那样能够提供近乎无限的资源,而由于跟云使用同样的技术标准,微小云可以与远程云端便捷地进行交互,这可以说是雾计算的雏形。Cisco在Cisco Live 2014会议上首次提出“雾计算”的概念[5]。Cisco强调:雾计算是依托于现今无处不在的物联网应用而产生的一种新型计算模式。相比云计算,雾计算是一种更加先进且使用场景更加广泛的计算模式,更具可伸缩性和可持续性。但是雾计算也不能完全取代云计算,它必须依托于云计算才能更好地发挥其作用[6]。因此,它与云计算的关系是相辅相成、相互联系的。
雾计算是专门针对目前物联网的挑战而产生的技术。它的主要思想是“将数据放到最适合的地方处理”。具体而言,是将云计算集中式处理事务的方式,有选择地部分下放到网络中的不同层次进行处理。在雾计算中,选择处理数据位置的一个合理方式是由相关决策的速度需求来决定。也就是说,对时间敏感的决策应该更接近产生和处理数据的实体。相比之下,历史数据的大数据分析更加需要的是云端丰富的计算和存储资源。
当前一个较为普遍的观点是:在学术界和工业界,术语“边缘计算”和“雾计算”可以互换使用。尽管在这两个概念最初提出时,它们处理数据的方式及实现智能和算力部署的位置都不尽相同。当时,边缘计算的主要思想是将计算资源推向数据源设备(例如传感器、执行器和移动设备);而雾计算则更关注构建具备层次化算力的网络基础设施,并使用雾计算网络中的计算资源处理来自多个数据源的数据,因此也是分层算力网络的代表性架构技术。彼时的边缘计算平台与垂直行业的业务关联紧密,不强调资源共享,因此一般不支持服务、软件即服务(SaaS)、平台即服务(PaaS)和其他与云相关的服务等基础设施。而这些服务均可以通过雾计算进行扩展。边缘计算和雾计算的主要目标都是减少端到端延迟和降低网络拥塞,随着分布式移动边缘计算、多通路边缘计算等概念的相继出现,它们开始协同发展。因此,本书并不强调边缘计算与雾计算的区别。