漫谈边缘计算
背景
随着互联网的发展,我们进入了大数据时代,这个时代也是移动互联网的时代,而且这个时代,大量的线下服务走到线上,随之而来的,比如外卖、叫车……于是,有各种各样的 App 和设备在收集你的行为和数据。更加海量的数据源源不断的产生,并上传到云平台。
这就给云提出了很大的挑战。一方面是极大地消耗有限的网络带宽资源;另一方面对于大数据处理的实时需求越来越成为刚需了,因为,如果不能实时处理、实时响应,那么怎么能跟得上这个快速的时代呢。这就好像一个人脸识别的功能。如果苹果手机的人脸识别需要到服务器上算,然后把结果返回,那么用户的体验就很糟糕了。这就是为什么苹果在手机里直接植入了神经网络的芯片,而我们知道网络的不确定因素很多,有可能导致不可控的延时。
而且数据通常与物理实体关系密切。比如家庭监控摄像头中,家庭成员的肖像等视频信息是非常敏感的;而在工业场景中,很多数据是机密的。如果这些信息全部上传到云,会给用户带来很大的安全风险。
所以,现在行业内已经开始尝试将云的部分计算服务,下沉到靠近数据发生地的“边缘节点”上进行,这就是边缘计算的由来。
什么是边缘计算?
维基百科的定义:
边缘运算(英语:Edge computing),又译为边缘计算,是一种分布式运算的架构,将应用程序、数据资料与服务的运算,由网络中心节点,移往网络逻辑上的边缘节点来处理[1]。边缘运算将原本完全由中心节点处理大型服务加以分解,切割成更小与更容易管理的部分,分散到边缘节点去处理。边缘节点更接近于用户终端设备,可以加快资料的处理与发送速度,减少延迟。在这种架构下,资料的分析与知识的产生,更接近于数据资料的来源,因此更适合处理大数据。
通俗地说:边缘计算本质上是一种服务,就类似于云计算、大数据服务,但这种服务非常靠近用户;为什么要这么近?目的是为了让用户感觉到刷什么内容都特别快。
边缘计算的好处
怎么理解这种技术架构上的进化呢?你可以想一想,人体是如何处理各种感知信息的,是不是所有的信息都需要大脑来处理呢?
大家都熟悉云计算,它有着许多的特点:有着庞大的计算能力,海量存储能力,通过不同的软件工具,可以构建多种应用,我们在使用的许多 APP ,本质上都是依赖各种各样的云计算技术,比如视频直播,电子商务。边缘计算脱胎于云计算,靠近设备侧,具备快速反应能力,但不能应付大量计算及存储的场景。这两者之间的关系,可以用我们身体的神经系统来解释。
云计算能够处理大量信息,并可以存储短长期的数据,这一点非常类似于我们的大脑。大脑是中枢神经中最大和最复杂的结构,也是最高部位,是调节机体功能的器官,也是意识、精神、语言、学习、记忆和智能等高级神经活动的物质基础。人类大脑的灰质层,富含着数以亿计的神经细胞,构成了智能的基础。而具有灰质层的并不只有大脑,人类的脊髓也含有灰质层,并具有简单中枢神经系统,能够负责来自四肢和躯干的反射动作,及传送脑与外周之间的神经信息。我们在初中的生物中都学习到了膝跳反应,这就是脊髓反应能力的证据。
边缘计算对于云计算,就好比脊髓对于大脑,边缘计算反应速度快,无需云计算支持,但低智能程度较低,不能够适应复杂信息的处理。而云计算负责需要大规模数据和复杂计算的数据分析工作,以及完成整体的协调和控制。
具体来说,将原有的云计算模型的部分计算任务迁移到网络边缘设备来;网络边缘设备(比如路由器、移动网络基站等),在数据源附近执行数据处理和数据分析任务。这样一来,就降低了云计算中心的计算负载,减轻海量数据了对于网络带宽的压力,提高了数据处理的效率。
这里将边缘计算模型的好处,总结为四个方面:
- 延迟低。数据只需要从产生设备传输到边缘设备,传输距离短,数据不需要通过其他网络,网络延迟低。
- 节约了主干网带宽。缓解大量数据传输所造成的网络拥堵想象。尤其像一些银行的专有网络,本身带宽非常有限,只能用于传输关键性的数据。
- 计算可用性好。数据在网络中的路径长度显著变短,因网络波动引起的计算服务不可用情况将有所减少。
- 隐私性更好。由于边缘设备距离用户近,用户的隐私数据不再需要上传到云,因此,在边缘计算场景下,用户的隐私也可以得到更好的保护。
- 中心云的成本更低。
我们再来看看云的成本,当一个公司需要支持几十万用户的时候,并没有什么感觉。当他们要支撑上千万乃至上亿用户的时候,我们就会发现,一个几十万用户的系统架构和一个支撑上千万用户的架构,在成本上来说,完全不是一个数量级的。
在这个图中,我们可以看到,当需要处理的数据或是用户请求的规模越来越大时,我们的成本是呈现快速上升的曲线,而不是一个线性上升的成本关系。我们可以来算一下,根据行业内的经验,可以估计如下的投入:
- 几十万用户的公司,只需要处理百级 TPS 的量,只需要 10 台左右的服务器;
- 上百万用户的公司,只需要处理千级 TPS 的量,需要有 50 台左右的服务器;
- 上千万用户的公司,需要处理万级到十万级 TPS 的量,需要 700 台左右的服务器;
- 上亿用户的公司,其需要处理百万级 TPS 的量,需要上万台的服务器。
可以看到,十万用户到上亿用户,也就多了 100 倍,为什么服务器需要 1000 倍?这完全不是呈线性的关系。
这时因为,当架构变复杂了后,你就要做很多非功能的东西了,比如,缓存、队列、服务发现、网关、自动化运维、监控等。
那么,我们不妨开个脑洞。如果我们能够把那上亿的用户拆成 100 个百万级的用户,那么只需要 5000 多台机器(100 个 50 台服务器的数据中心)。
我们还是同样服务了这么多的用户,但我们的成本下降得很快。只不过,我们需要运维 100 个小数据中心。不过,相信我,运维 100 个 50 台服务器的小数据中心的难度应该远远低于运维一个 10000 台服务器的数据中心。
好了,问题来了,什么样的业务可以这么做?我觉得有地域性的业务是可以这么做的,比如:外卖、叫车、共享单车之类的。
然而,100 个 50 台服务器的小数据中心也会带来一些复杂的问题,因为当你的公司有 100 万用户的时候的业务形态和有 1 亿用户的业务形态是完全不一样的,1 亿用户的业务形态可能会复杂得多得多。也就是说,我们不可能在一个小数据中心只有 50 台服务器,因为那是百万用户的业务形态,只有几十个服务。当公司成长到上亿用户的规模时,可能会有上百个服务,50 台服务器是不够部署的。
所以,上面那种多个数据中心的理想只存在于理论上,而实际上不会发生。但是,我们依然可以沿着这条路思考下去。我们不难发现,我们完全可以用边缘节点处理高峰流量,这样,我们的数据中心就不需要花那么大的成本来建设了。于是,还是到了边缘计算。
边缘计算的业务场景
通过上面的案例分析,我觉得边缘计算一定会成为一个必然产物,其会作为以数据中心为主的云计算的一个非常好的补充。这个补充在我看来,其主要是做下面一些事情。
- 处理一些实时响应的业务。它和用户靠得很近,所以可以实时响应用户的一些本地请求,比如,某公司的人脸门禁系统、共享单车的开锁。
- 处理一些简单的业务逻辑。比如像秒杀、抢红包这样的业务场景。
- 收集并结构化数据。比如,把视频中的车牌信息抠出来,转成文字,传回数据中心。
- 实时设备监控。主要是线下设备的数据采集和监控。
- P2P 的一些去中心化的应用。比如:边缘结点作为一个服务发现的服务器,可以让本地设备之间进行 P2P 通讯。
- 云资源调度。边缘结点非常适合用来做云端服务的调度。比如,允许用户使用不同生产商的云存储服务,使用不同生产商但是功能相同的 API 服务(比如支付 API 相关)。因为是流量接入方,所以可以调度流量。
- 云资源聚合。比如,我们可以把语音转文字的 API 和语义识别的 API 相结合,聚合出来一个识别语音语义的 API,从而简化开发人员的开发成本。
- ……
边缘计算的几点思考
- 早已有之,新葫装旧酒,炒炒新概念:以前的 CS,后来的 BS,再后来的云和 APP,就是某种意义的边缘计算。服务端和终端各自承担一部分算力。过去的 CDN,现在的 VCDN 服务也是一种中心云计算能力下层到边缘节点能力的一种体现。这几年普遍存在的在家用路由器运行容器搭梯子翻墙,也算明显的云边协同。离开了网络离开了应用提供商,现在的电脑手机几乎没啥用,其实 PC,手机,智能路由,小米的智能家电就是边缘设备。只不过现在的边缘计算更多的是云计算出现后的概念,是相对于中心云的一种概念,云+边+端的概念,中心云有 Openstack,Kubernets 或自研平台,边缘云也采用专有边缘设备和边缘开源平台。中心云原生能力往边缘的下沉。
- 异构计算迎来大发展:FPGA 相对 ASIC 具有灵活编程的特点,相对于 CPU 以流水线运算周期为运算时间单位,FPGA 以时钟频率为运算时间单位 FPGA 有低时延专业性方向性强的特点,符合边缘计算的需求而大量应用在边缘迎来大发展。以 GPU,ARM,TPU 等大量应用在边缘在边缘计算上也会迎来大发展。
- serverless 会大量应用在边缘。
- 国内厂商中,阿里,华为会在边缘计算上胜出。
- 阿里的芯片设计的积累和优势,docker 的合作,以及在容器领域的开源项目之多,公有云市场优势,边缘计算和公有云联系紧密。
- 华为芯片设计的积累和优势,中国第一的研发能力和积累,最多标准,协议制定者。
- 边缘设备更多的服务 toB 业务
- 视频监控
- 智能制造,公共场所(办公,商场,交通,城市)
- AI(图像视频识别,自动驾驶)
- 个人继续用手机为智能终端连接到中心云和边缘云服务
- 边缘设备小型化和成本是主要考虑对象,所以以机架,服务器形式只能用在重资产的地方,以集成进 5G 基站,路由器,小型定制设备(类似工控机)的轻资产数量居多。
小结
从云计算的发展趋势上来看,数据量的不断增大迫使边缘计算成为一个必然。大数据中心的成本问题,也需要通过边缘计算来降低。同时随着业务应用场景越来越多,对是性能的要求也越来越高,云计算的“云、边、端”架构(即中心云、边缘云、终端三部分)最终将会成为趋势。
参考资料:
- [1]:《左耳听风》
- [2]:《物联网开发实战》
- [2]:https://zhuanlan.zhihu.com/p/59899560
- 点赞
- 收藏
- 关注作者
评论(0)