Next Computing Paradigm
在本科期间我就时常听到“云计算”的概念,偶尔也会读到几篇关于云计算的简介短文,但只对云计算有一个模糊的认识。今天借着“Next Computing Paradigm”这个题目,试图体系地梳理云计算的知识,并试图回答以下问题。什么是Computing Paradigm?云计算与Computing Paradigm的关系?IoT、边缘计算和雾计算等和云计算有什么关系,他们之间又有什么区别?下一代Computing Paradigm应该具有什么特性,有什么可能的发展?
计算模式
“Computing Paradigm”翻译成中文是“计算模式”。在《Metasynthetic Computing and Engineering of Complex Systems》一书中的“Computing Paradigm”章中,作者将计算模式定义为复杂系统的分析,设计和问题的解决方案,可以看作是一种软件工程方法论。该方法论需要提供以下问题的解决方案:1、解决日渐复杂的问题并购间相应的系统;2、提供一个对用户友好的接口;3、支持企业的应用集成。
从以上定义我们可以提炼出几个关键词:“复杂系统的解决方案”,“友好易用”和“应用集成”。所以当我们在使用和研究各种计算模式时,如云计算模式,我们可以重点围绕上述的三个关键词,看看不同的计算模式在上述三个分别表现了各自怎样的特点。
计算模式发展至今经历了数次转变。最早由于计算资源的稀缺性而选择大型机为核心的集中式处理模式(mainframe)。而到80年代以来,随着个人计算机的普及,以C/S,B/S为主流的分布式计算模式在我们生活中得到了广泛的应用。再到近年来云计算的大力发展,计算资源和存储设备借由高速网络又重新集中,计算模式又回归为集中式共享模式。而随着IoT的发展,隐私关切、低时延、带宽限制等问题又促使人们研究边缘计算或雾计算等现代计算模式。从这些转变中,我们可以看出计算模式的诞生或转变是后发于实践中的问题。为了帮助我们想象下一代计算模式,我们可以观察现代的计算模式包括云计算和边缘计算等都解决了哪些问题,而对哪些问题无力解决。
云计算
根据NIST的定义,云计算是“一个无处不在的,方便的,按需的网络访问可配置计算资源的共享池模型,可以快速供应和发布,并只需最少的管理工作或服务提供交互。”从上述定义可以看到,云计算将传统的服务器集中为资源共享池,并以资源共享池为基础提供各种服务。可以这么说云计算的主要革新动力是为了解决服务器端的短板。
传统的C/S或B/S服务有很多劣势。首先,独立维护服务器对于大部分的个人或中小企业是一件困难且不安全的工作。个人用户可能缺少相应的服务器维护知识,而对于能雇佣到专业人才的企业,可能也无法保证自生服务器的网络安全。其次,在面对突发性增长业务时,传统的独立服务器往往难以提供足够的资源而导致业务中断造成损失。而如果让企业时刻准备冗余的服务器资源,则显然在平时会造成极大的浪费。最后,即使是在处理日常业务时,维护固定数额的服务器也会造成资源的浪费。某些业务可能是随季节性波动的,又或者企业永久地去除了部分业务需求而没有后续的需求跟上。在这些情况下,传统的独立服务器难以维护,难以扩展并且难以动态调整。
因此云计算试图解决这些问题。首先,部分云服务提供商将服务器资源汇集为共享资源池,为无意于自己搭建服务器的个人或企业租售服务器资源。并同时为用户提供更加易用的接口和界面以及为用户提供高等级的网络安全服务。其次,共享资源池中保有很多的冗余资源以供用户快速弹性地扩展资源。这样,用户在面对突发性业务增长的需求时,可以向云服务提供商临时申请购买资源。最后,云服务提供商可以动态地分配和调度用户资源以最大化利用共享资源池。因此用户也可以根据自身需求自助选择服务。由于用户的计算资源和数据资源都被云服务提供商集成在一起向用户租售,用户可以在云服务提供商处使用完整的应用集成服务。
我们可以看到,云计算为用户完整地提供了计算模式所应提供的3个解决方案,并在现实实践中得到了广泛的应用和认可。然而随着IoT和个人移动终端的发展,云计算也暴露出自身难以解决的问题。
IoT带来的挑战
IoT设备带来的第一个问题是延迟。一些IoT设备对计算结果的延迟和抖动的容忍度十分低。以一辆行驶速度为100公里每小时的自动驾驶汽车为例,1秒的延迟就会造成约27米的延迟刹车。在云计算模式中降低延时往往很难实现。
其次是带宽限制,一些传感器会持续不断地产生大量数据,在原先的云计算模式中,需要将这些大量的数据都上传至资源池中存储并计算,这对网络带宽是一个巨大的负担。
同样移动设备或IoT设备本身也会存在巨大的限制。一些设备可能不具备直接与云连接的能力,或者部分设备只能周期性的进行网络连接,又或者部分设备存在地理上的隔绝。因此IoT设备一般需要一个中间介质来作为底层设备和云服务器的桥梁。
最后,云计算模式的一个关键的短板是用户隐私问题。云服务提供商如何保障用户隐私的安全,如何保证不将用户隐私挪作私用。但无论云服务提供商如何向用户保证隐私安全和不作恶,一旦用户将部分关键隐私数据储存在本地,云计算模式的应用集成都遭遇了很大的破坏。
边缘计算
边缘计算随着IoT的发展而引发人们的研究兴趣。边缘计算很大程度上并非是云计算的替代,而是云计算的补充。简单来说,边缘计算是让计算资源部署在网络边界,尽量贴近数据源。
边缘计算大体可以有两种分类,一种是 Mobile Cloud Computing(MCC)。在MCC模式中,一个小型的云计算设施被部署在贴近移动设备的网络边缘。该云计算设施委托存储移动设备的数据并进行预处理计算,随后将处理后的数据发送给云,并把云中的计算的结果返回发送给移动设备。第二种是 Mobile Edge Computing(MEC)。在MEC模式中,将完整的云计算能力移动至移动网络的边界,具体来说是无线接入网(RAN)。但是RAN难道不是存在大量的的网络边界吗,如此难道MEC模式不会导致部署过多云计算服务器,这样又和分布式计算有什么区别呢?
边缘计算将计算资源移动到网络边缘大大降低了网络延迟和带宽限制,也可以很大程度上解决移动设备本身造成的问题。但这里却感觉有很多问题,首先针对网络延迟的问题,在MEC模式中,由于数据传输距离的缩短,应该可以很明显的感知到延迟的降低,但在MCC模式中,边缘的服务器还要进行数据预处理,例如压缩、去隐私,这样不会反而导致延迟的增加吗?其次,针对带宽限制问题,在我的理解中,虽然边缘计算缓解了核心网中的数据带宽问题,但边缘网和移动网中仍然存在带宽限制,不知道这个问题边缘计算能发解决。而针对移动设备和IoT设备,则应该可以较好地通过边缘服务器的数据委托存储和处理功能以替代和云服务器的直接连接。最后边缘计算似乎仍然未能解决用户的隐私关切问题。
雾计算
雾计算可以看作是边缘计算的一种演化。在设想中,雾计算应该是有巨大数量的异构、去中心化的、沿着云到设备部署的、可以自动存储数据和处理任务的设备。这些设备可以被附近用户租赁使用。同样是在设想中,雾计算可以看作是云计算、边缘计算和IoT的集成,试图解决的问题是成为云和IoT设备的桥梁。
由上述定义,我们可以将雾计算划分为三层结构。分别为顶层的云,中间层的雾和底层的IoT或移动设备。中间层的雾由大量的雾节点构成,并能依靠距离云的距离,享受不同程度的计算资源。
雾计算因此可以带来被很多的优势。首先是安全,在OpenFog Consortium的努力下,OpenFog Security Group(SWG)已经制定了一些雾计算的安全目标。其次是认识能力,雾计算的结构可以提供更加精细的计算,交流,控制和存储能力以更好地满足客户的需求。三是敏捷性,可以为个人和中小团队提供快速创新和可负担的扩展能力。四是延迟,雾计算和边缘计算一样接近用户从而提供低延迟。最后是效率,雾的结构可以很高效地调用云的计算资源,还能给IoT设备提供计算资源。五个优势看下来,感觉全是设想中的概念,没有可以落地的方法。雾计算有很多吸引人的概念,比如安全,泛在,动态可扩展,廉价,但能否全部实现这些概念,感觉还需要更多的理论研究。当然我不是通信专业,以上只是我的个人浅见,肯定有错误的地方,请多指正。
下一代计算模式
本来我还看到有什么量子计算模式,但是这里雾计算都还在落地中,所以我认为雾计算应该也可以算作下一代的计算模式。毕竟考虑到云计算中存在一些诸如延迟、带宽和隐私的问题,而雾计算确实都对此提供了解决方案。但随着新一代的通信技术、隐私保护算法和云计算自身的发展,这些问题是否轮得到雾计算来解决都是未知数。
Reference
Foundations and Evolution of Modern Computing Paradigms: Cloud, IoT, Edge, and Fog