一文谈尽边缘计算
1. 诚意炒冷饭
最近半年里,AI谈累了、区块链谈倦了,大批云计算公司找到了新的热点——边缘计算。我认可边缘计算是比肩云计算的星辰大海,但是我看到这些PR稿都是炒冷饭和自吹的尬聊。
有人会把边缘计算说成IOT,有人会把边缘计算说成超融合,有人会把边缘计算说成分布式P2P计算,有些人会把边缘计算说成边缘机房。
另一些边缘计算的PR稿纯粹就是拼稿尬聊"高大上",看不到任何有用的东西。
好事多磨,成事在天。云计算、AI和大数据都是炒过几次冷饭才变成盛宴的,但碰运气炒冷饭就是浪费读者和用户时间了。
我重新奉上边缘计算这盘冷饭,是带着诚意说明:
边缘计算的冷饭要变盛宴了。
下面的几个章节彼此独立,9000字的长文,可以跳读。
第二章:为何会有边缘计算
第三章:边缘计算是架构革命
第四章:边缘计算的产品分类
第五章:边缘计算的客户价值
第六章:边缘计算的产品演化
第七章:边缘架构改造原则
2. 为何会有边缘计算
好雨知时节,
当春乃发生,
5G网络出,
边缘计算成。
4G时代即存在的数据爆炸和海量终端接入,无论服务端还是客户端都承担着巨大的压力性,大家急需探索一条新的出路。随着5G带来的网络变化,边缘计算从隔夜冷饭变成了春夜喜雨,自身有技术可行性,业务也有迫切的需求。
2-1. 服务器端在负重前行
我可以武断地说,最近十几年服务端架构一直在规避问题而非解决问题,服务端就是典型的小马拉大车。
我们把视角回到2010年,那时候tomcat的并发不超过800,mysql的并发就是500以下;万兆网卡加SSD盘打破了性能瓶颈,让很多服务端应用得到了倍速提升,但后台服务的设计和调优是停滞状态的。大部分服务端程序只设计了数千并发,像LVS、Nginx这类能跑数十万并发的服务是特型异数。
企业越来越需要架构师,是因为单体服务没什么好优化的,能优化的只是组合架构。当企业遇到海量需求时,或者队列异步排序,或者分服务分库。
这就像2G时代一辆轿车装上10个摩托发动机,
到了4G时代给大货车装了100个摩托发动机。
5G时代是不是要邮轮装65535个摩托发动机?
服务器端除了计算问题还有网络问题,广域网带宽的高成本和高延迟,让很多技术选型不具备可行性。比如主流VR都选择本地计算,就是部署服务端VR的网络延迟过高、带宽需求过大。
随着带宽和流量降价,以及AI大数据和IOT技术的进步,服务器群集的性能、容量和接入带宽越来越捉襟见肘。
我们去观察那些占据资源最多的服务器端运算(比如生成各种视频流),大都并不需要集中处理,甚至不关注过程一致性;被CAP原则限制的分布式服务群集,其实该向BASE模式过渡了。
只要应用协议不变,不可能上一波写服务端的程序员总是笨蛋,服务端深度优化余地也不大,服务器端就像一匹拉大车的小马,拉不动货车就再来几匹马。
2-2. 客户端受尽软硬限制
客户端生态有硬件和环境限制,有系统和分发渠道卡脖,C/S软件架构上默认也把客户端当做不可控因素。一层层限制耗尽了客户端开发圈的活力,客户端似乎被“天经地义又无可奈何”的限制住了想象空间。
我们首先看硬件配置限制,无论是电脑、手机、家用智能终端甚至工业IOT网关,在激烈的市场竞争下,客户端硬件配置从来就是半年就落伍,三年就淘汰。
家用智能终端大部分时间是
闲置待机,但在响应需求的
瞬间绝对是满负荷运行的,
否则就是成本控制没到位。
一个手机厂商拿捏不准是否
该集成某种计算芯片,
集成了新芯片会成本提升,
不集成该芯片又缺乏吸引用户新功能。
我们再看功耗限制,台式机电源要舍得用铜料,手机锂电池已经服役超过20年了,无风扇工控机的功耗影响散热上限,IOT设备的功耗极大影响部署难度。
上述四种硬件的复合体是笔记本电脑,
操作系统升级和低功耗SSD使其
续航时间超过了5个小时,但玩个
中配游戏仍然会风扇狂转键盘烫手,
然后又没电了。
第三个问题是软件安装部署的难度,商业工程软件我不太了解,我就举几个游戏的例子。《全战三国》有18G,《魔兽世界》40G,集成Model的《老滚5》很容易过100G,应用下载就很麻烦,后面还有安装和更新的难关以及版权验证等问题。
我也借机诚邀游戏引擎开发者们
谈谈,大家因为功耗/配置/安装
部署问题放弃了哪些激动人心的
炫酷功能?看完全文你们会意识到,
这些限制都是可以改变的。
最后一个问题才是重头戏,客户端开发者在程序分发生态中一直是弱势被勒索的位置。一个APP想在发布运行——技术的、商业的、渠道的、运营的、抄袭的、黑产的,这些拦路虎或者要分享利益,或者就是要禁止你的APP。
这和上个问题的本质是相同的:
一个客户端应用只是个用户进程,
没有权限去掌控系统全局状态。
但这个客户端应用在运行过程中,
又依赖这些全局资源的配合。
客户端开发,不应该被这些“天经地义又无可奈何”的软硬件限制绑住想象空间,这些软硬件限制在边缘计算面前,都是可笑的摆设和无限的商机。
2-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进行整流排序,并进行适度的数据预处理,这样服务器端的压力承载才会有序可控。
危机危机,危险的背后就是机遇,牛顿不是第一个被苹果砸到的人。
3. 边缘计算是架构革命
前文聊服务端、客户端和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架构改造的难度还在可控范围内。
4. 边缘产品的分类
很多产品都是自称“边缘计算”,我们必须将这些同名产品进行分类,否则大家说的“边缘计算”可能根本不是同一类东西。
从产品目的来看,边缘计算大致分为三类,分别是物联网边缘计算、边缘节点计算和P2P边缘计算。从部署位置来看,边缘计算可以部署在城域网端,基站端和接入端,甚至SDK都可以叫边缘计算。下文对几大同名产品进行辨识,为避免嘲讽效果,本章节没配图。
4-1. 物联网边缘计算
物联网边缘计算能见到震撼人心的实物照片,软件研发又敬畏新硬件,所以这种边缘计算最火爆。
这些边缘计算最大的缺点是,他们只是其他行业的附属品,无论是箱子和卡车,还是IOT网关加传感器,本质上都是为其他服务做嫁衣。比如某知名手提箱的官网介绍,无论是拷贝数据、小型私有云还是数据预处理,这个手提箱的最终目的仍然是让这些数据上云。另外一些知名IOT边缘产品,它们的目的就是认证硬件、快速接入IOT和上传数据到云平台。
物联网边缘计算的本质着力点是物联网或者云计算,而不是边缘计算。
4-2. P2P边缘计算
P2P传输和计算是个古老的行业,一直走着“特定内容借流量”和“特型应用借算力”的巧路,所有的计算和传输负载都在客户端,服务端只做轻量级调度。
所有的轻巧都要付出代价,整个P2P网络里都是招募的不稳定边缘节点,“特定内容”和“特型应用”就是适用性不广泛、只能对接几个大客户的意思,而大客户的议价把控能力太强了。
随着5G和下文另一种边缘计算的兴起,P2P传输和计算可能会拿到通用稳定的边缘节点,最终开发出更有价值的上层应用,但它是边缘计算的客户而非本尊。
4-3. 服务器边缘节点
在服务器上部署边缘节点听起来就很熟,很多人就笑起来了,聊这么半天,这不就是谈CDN吗?
CDN是最成功的云服务,大量售卖且完整解决客户问题,
CDN售卖杀价是商业套路,研究不出新花样更证明其完美。
某些浅薄的人嘲讽CDN的逻辑,有点像嘲笑胡萝卜没有大蒜的味道。
边缘网络+边缘IaaS算力+网站服务,这就是CDN;把网站服务换成视频服务,这就是点直播;如果把应用层换成通用边缘计算框架,再通过5G把延迟降低到10ms以下,这就是边缘计算。
服务器边缘计算和CDN并不相同,为了拥抱通用框架,某些为CDN优化精简的功能要补回来,还要继续加新功能新资源,而且用户群在发生变化。2020年以后,云原生程序越来越多,程序员们越来越习惯使用K8S等新一代技术架构,这对边缘计算也是个利好消息。
边缘计算现在只做IaaS资源和容器云就够消化三年市场红利,将来会出现(除了CDN之外)所有行业的PaaS边缘云。
4-4. 运营商边缘计算
有些边缘厂商夸大运营商的基站节点能力,其实就是做通讯的和做IT的互不了解,智子疑邻,自己吓自己。
云计算业者连铁塔公司和运营商的分工都不了解,那就更没去过基站和接入机房恶劣的施工环境了。就算有高温X86服务器,我们也要考虑维修难度、狭小的空间和其他能聊一万五千字的施工问题。
运营商如果在汇聚机房和综合接入机房部署x86服务器,这里比城域网机房快不了几毫秒,网络延迟没发生质变。这些过度近缘小机房的覆盖用户过少、资源池过小,客户从这里获取数据的速度会比边缘大机房更慢。
比如某城域网机房覆盖10万用户,
默认放20台服务器,加载100个功能模块;
某小型近缘节点只覆盖1万用户,
只能放2台服务器,加载几个功能模块。
对于本节点没有加载的功能模块,
小节点或者去其他节点借数据,
或者引导客户端去远端访问,
两种方法都会比城域网机房的开销大很多。
运营商和云厂商在4G时代就相互有过误会,但不打不相识,最终运营商成为了可靠的网络供应商,在边缘计算时代大家更会紧密合作,共同承载客户和解决问题。
总结这一章节内容,我对几种边缘计算产品的意见很明确:
我最看好城域网机房里的服务器边缘节点,它们可以自负盈亏、有通用化的潜力、有CDN做趟路先驱、到客户群的覆盖和距离适中。
5. 边缘计算的客户价值
边缘计算的业务价值主要体现在对客户端的减负和控制上,让很多过去无法想象的业务有可行性。
这一部分和前文的2-2有重度关联
和重复,但前文说的更多是限制,
本段落更多说的是梦想。
5-1. 硬件设计更灵活
我们先看客户端减负,5G边缘网络可能比本地磁盘等零部件速度更快,这是个人计算机从未有过的新变化。
虽然手机通讯模组的功耗也不小,但手机厂商不会生产上网两小时就没电的手机的,对此我保持谨慎乐观态度。给客户端做减负,最终用户能感觉到流畅度提升和电量提升,部分用户还会为此付费。
我们考虑问题要稍深一些,客户端减负最终能让客户端和边缘端融合,甚至影响到硬件设计。
比如买手机都要考虑闪存空间,iCloud买50G的空间,五年才花360块钱,这比给Iphone扩充手机内存合算多了。当文件从集中分散到就近边缘,客户读取网络文件的速度不比本地慢,5G手机就不用买那么贵的闪存了。当网盘的数据大到无法下载到手机时,客户换新机时也必须用同一品牌同一账户才能迁移了。
边缘端还能给客户端的计算压力减负,最终让客户端的硬件设计方式发生改变。各种长寿命客户端,比如智能家居、电脑还有IOT设备,其输入输出装置都能用5-10年,但计算组件在三年内肯定会落伍;对于手机来说,试水新硬件经常是一次冒险。厂商在设计硬件时,如果可以将某些功能放到边缘端,将会获得巨大的灵活性。
注意动图,钢铁侠是临时就近装配了增强护甲。
5-2. 改变应用发布生态
边缘计算可以从软件控制层面改变整个客户端软件生态,技术上可以将客户端的运算功能全部放在边缘端,本地只保留一个视频播放器。这个想法虽然疯狂但不离谱,带来的好处显而易见。
首先是客户端的分发渠道的变化,现在各种分发渠道都会收APP的买路财,每个人手机上要装数十个APP。当任何一个APP都只是个视频播放器时,一个短视频APP可以推送游戏视频流,一个游戏可以内置交友平台,旧的APP分发渠道根本堵不住这个口子。
困扰单机软件几十年的盗版问题,可能通过边缘视频化来解决。我见到的所有云游戏客户,都在向游戏平台类Steam方向进化,虚拟化算力是小生意,卖游戏版权和分发渠道才是大生意。
随着边缘APP的访问流畅性逐步得到验证,边缘视频流天然比本地文件更保密安全和方便控制,各种在线办公系统的使用体验会和本地办公软件一模一样。
软件逃脱的只是枷锁,获得的将是新的世界。
5-3. 单一应用留住客户
当一个APP可以all in one其他APP时,用户的访问轨迹不会跳出该APP,给产品运营提供了新的想象空间。
现在用户在某视频APP里做游戏和电商引流,转跳到电商和游戏APP就结束了。而未来完全可以购买同一样东西不出本APP,A用户走的京东、B用户走的天猫、C用户走的自建商城;本APP推广的游戏也能参与内购分成,游戏分享视频必须打本APP水印。
5-4. 对技术部门的价值
我们看到了对公司全局的业务价值,再看一下对技术部门的价值,我们要说服客户的IT部门,配合边缘计算做CES架构改造。
对IT部门来说,云计算是个爱恨交织的议题,猛增的IT需求让IT部门规模增大,但是云资源廉价又充足,让很多绣花针一样细致的架构调优变得无足轻重。大部分高级工程师面对虚拟抽象化的云平台,他们只能挑剔极限性能和网络抖动,我理解这是种无聊和落寞。
在业务部门认可了边缘计算的价值以后,这些高级工程师就能努力将CS架构改变CES架构,这种体量的架构变动并不是一日之功,三五年的时间都能耗进去。我们可以看到一群聪明人,能做有价值又有难度的IT技术工作,这是一个积极互利的正循环。
6.边缘产品的演化
6-1. 边缘和云的关系
讨论边缘计算产品前,我们先要清楚边缘计算和云计算在产品层面的关联。
狭义上的云计算产品是对服务器端进行替代的组件,比如虚拟机、RDS、OSS等组件;广义上的云计算泛指所有云厂商为客户完成的IT服务。在同一个云厂商体系下营销售卖时,边缘计算就是广义云计算的一部分,在独立产品设计时,边缘计算不要受其他云产品的误导。
6-2. 边缘IaaS节点群
边缘计算厂商先要做好IaaS节点群,边缘IaaS是“节点群”而不是“资源池”,搭建和维护这个节点群是要精工出细活的。
在边缘场景下,算力载体选择容器会比云主机更合适,这是要筛选对边缘算力和网络有大量需求的客户,而且为未来做大边缘PaaS留下技术接口。
边缘网络内部几乎都是南北流量,没有东西流量,而且它是“节点群”而不是“资源池”,所以不能套用云端网络的设计运营经验。边缘应用90%的流量仍然是多媒体视频,但其数据生成和分发逻辑不能抄袭CDN。
IaaS节点群 vs 海豚一大群
6-3. 边缘PaaS方案
在边缘IaaS节点群逐步稳固的过程中,边缘PaaS产品会根据技术栈进化出不同分支,限于篇幅我只总结不展开细聊了。
首先成熟的产品大类会是定制化视频应用,类似用户自主跨云调度、私有加密协议、客户自建边缘云等场景。
第二大类是以云游戏为技术切入点,后续将进化成所有客户端在边缘端计算后,本地APP实际是视频播放器。
第三大类PaaS产品会是“IOT边缘计算”的宿主平台,无论工业、安防还是家用IOT都需要边缘端做为承接载体。
客户端默认就是碎片化的,边缘PaaS是在模拟和分担客户端工作,所以这些PaaS平台也会细分化;比如同样是云游戏,射击类游戏和即时战略游戏的PaaS产品会有明显区别。边缘PaaS产品在细化过程中会鸡兔同笼的错位竞争,最终会像一群细分领域各自称霸商业软件,而不是大一统的云服务。
最终每种PaaS方案像每种小鸟一样不同
7. 边缘改造的原则
边缘计算要求客户的IT服务从CS架构改成CES架构,我从五个角度向大家解释,IT服务做边缘化改造时应遵循的设计原则。
第一,从Edge单点角度,Edge端单点有计算有流量,但无逻辑无状态。
边缘端的SLA并不高,默认每个
节点都可以放弃,无逻辑无状态的
节点随时可以大范围弹性伸缩,
也方便客户端容错。
第二,从资源负载角度,大量公网IO、较低连接延迟、大量算力负载。
这就是筛选边缘计算的目标客户,
避免无意义的瞎折腾。
如果没有大IO低延迟需求,
那放在云端架构更简单,
如果没有大算力负载需求,
本地客户端自己计算是最优解。
第三,从节点架构角度,节点间节点内彼此独立,较少内联依赖和相互判断
保证高效率运算就要减少依赖,
比如CPU算一份数据只要1ms,
从硬盘读数据可能要10ms,
从云端数据库取数据就要100ms了。
前文产品设计部分,我推荐的
边缘容器云都要做功能简化和
性能强化,不推荐边缘云主机,
就是因为VPC和云硬盘在高性能
边缘场景里价值并不大。
边缘节点会将复杂逻辑丢给云主机,
将持久化数据交给对象存储服务,
但自己不要做这些复杂逻辑。
第四,从业务数据角度,从实时一致性向最终状态一致性优化
边缘计算是个大规模分布式系统,
根据CAP原则,我们不可能舍弃
可分区性,而边缘主打招牌就是
高性能,最终只能牺牲数据的
实时一致性了。
用户必须将业务数据拆分,对于
强一致性数据必须放回CS架构中。
客户要区分:
哪些数据是可以覆盖累加的,
哪些数据是可以幂等重试的,
哪些数据是可以延迟扩散的,
运行环境要预先部署到边缘节点,
还要区分出大量可以直接丢弃
和简单重建的数据。
第五,从工程的角度,必须做服务架构改造,自研或应用全新架构。
企业IT部门必须放弃无缝
上边缘的幻想,无论是自研
还是借鉴,都必须应用全新
的CES架构,边缘计算改造
将是一场五到十年的攻坚战。
边缘计算能带来业务价值,
其技术实现又这么麻烦,
被云计算冷落的IT架构师们,
很快就能回到聚光灯下舞台中央。
8. 边缘计算的负面焦虑
边缘计算的各种负面焦虑,反推过来都是破茧成蝶的关键点。
我最担忧的是5G网络的发展速度,最悲观估计最近几年都是4G降资费的性质。
5G发展过慢会导致5G应用发展过慢,但运营商不可能预建设一张空载的5G网,而5G应用不爆款,客户就没有改造CES架构的动力。5G应用和5G网络是先有鸡还是先有蛋的关系,边缘计算是忙着搭窝捡蛋的,5G发展缓慢必然会影响到边缘计算。
我的第二个顾虑是商业模式和市场认知,会让边缘计算陷入低附加值的泥潭。
当前4G时代试水边缘计算的大型客户,他们的诉求仍然是省带宽成本,会尽力压缩边缘IaaS的利润。只有5G应用要依赖低延迟边缘网络,而且中型客户也开始接入边缘计算平台,边缘计算平台才有充分的议价权。
我最后担心的是从业人员的模糊蛮干。各种边缘计算只是名字相同,相互之间没任何关系,从业者很难形成统一观点和标准,很容易鸡同鸭讲各说各话。边缘计算的行业跨度之大覆盖之广,在大部分公司里,超出了单个产研部门的能力范围,很容易因为部门分工而画地为牢。
附录
宣讲推广和招贤纳士
大部分IT人还太年轻,不知道单机软件演化成CS模式时,创造了多少成功的服务器软件公司;CES模式的变化,客户端生态的变革,都是给我们创造了大把大把的新机会。
我在这里打个推广广告,读完这篇文章,如果你认可边缘计算,请扩散给你们的朋友,如果IT生态真有大变化,早一天做好拥抱变化的心理准备,才能站在更好的身位。
我在这里再打一个招聘广告,边缘计算是新产品,没有相关产品研发经验很正常。请你结合本文内容想一下,在我这类面试官面前,你是不是最优质的边缘产品经理和最优秀的研发人员。
我不是HR,不招普通员工,我只欢迎顶级人才,我不要简历只要简介,请将你的个人简介发到我的“云算计” 公众号后台即可。