最全科普:为什么说边缘计算的冷饭要变盛宴了

曹亚孟 2019-10-12 11:41:07

一、诚意炒冷饭

 

最近半年里,AI谈累了、区块链谈倦了,大批云计算公司找到了新的热点——边缘计算。我认可边缘计算是比肩云计算的星辰大海,但是我看到这些PR稿都是炒冷饭和自吹的尬聊。

 

有人会把边缘计算说成IOT,有人会把边缘计算说成超融合,有人会把边缘计算说成分布式P2P计算,有些人会把边缘计算说成边缘机房。

 

另一些边缘计算的PR稿纯粹就是拼稿尬聊"高大上",看不到任何有用的东西。

 

好事多磨,成事在天。云计算、AI和大数据都是炒过几次冷饭才变成盛宴的,但碰运气炒冷饭就是浪费读者和用户时间了。

 

我重新奉上边缘计算这盘冷饭,是带着诚意说明:

 

边缘计算的冷饭要变盛宴了。

 

二、为何会有边缘计算

 

好雨知时节,当春乃发生,5G网络出,边缘计算成。

 

4G时代即存在的数据爆炸和海量终端接入,无论服务端还是客户端都承担着巨大的压力性,大家急需探索一条新的出路。随着5G带来的网络变化,边缘计算从隔夜冷饭变成了春夜喜雨,自身有技术可行性,业务也有迫切的需求。

 

1、服务器端在负重前行

 

 

我可以武断地说,最近十几年服务端架构一直在规避问题而非解决问题,服务端就是典型的小马拉大车。

 

我们把视角回到2010年,那时候Tomcat的并发不超过800,MySQL的并发就是500以下;万兆网卡加SSD盘打破了性能瓶颈,让很多服务端应用得到了倍速提升,但后台服务的设计和调优是停滞状态的。大部分服务端程序只设计了数千并发,像LVS、Nginx这类能跑数十万并发的服务是特型异数。

 

企业越来越需要架构师,是因为单体服务没什么好优化的,能优化的只是组合架构。当企业遇到海量需求时,或者队列异步排序,或者分服务分库。

 

这就像2G时代一辆轿车装上10个摩托发动机,到了4G时代给大货车装了100个摩托发动机。5G时代是不是要邮轮装65535个摩托发动机?

 

服务器端除了计算问题还有网络问题,广域网带宽的高成本和高延迟,让很多技术选型不具备可行性。比如主流VR都选择本地计算,就是部署服务端VR的网络延迟过高、带宽需求过大。

 

随着带宽和流量降价,以及AI大数据和IOT技术的进步,服务器群集的性能、容量和接入带宽越来越捉襟见肘。

 

我们去观察那些占据资源最多的服务器端运算(比如生成各种视频流),大都并不需要集中处理,甚至不关注过程一致性;被CAP原则限制的分布式服务群集,其实该向BASE模式过渡了。

 

 

只要应用协议不变,不可能上一波写服务端的程序员总是笨蛋,服务端深度优化余地也不大,服务器端就像一匹拉大车的小马,拉不动货车就再来几匹马。

 

2、客户端受尽软硬限制
 

 

客户端生态有硬件和环境限制,有系统和分发渠道卡脖,C/S软件架构上默认也把客户端当做不可控因素。一层层限制耗尽了客户端开发圈的活力,客户端似乎被“天经地义又无可奈何”的限制住了想象空间。

 

我们首先看硬件配置限制,无论是电脑、手机、家用智能终端甚至工业IOT网关,在激烈的市场竞争下,客户端硬件配置从来就是半年就落伍,三年就淘汰。

 

家用智能终端大部分时间是闲置待机,但在响应需求的瞬间绝对是满负荷运行的,否则就是成本控制没到位。

 

一个手机厂商拿捏不准是否该集成某种计算芯片,集成了新芯片会成本提升,不集成该芯片又缺乏吸引用户新功能。

 

我们再看功耗限制,台式机电源要舍得用铜料,手机锂电池已经服役超过20年了,无风扇工控机的功耗影响散热上限,IOT设备的功耗极大影响部署难度。

 

上述四种硬件的复合体是笔记本电脑,操作系统升级和低功耗SSD使其续航时间超过了5个小时,但玩个中配游戏仍然会风扇狂转键盘烫手,然后又没电了。

 

第三个问题是软件安装部署的难度,商业工程软件我不太了解,我就举几个游戏的例子。《全战三国》有18G,《魔兽世界》40G,集成Model的《老滚5》很容易过100G,应用下载就很麻烦,后面还有安装和更新的难关以及版权验证等问题。

 

我也借机诚邀游戏引擎开发者们谈谈,大家因为功耗/配置/安装部署问题放弃了哪些激动人心的炫酷功能?看完全文你们会意识到,这些限制都是可以改变的。

 

最后一个问题才是重头戏,客户端开发者在程序分发生态中一直是弱势被勒索的位置。一个APP想在发布运行——技术的、商业的、渠道的、运营的、抄袭的、黑产的,这些拦路虎或者要分享利益,或者就是要禁止你的APP。

 

这和上个问题的本质是相同的:一个客户端应用只是个用户进程,没有权限去掌控系统全局状态。但这个客户端应用在运行过程中,又依赖这些全局资源的配合。

 

客户端开发,不应该被这些“天经地义又无可奈何”的软硬件限制绑住想象空间,这些软硬件限制在边缘计算面前,都是可笑的摆设和无限的商机。

 

 

3、5G是边缘计算的最大助力
 

 

现在能确认爆款5G应用的人早就去创业了,我们只从5G的物理特性看未来的架构问题。

 

在4G时代,旧IT架构已经是累卵危石头,幸好CDN扛下了一大半业务负载才没有彻底崩盘。5G会增大架构危机的压力,让旧架构凑合不下去,但5G的物理特性又给新架构指明了一条新路。

 

首先5G导致客户端节点的数量和带宽的增加,普遍预测客户端接入数量和接入带宽要翻十倍百倍甚至更多,这些新兴应用一开始只能降速适应旧架构,但是从工程量级上有了引入中间层的必要性。

 

一个系统只有5万个QPS,架构师引入中间层是过度设计;如果新系统有5亿个QPS,架构师引入中间层才算是正经做设计。

 

大家都知道5G有高带宽,但更有价值的是边缘网络的超低延迟。现在对延迟敏感的逻辑只能放到客户端本地,而5G时代,边缘网络延迟稳定小于10ms。5G网卡的速率和延迟在超越很多本地设备,网卡可以复现当年SSD盘的救驾之功。

 

典型5G带宽的吞吐速率是100Mbyte/s,读写延迟10ms甚至5ms以下;SATA硬盘理想读写速率能到150Mbyte,而延迟则是看磁头的运气了。显示器和键鼠本来就有毫秒级延迟,大部分用户根本不介意多上10ms的网络IO延迟。

 

当数据放在“客户管不着、厂商摸得到”的边缘端时,数据的管理和运营就突破了纯客户端的藩篱了。

 

网盘数据可以集中反盗版和鉴黄;云主机可以代维护,容器群集可以集中更新漏洞;如果是用户书房的个人电脑就没这些便利操作了。

 

服务端无法预知客户端会何时连接,客户端需要有序排队和数据预处理,否则容易出现瞬时拥堵。5G时代客户端会增加十倍百倍,必须有分布式中间节点对亿万QPS进行整流排序,并进行适度的数据预处理,这样服务器端的压力承载才会有序可控。

 

 

危机危机,危险的背后就是机遇,牛顿不是第一个被苹果砸到的人。

 

三、边缘计算是架构革命

 

前文聊服务端、客户端和5G,本质都是在聊C/S架构的危机。4G时代已经把优化软件和升级硬件的潜力榨干了,我们必须从架构角度引入Edge端,让边缘节点来承载大部分5G业务压力。

 

我们清晰地看到,边缘计算的本质是一场架构革命:

 

计算机刚开篇时所有软件都是单机软件,单机软件只有功能没有服务。CS模式开始有了“服务端”的概念,服务端最早只是单机处理几千个轻量请求,现在要数万台服务器端并发处理上亿个重负载请求,这已经超过了C/S架构的极限。

 

边缘计算的本质是CES模式取代CS模式,引入Edge端是解决CS模式跑不了重载业务的最好办法。

 

在5G以前,网络计算的延迟远大于本机计算延迟,Edge端只能跑可缓存的视频图片做CDN。现在CDN是最成熟最成功的云产品,价格战只是瞬时商业表象,CDN从产品角度已经赢得很彻底了。

 

有了5G低延迟网络的支撑,Edge端可以承担取代本机客户端的算力工作,可以解决前文提到的大量服务器端和客户端危机。

 

 

对于服务器端来说,Edge端会把访问请求在本地网进行排序和预处理,能够承担大流量访问和分散计算压力;对于客户端来说,Edge端的运行环境可控,算力强大电量无限,Edge端计算也不依赖于云端服务端。

 

Edge端是一个新增的角色,引入Edge端和服务端常见的“分久必合、合久必分”并不是一回事。C/S架构引入了Edge角色必须要进行慎重繁琐的IT架构升级,这会占用大量人力物力,但下文会说明做这个选择是值得做的,而且CES架构改造的难度还在可控范围内。

 

四、边缘产品的分类

 

很多产品都是自称“边缘计算”,我们必须将这些同名产品进行分类,否则大家说的“边缘计算”可能根本不是同一类东西。

 

 

从产品目的来看,边缘计算大致分为三类,分别是物联网边缘计算、边缘节点计算和P2P边缘计算。从部署位置来看,边缘计算可以部署在城域网端,基站端和接入端,甚至SDK都可以叫边缘计算。下文对几大同名产品进行辨识,为避免嘲讽效果,本章节没配图。

 

1、物联网边缘计算
 

 

物联网边缘计算能见到震撼人心的实物照片,软件研发又敬畏新硬件,所以这种边缘计算最火爆。

 

这些边缘计算最大的缺点是,他们只是其他行业的附属品,无论是箱子和卡车,还是IOT网关加传感器,本质上都是为其他服务做嫁衣。

 

比如某知名手提箱的官网介绍,无论是拷贝数据、小型私有云还是数据预处理,这个手提箱的最终目的仍然是让这些数据上云。另外一些知名IOT边缘产品,它们的目的就是认证硬件、快速接入IOT和上传数据到云平台。

 

物联网边缘计算的本质着力点是物联网或者云计算,而不是边缘计算。

 

2、P2P边缘计算
 

 

P2P传输和计算是个古老的行业,一直走着“特定内容借流量”和“特型应用借算力”的巧路,所有的计算和传输负载都在客户端,服务端只做轻量级调度。

 

所有的轻巧都要付出代价,整个P2P网络里都是招募的不稳定边缘节点,“特定内容”和“特型应用”就是适用性不广泛、只能对接几个大客户的意思,而大客户的议价把控能力太强了。

 

随着5G和下文另一种边缘计算的兴起,P2P传输和计算可能会拿到通用稳定的边缘节点,最终开发出更有价值的上层应用,但它是边缘计算的客户而非本尊。

 

3、服务器边缘节点
 

 

在服务器上部署边缘节点听起来就很熟,很多人就笑起来了,聊这么半天,这不就是谈CDN吗?

 

CDN是最成功的云服务,大量售卖且完整解决客户问题,CDN售卖杀价是商业套路,研究不出新花样更证明其完美。某些浅薄的人嘲讽CDN的逻辑,有点像嘲笑胡萝卜没有大蒜的味道。

 

边缘网络+边缘IaaS算力+网站服务,这就是CDN;把网站服务换成视频服务,这就是点直播;如果把应用层换成通用边缘计算框架,再通过5G把延迟降低到10ms以下,这就是边缘计算。

 

服务器边缘计算和CDN并不相同,为了拥抱通用框架,某些为CDN优化精简的功能要补回来,还要继续加新功能新资源,而且用户群在发生变化。2020年以后,云原生程序越来越多,程序员们越来越习惯使用K8S等新一代技术架构,这对边缘计算也是个利好消息。

 

边缘计算现在只做IaaS资源和容器云就够消化三年市场红利,将来会出现(除了CDN之外)所有行业的PaaS边缘云。

 

4、运营商边缘计算
 

 

有些边缘厂商夸大运营商的基站节点能力,其实就是做通讯的和做IT的互不了解,智子疑邻,自己吓自己。

 

云计算业者连铁塔公司和运营商的分工都不了解,那就更没去过基站和接入机房恶劣的施工环境了。就算有高温X86服务器,我们也要考虑维修难度、狭小的空间和其他能聊一万五千字的施工问题。

 

运营商如果在汇聚机房和综合接入机房部署x86服务器,这里比城域网机房快不了几毫秒,网络延迟没发生质变。这些过度近缘小机房的覆盖用户过少、资源池过小,客户从这里获取数据的速度会比边缘大机房更慢。

 

比如某城域网机房覆盖10万用户,默认放20台服务器,加载100个功能模块;某小型近缘节点只覆盖1万用户,只能放2台服务器,加载几个功能模块。

 

对于本节点没有加载的功能模块,小节点或者去其他节点借数据,或者引导客户端去远端访问,两种方法都会比城域网机房的开销大很多。

 

运营商和云厂商在4G时代就相互有过误会,但不打不相识,最终运营商成为了可靠的网络供应商,在边缘计算时代大家更会紧密合作,共同承载客户和解决问题。

 

总结这一章节内容,我对几种边缘计算产品的意见很明确:我最看好城域网机房里的服务器边缘节点,它们可以自负盈亏、有通用化的潜力、有CDN做趟路先驱、到客户群的覆盖和距离适中

 

五、边缘计算的客户价值

 

边缘计算的业务价值主要体现在对客户端的减负和控制上,让很多过去无法想象的业务有可行性。

 

这一部分和前文的第二章第二节有重度关联和重复,但前文说的更多是限制,本段落更多说的是梦想。

 

1、硬件设计更灵活
 

 

我们先看客户端减负,5G边缘网络可能比本地磁盘等零部件速度更快,这是个人计算机从未有过的新变化。

 

虽然手机通讯模组的功耗也不小,但手机厂商不会生产上网两小时就没电的手机的,对此我保持谨慎乐观态度。给客户端做减负,最终用户能感觉到流畅度提升和电量提升,部分用户还会为此付费。

 

我们考虑问题要稍深一些,客户端减负最终能让客户端和边缘端融合,甚至影响到硬件设计。

 

比如买手机都要考虑闪存空间,iCloud买50G的空间,五年才花360块钱,这比给Iphone扩充手机内存合算多了。当文件从集中分散到就近边缘,客户读取网络文件的速度不比本地慢,5G手机就不用买那么贵的闪存了。当网盘的数据大到无法下载到手机时,客户换新机时也必须用同一品牌同一账户才能迁移了。

 

边缘端还能给客户端的计算压力减负,最终让客户端的硬件设计方式发生改变。各种长寿命客户端,比如智能家居、电脑还有IOT设备,其输入输出装置都能用5-10年,但计算组件在三年内肯定会落伍;对于手机来说,试水新硬件经常是一次冒险。厂商在设计硬件时,如果可以将某些功能放到边缘端,将会获得巨大的灵活性。

 

 注意动图,钢铁侠是临时就近装配了增强护甲

 

2、改变应用发布生态
 

 

边缘计算可以从软件控制层面改变整个客户端软件生态,技术上可以将客户端的运算功能全部放在边缘端,本地只保留一个视频播放器。这个想法虽然疯狂但不离谱,带来的好处显而易见。

 

首先是客户端的分发渠道的变化,现在各种分发渠道都会收APP的买路财,每个人手机上要装数十个APP。当任何一个APP都只是个视频播放器时,一个短视频APP可以推送游戏视频流,一个游戏可以内置交友平台,旧的APP分发渠道根本堵不住这个口子。

 

困扰单机软件几十年的盗版问题,可能通过边缘视频化来解决。我见到的所有云游戏客户,都在向游戏平台类Steam方向进化,虚拟化算力是小生意,卖游戏版权和分发渠道才是大生意。

 

随着边缘APP的访问流畅性逐步得到验证,边缘视频流天然比本地文件更保密安全和方便控制,各种在线办公系统的使用体验会和本地办公软件一模一样。

 

 软件逃脱的只是枷锁,获得的将是新的世界

 

3、单一应用留住客户
 

 

当一个APP可以all in one其他APP时,用户的访问轨迹不会跳出该APP,给产品运营提供了新的想象空间。

 

现在用户在某视频APP里做游戏和电商引流,转跳到电商和游戏APP就结束了。而未来完全可以购买同一样东西不出本APP,A用户走的京东、B用户走的天猫、C用户走的自建商城;本APP推广的游戏也能参与内购分成,游戏分享视频必须打本APP水印。

 

 

4、对技术部门的价值
 

 

我们看到了对公司全局的业务价值,再看一下对技术部门的价值,我们要说服客户的IT部门,配合边缘计算做CES架构改造。

 

对IT部门来说,云计算是个爱恨交织的议题,猛增的IT需求让IT部门规模增大,但是云资源廉价又充足,让很多绣花针一样细致的架构调优变得无足轻重。大部分高级工程师面对虚拟抽象化的云平台,他们只能挑剔极限性能和网络抖动,我理解这是种无聊和落寞。

 

在业务部门认可了边缘计算的价值以后,这些高级工程师就能努力将CS架构改变CES架构,这种体量的架构变动并不是一日之功,三五年的时间都能耗进去。我们可以看到一群聪明人,能做有价值又有难度的IT技术工作,这是一个积极互利的正循环。

 

六、边缘产品的演化

 

1、边缘和云的关系
 

 

讨论边缘计算产品前,我们先要清楚边缘计算和云计算在产品层面的关联。

 

狭义上的云计算产品是对服务器端进行替代的组件,比如虚拟机、RDS、OSS等组件;广义上的云计算泛指所有云厂商为客户完成的IT服务。在同一个云厂商体系下营销售卖时,边缘计算就是广义云计算的一部分,在独立产品设计时,边缘计算不要受其他云产品的误导。

 

2、边缘IaaS节点群
 

 

边缘计算厂商先要做好IaaS节点群,边缘IaaS是“节点群”而不是“资源池”,搭建和维护这个节点群是要精工出细活的。

 

在边缘场景下,算力载体选择容器会比云主机更合适,这是要筛选对边缘算力和网络有大量需求的客户,而且为未来做大边缘PaaS留下技术接口。

 

边缘网络内部几乎都是南北流量,没有东西流量,而且它是“节点群”而不是“资源池”,所以不能套用云端网络的设计运营经验。边缘应用90%的流量仍然是多媒体视频,但其数据生成和分发逻辑不能抄袭CDN。

 

3、边缘PaaS方案
 

 

在边缘IaaS节点群逐步稳固的过程中,边缘PaaS产品会根据技术栈进化出不同分支,限于篇幅我只总结不展开细聊了。

 

首先成熟的产品大类会是定制化视频应用,类似用户自主跨云调度、私有加密协议、客户自建边缘云等场景。

 

第二大类是以云游戏为技术切入点,后续将进化成所有客户端在边缘端计算后,本地APP实际是视频播放器。

 

第三大类PaaS产品会是“IOT边缘计算”的宿主平台,无论工业、安防还是家用IOT都需要边缘端做为承接载体。

 

客户端默认就是碎片化的,边缘PaaS是在模拟和分担客户端工作,所以这些PaaS平台也会细分化;比如同样是云游戏,射击类游戏和即时战略游戏的PaaS产品会有明显区别。边缘PaaS产品在细化过程中会鸡兔同笼的错位竞争,最终会像一群细分领域各自称霸商业软件,而不是大一统的云服务。

 

七、边缘改造的原则

 

边缘计算要求客户的IT服务从CS架构改成CES架构,我从五个角度向大家解释,IT服务做边缘化改造时应遵循的设计原则。

 

第一,从Edge单点角度,Edge端单点有计算有流量,但无逻辑无状态。

 

边缘端的SLA并不高,默认每个节点都可以放弃,无逻辑无状态的节点随时可以大范围弹性伸缩,也方便客户端容错。

 

第二,从资源负载角度,大量公网IO、较低连接延迟、大量算力负载。

 

这就是筛选边缘计算的目标客户,避免无意义的瞎折腾。如果没有大IO低延迟需求,那放在云端架构更简单,如果没有大算力负载需求,本地客户端自己计算是最优解。

 

第三,从节点架构角度,节点间节点内彼此独立,较少内联依赖和相互判断。

 

保证高效率运算就要减少依赖,比如CPU算一份数据只要1ms,从硬盘读数据可能要10ms,从云端数据库取数据就要100ms了。

 

前文产品设计部分,我推荐的边缘容器云都要做功能简化和性能强化,不推荐边缘云主机,就是因为VPC和云硬盘在高性能边缘场景里价值并不大。

 

边缘节点会将复杂逻辑丢给云主机,将持久化数据交给对象存储服务,但自己不要做这些复杂逻辑。

 

第四,从业务数据角度,从实时一致性向最终状态一致性优化。

 

边缘计算是个大规模分布式系统,根据CAP原则,我们不可能舍弃可分区性,而边缘主打招牌就是高性能,最终只能牺牲数据的实时一致性了。

 

用户必须将业务数据拆分,对于强一致性数据必须放回CS架构中。客户要区分:哪些数据是可以覆盖累加的,哪些数据是可以幂等重试的,哪些数据是可以延迟扩散的,运行环境要预先部署到边缘节点,还要区分出大量可以直接丢弃和简单重建的数据。

 

第五,从工程的角度,必须做服务架构改造,自研或应用全新架构。

 

企业IT部门必须放弃无缝上边缘的幻想,无论是自研还是借鉴,都必须应用全新的CES架构,边缘计算改造将是一场五到十年的攻坚战。

 

边缘计算能带来业务价值,其技术实现又这么麻烦,被云计算冷落的IT架构师们,很快就能回到聚光灯下舞台中央。

 

八、边缘计算的负面焦虑

 

边缘计算的各种负面焦虑,反推过来都是破茧成蝶的关键点。

 

我最担忧的是5G网络的发展速度,最悲观估计最近几年都是4G降资费的性质。

 

5G发展过慢会导致5G应用发展过慢,但运营商不可能预建设一张空载的5G网,而5G应用不爆款,客户就没有改造CES架构的动力。5G应用和5G网络是先有鸡还是先有蛋的关系,边缘计算是忙着搭窝捡蛋的,5G发展缓慢必然会影响到边缘计算。

 

我的第二个顾虑是商业模式和市场认知,会让边缘计算陷入低附加值的泥潭。

 

当前4G时代试水边缘计算的大型客户,他们的诉求仍然是省带宽成本,会尽力压缩边缘IaaS的利润。只有5G应用要依赖低延迟边缘网络,而且中型客户也开始接入边缘计算平台,边缘计算平台才有充分的议价权。

 

我最后担心的是从业人员的模糊蛮干。

 

各种边缘计算只是名字相同,相互之间没任何关系,从业者很难形成统一观点和标准,很容易鸡同鸭讲各说各话。边缘计算的行业跨度之大覆盖之广,在大部分公司里,超出了单个产研部门的能力范围,很容易因为部门分工而画地为牢。

 
作者丨曹亚孟
来源丨云算计订阅号(ID:gh_0068c4e23a81)
dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn

最新评论
访客 2023年08月20日

230721

访客 2023年08月16日

1、导入Mongo Monitor监控工具表结构(mongo_monitor…

访客 2023年08月04日

上面提到: 在问题描述的架构图中我们可以看到,Click…

访客 2023年07月19日

PMM不香吗?

访客 2023年06月20日

如今看都很棒

活动预告