随着互联网的发展,我们进入了大数据时代,这个时代也是移动互联网的时代,而且这个时代,大量的线下服务走到线上,随之而来的,比如外卖、叫车……于是,有各种各样的 App 和设备在收集你的行为和数据。更加海量的数据源源不断的产生,并上传到云平台。
这就给云提出了很大的挑战。一方面是极大地消耗有限的网络带宽资源;另一方面对于大数据处理的实时需求越来越成为刚需了,因为,如果不能实时处理、实时响应,那么怎么能跟得上这个快速的时代呢。这就好像一个人脸识别的功能。如果苹果手机的人脸识别需要到服务器上算,然后把结果返回,那么用户的体验就很糟糕了。这就是为什么苹果在手机里直接植入了神经网络的芯片,而我们知道网络的不确定因素很多,有可能导致不可控的延时。
而且数据通常与物理实体关系密切。比如家庭监控摄像头中,家庭成员的肖像等视频信息是非常敏感的;而在工业场景中,很多数据是机密的。如果这些信息全部上传到云,会给用户带来很大的安全风险。
所以,现在行业内已经开始尝试将云的部分计算服务,下沉到靠近数据发生地的“边缘节点”上进行,这就是边缘计算的由来。
维基百科的定义:
边缘运算(英语:Edge computing),又译为边缘计算,是一种分布式运算的架构,将应用程序、数据资料与服务的运算,由网络中心节点,移往网络逻辑上的边缘节点来处理[1]。边缘运算将原本完全由中心节点处理大型服务加以分解,切割成更小与更容易管理的部分,分散到边缘节点去处理。边缘节点更接近于用户终端设备,可以加快资料的处理与发送速度,减少延迟。在这种架构下,资料的分析与知识的产生,更接近于数据资料的来源,因此更适合处理大数据。
通俗地说:边缘计算本质上是一种服务,就类似于云计算、大数据服务,但这种服务非常靠近用户;为什么要这么近?目的是为了让用户感觉到刷什么内容都特别快。
怎么理解这种技术架构上的进化呢?你可以想一想,人体是如何处理各种感知信息的,是不是所有的信息都需要大脑来处理呢?
大家都熟悉云计算,它有着许多的特点:有着庞大的计算能力,海量存储能力,通过不同的软件工具,可以构建多种应用,我们在使用的许多 APP ,本质上都是依赖各种各样的云计算技术,比如视频直播,电子商务。边缘计算脱胎于云计算,靠近设备侧,具备快速反应能力,但不能应付大量计算及存储的场景。这两者之间的关系,可以用我们身体的神经系统来解释。
云计算能够处理大量信息,并可以存储短长期的数据,这一点非常类似于我们的大脑。大脑是中枢神经中最大和最复杂的结构,也是最高部位,是调节机体功能的器官,也是意识、精神、语言、学习、记忆和智能等高级神经活动的物质基础。人类大脑的灰质层,富含着数以亿计的神经细胞,构成了智能的基础。而具有灰质层的并不只有大脑,人类的脊髓也含有灰质层,并具有简单中枢神经系统,能够负责来自四肢和躯干的反射动作,及传送脑与外周之间的神经信息。我们在初中的生物中都学习到了膝跳反应,这就是脊髓反应能力的证据。
边缘计算对于云计算,就好比脊髓对于大脑,边缘计算反应速度快,无需云计算支持,但低智能程度较低,不能够适应复杂信息的处理。而云计算负责需要大规模数据和复杂计算的数据分析工作,以及完成整体的协调和控制。
在这里插入图片描述
具体来说,将原有的云计算模型的部分计算任务迁移到网络边缘设备来;网络边缘设备(比如路由器、移动网络基站等),在数据源附近执行数据处理和数据分析任务。这样一来,就降低了云计算中心的计算负载,减轻海量数据了对于网络带宽的压力,提高了数据处理的效率。
这里将边缘计算模型的好处,总结为四个方面:
我们再来看看云的成本,当一个公司需要支持几十万用户的时候,并没有什么感觉。当他们要支撑上千万乃至上亿用户的时候,我们就会发现,一个几十万用户的系统架构和一个支撑上千万用户的架构,在成本上来说,完全不是一个数量级的。
在这个图中,我们可以看到,当需要处理的数据或是用户请求的规模越来越大时,我们的成本是呈现快速上升的曲线,而不是一个线性上升的成本关系。我们可以来算一下,根据行业内的经验,可以估计如下的投入:
可以看到,十万用户到上亿用户,也就多了 100 倍,为什么服务器需要 1000 倍?这完全不是呈线性的关系。
这时因为,当架构变复杂了后,你就要做很多非功能的东西了,比如,缓存、队列、服务发现、网关、自动化运维、监控等。
那么,我们不妨开个脑洞。如果我们能够把那上亿的用户拆成 100 个百万级的用户,那么只需要 5000 多台机器(100 个 50 台服务器的数据中心)。我们还是同样服务了这么多的用户,但我们的成本下降得很快。只不过,我们需要运维 100 个小数据中心。不过,相信我,运维 100 个 50 台服务器的小数据中心的难度应该远远低于运维一个 10000 台服务器的数据中心。
好了,问题来了,什么样的业务可以这么做?我觉得有地域性的业务是可以这么做的,比如:外卖、叫车、共享单车之类的。
然而,100 个 50 台服务器的小数据中心也会带来一些复杂的问题,因为当你的公司有 100 万用户的时候的业务形态和有 1 亿用户的业务形态是完全不一样的,1 亿用户的业务形态可能会复杂得多得多。也就是说,我们不可能在一个小数据中心只有 50 台服务器,因为那是百万用户的业务形态,只有几十个服务。当公司成长到上亿用户的规模时,可能会有上百个服务,50 台服务器是不够部署的。
所以,上面那种多个数据中心的理想只存在于理论上,而实际上不会发生。但是,我们依然可以沿着这条路思考下去。我们不难发现,我们完全可以用边缘节点处理高峰流量,这样,我们的数据中心就不需要花那么大的成本来建设了。于是,到了边缘计算。
通过上面的案例分析,我觉得边缘计算一定会成为一个必然产物,其会作为以数据中心为主的云计算的一个非常好的补充。这个补充在我看来,其主要是做下面一些事情。
从云计算的发展趋势上来看,数据量的不断增大迫使边缘计算成为一个必然。大数据中心的成本问题,也需要通过边缘计算来降低。同时随着业务应用场景越来越多,对是性能的要求也越来越高,云计算的“云、边、端”架构(即中心云、边缘云、终端三部分)最终将会成为趋势。
参考资料: