随着科技进步,各种技术名词也在快速发展。云计算、物联网、雾计算,相信这些名词早已进入大家的视野。其中,雾计算的概念2011年由Cisco提出,相对较新。时至今日,雾计算已经成为研究的热点和重点,并被业界寄予厚望。
然而,我们仍能看到对雾计算没有根据的质疑,无外乎两种:
不就是本地服务器吗?
云里雾里的,炒作呢吧?
对于这种质疑,用这些来进行具体的阐释。
从物联网说起
智慧城市、智能家庭,种种可预见的物联网应用在未来将极大地方便人们的生活。然而目前市场上智能终端设备的智能程度普遍令人不满。那么这个“智能”应来自哪里?怎样才能保障设备的智能呢?
计算机智能的基础就在于其背后的资源,如CPU、内存、硬盘、网络带宽等计算资源(更确切的说法,会将CPU、内存归类于计算资源;硬盘归于存储资源;带宽归于通信资源。为了简化,统一将它们称作计算资源);视频、温度、光线强度等传感器提供的数据资源;当然还有电力等等。
在这些资源中最核心的就是计算资源,通过计算提取数据中的知识、做出决策;通过存储来保存知识库,从而根据历史经验保证决策准确,做出预测;通过通信完成设备间的沟通,实现知识与决策的分发。基于以上,才能给用户智能的服务与体验。
那么现在设备的不够智能,症结是否在于设备的CPU不强,内存硬盘不够大呢?
终端的不足
我们无法想象把基站安装在每部手机上,同样的,我们无法想象每台设备都拥有大量资源,这将大幅度提高成本,无法形成有效的解决方案。
当资源不足时,一个直观的想法是将计算任务交给其他计算能力强的设备。物联网中有大量的终端设备,它们无法在本地完成计算做出决策,那么应该由谁来解决终端设备的资源不足呢?大家想到了云。
云的不足
云计算平台为云用户提供数据中心中的资源。近十年来,云计算充分的向人们展示了它的优越性:
“无限”的资源池
大量用户共享资源池带来的廉价资源
随时随地用任何网络设备访问
“快速”重新部署,弹性的资源租用
按需购买,自助服务
服务提供商把特定服务部署在云中,终端设备发送信息给服务,服务完成运算后将结果发回给终端,并将必要数据在云端存储。通过这种形式,云充分满足了终端设备的资源期待,也成为物联网生态系统中不可缺少的一环。
为了服务不同地理位置的用户,在互联网的多层次结构中,数据中心位于核心网络。核心网络距离终端用户较远,用户消息需要经过若干跳才能够到达。下图是简化的一部分网络拓扑。
图1 互联网网络拓扑图示
数据中心提供了高度集中的大量资源,然而只有云仍有一些不足。
高延迟:离用户较远的距离导致了较高的网络延迟。对实时性要求高的应用难以部署在云中。
网络拥塞:根据 Cisco 的预测,到2020年,全球将有500亿智能设备。相较而言,网络带宽的增长速度远远滞后。如果大量的物联网应用部署在云中,将会有数量庞大的传感器原始数据时刻不断的涌入核心网络,带来核心网络拥塞。
较低可靠性:安全,生命相关的物联网应用,一旦遇到应用失效,数据中心失效,或从终端用户到云平台的任何一段网络失效,都将带来重大的安全隐患。从终端到云的通信通路较长,失效风险较大;而在云中部署服务备份的成本也较高。
可见,对实时性,大数据,可靠性要求高的应用,云并不适合。人们需要新的计算模型来满足未来的应用,弥补云的不足。雾计算正是在这种背景下被提出的。
雾计算
雾计算是个很形象的名称,提出它的Ginny Nichols提了一个有趣的说法“雾是接近地面的云”。
这句话有两层含义:
雾计算和云计算有很多相似。如它们都基于虚拟化技术,从共享资源池中,为多用户提供资源。
接近地面。这也指出了雾和云第一个不同——位置。更具体些,是它们在网络拓扑中的位置。
图2 雾计算原始定义图示
上图是根据Cisco对雾计算的原始定义[1]所作的图示。在Cisco的定义中,雾主要使用边缘网络中的设备。这些设备可以是传统网络设备(早已部署在网络中的路由器、交换机、网关等等),也可以是专门部署的本地服务器。
一般来说,专门部署的设备会有更多资源,而使用有宽裕资源的传统网络设备则可以大幅度降低成本。这两种设备的资源能力都远小于一个数据中心,但是它们庞大的数量可以弥补单一设备资源的不足。
雾平台由数量庞大的雾节点(即上文中雾使用的硬件设备以及设备内的管理系统)构成。这些雾节点可以各自散布在不同地理位置,与资源集中的数据中心形成鲜明对比。
根据以上内容,可以总结出雾计算与云计算的不同:
更低:雾节点在网络拓扑中位置更低,拥有更小的网络延迟(总延迟=网络延迟+计算延迟),反应性更强。
更多:相比较云平台的构成单位——数据中心,雾节点数量庞大。
更广:雾节点拥有广泛的地域分布。
更轻:雾节点更轻量,计算资源有限。
这些不同给雾带来哪些优点,是什么使它成为物联网生态中又一不可或缺的部分呢?
雾的优点
除了上文中提到的低延迟,雾计算还有以下优点:
省核心网络带宽:雾作为云和终端的中间层,本就在用户与数据中心的通信通路上。雾可以过滤,聚合用户消息(如不停发送的传感器消息),只将必要消息发送给云,减小核心网络压力。
高可靠性:为了服务不同区域用户,相同的服务会被部署在各个区域的雾节点上。这也使得高可靠性成为雾计算的内在属性,一旦某一区域的服务异常,用户请求可以快速转向其他临近区域。
背景信息了解:因为分布在不同区域,雾计算中的服务可以了解到区域背景信息,如本区域带宽是否紧张,根据这一知识,一个视频服务可以及时决策是否降低本地区视频质量,来避免即将到来的卡顿;而对一个地图应用,则可将本地区地图缓存,提高用户体验。
省电:数据中心的电力消耗已经成为重要成本,其中冷却系统占有不可忽视的比重。雾计算节点因为地理位置分散,不会集中产生大量热量,并不需要额外的冷却系统,从而减少耗电。
基于以上优点,雾能够弥补云的不足,并和云相互配合,协同工作。
云+雾
雾计算自提出就是作为云计算的延伸扩展,而不是云计算的替代。如前文所述,在物联网生态中,雾可以过滤,聚合用户消息;匿名处理用户数据保证隐秘性;初步处理数据,做出实时决策;提供临时存储,提升用户体验。
相对地,云可以负责大运算量,或长期存储任务(如:历史数据保存、数据挖掘、状态预测、整体性决策等等),从而弥补单一雾节点在计算资源上的不足。
这样,云和雾共同形成一个彼此受益的计算模型,这一新的计算模型能更好的适应物联网应用场景。
用例
目前的城市道路监控系统,从监控探头到本地中心机房的通信跳数一般在3~4跳甚至更高,如果系统需要做出实时决策会面临网络延迟的挑战。
图3 用例——智能交通灯系统
图中所示是一个智能交通灯系统,除了监控探头作为传感器,还有交通灯作为执行器。雾计算的引入将为这一系统带来更多的可能性,如:
监控过程中,相比上一帧画面,通常只有一部分画面变化,而另一部分不变,非常适于压缩处理。对于需要人为监控的画面,雾节点将视频流直接转发 给中心机房;而其他监控视频只需要存储,对实时性要求不高,可以在雾节点处缓存若干帧画面,压缩后再传向中心机房。这样从雾节点到机房的网络带宽将得到缓解。
在雾节点处,可判断监控画面中是否有救护车头灯闪烁,做出实时决策发送给对应交通灯,协助救护车通过。
上例仅是智慧城市中的一个具体缩影,雾计算在智能电网,车联网,智慧家庭等领域的应用场景不胜枚举。
挑战
雾计算带来新的可能性的同时,也在安全性,高效利用资源,API等方面带来了新的挑战。雾使用大量分散设备,使中心化的控制变得困难;雾节点的资源 相对受限,需要节点间的协同配合,才能优化各服务的部署;“何时将服务迁移至何处”则是应对移动终端设备,动态的应用场景需要考量的问题。
随着雾计算概念的发展,雾被进一步扩展到“地面上”。雾节点不再仅限于网络边缘层,还包括拥有宽裕资源的终端设备。
图4 雾计算发展定义图示
终端设备与用户直接交互,数量庞大,在丰富雾的设备种类的同时,也带来更多动态属性,如电池电量,雾节点移动性等问题需要解决。