"流动"基础设施及云计算新范式
❝字节进军云计算,IaaS少了一个大客户,多了一个大玩家。
❞
新玩家看上去也没什么新意,还是那么些架构,但背后的故事以及下一代IaaS的业务逻辑值得我们去好好的思考一下.
上云? 下云?
❝2021 年第一季度,字节在国际市场上停止与阿里云合作。阿里巴巴在财报中说,该行为导致阿里云今年一季度的收入增长从去年同期的 58% 下降至 37%[1]。
❞
一面是大量的企业喊着要上云,就和前几年搞大中台一样,另一面是云原生
的企业开始下云
,不光是字节,PDD和快手都在自建数据中心,正好最近和一些朋友聊到这事,无意间的一句话似乎点中了要害:"云计算的优势不就是在Pay as you grow么?",当不再增长,业务不再有弹性需求
时,当规模
大到一定程度后,自然就会下云
了...
因此针对基础设施建设的创新,一定不是简单的以云计算的规模效应来使蛮力,同等规模情况下的成本才是关键.看到下面这个图,顺便做一些分析:
从未来趋势来看,如果把这个图拿去用RNN炼丹,大概率是会预测到阿里云份额降到25~30%,华为云上升到15~20%。这只是简单的数字分析,大概随便找个证券分析师都会做...但我自己的看法是不同的,从行业分析上看,电商类
基本饱和,智慧城市
、数字政务
这一块逐渐的会从阿里云和华为云流出,天翼云
将伴随着自身的技术成熟度而获得更高的份额. 文娱
类会逐渐下云,市场份额会逐渐减少,游戏
教育
协作
增速会本质上是需要完全边缘化的RTN
重构,需要重金投入,金融
则是需要成熟的混合云解决方案。
因此,未来几年云计算份额分布的核心是在边缘
和成本
. 从成本上而言,正如几个月前在阿里云讲过的一张ppt讲述的
因此基于这个模式来看,阿里云营收增长但份额下降势必会继续发生,因为技术门槛敌不过价格竞争,特别是在准备上市的过程中要维持相应的利润率和营收, 另一方面针对边缘云和私有云没有统一的调度和大量投入,迟早会在成本上逐渐输给华为. 就像我以前给阿里云讲的那样:反正思科的数据中心和园区网换成华为,那么这个客户上华为云的概率就会远大于阿里云,背后的逻辑就是这样.
而字节云能掀起多少波澜?我看不清?飞书等一系列以RTN
为基础的云服务或许是变局点,但是如何维护第三方服务提供商利益,这就是一个大问题了。阿里云也面临同样的问题:) 从这一点来看,我倒是看好鹅厂
和天翼
,鹅厂以财务投资构建生态系统相对来说整个云开放程度要高于其它几家,而为什么还有天翼
,这就不得不谈论到云计算成本,特别是逐渐边缘化后的成本上,电信拥有其它云无法比拟的优势.
流动性的诞生
对于云计算的下半场,其实我们需要看的是云计算诞生的本质,从根本上溯源才能想清楚这个问题。从商业逻辑分析,云计算能够在AWS
和阿里云
做好来源于它们自身的容量规划,大促
的业务需求势必带来过剩
的容量,而这些容量需要平摊到其它人身上,这是流动性诞生的源头.
接下来我们先搁置不同行业不同应用的特征,简单的从应用程序的角度来看,本质上任何计算是以数据为中心
, 而云计算的上半场只是以简单的冯诺依曼架构并以Scale-out的方式构建,然后逐渐冯诺依曼架构产生瓶颈才逐渐的出现了智能网卡
这一类的在云上诞生的东西,其本质是Scale up
.
冯诺依曼架构诞生时的I/O是纸带,然后逐渐才是键盘和显示器,这些决定了其标量处理架构的本质:
超标量结构,SIMD,或者VLIW暂时解决了一些问题。但是只能针对一些For-loop或者顺序执行的场景,有大量分支的逻辑计算场景就有些力不从心了。所以我们还是要从数据计算本身来看
而在云时代,实际上大量的标量交互
已经发生在了前端
和终端
。我们可以很容易的用低代码
的方式构建表格,让最终用户填写数据。云端的交互更多的变成了一种API对结构体数据
的处理, 大量的计算伴随着数据的流动
发生。这就是流式计算
的处理方式,因此伴随着这样的计算方式,微服务
Serverless
流计算
这些东西,但是计算任务的分割如何处理是一个难题,这也是很多企业在微服务改造过程中遇到大量坑的地方.
因此下一代的云计算架构的核心是:
❝如何满足计算和数据的流动性需求
❞
流动基础设施
当我们进一步深究如何满足计算和数据的流动性
需求时,基础架构面临两大挑战,一个是计算任务约束
下的流动性,另一个是流动性成本
。
首先来谈计算任务约束
,时延约束
是最常见的一种,边缘计算的人都讲腻了,它对基础设施的挑战非常大,试想一个公有云以后要管理全国数万个AZ,现有的云计算架构根本无法实现。
另一个是不可分约束
,计算任务的可分割性简单的来说就是我们常见的一个话题:"哪些计算是可以被Offload的?" 传统的冯诺依曼架构的问题也就在此,当Offload了以后面临的访问延迟
、一致性
及可靠性
问题约束下,如何找到平衡点?
计算任务的分割是一个数学问题,在后面的章节详细说,但我们现在把基础设施看成是一个计算容器,因为计算任务的不可分约束
需要动态的根据计算任务组合各种资源,这也是最近软件定义基础设施
(Software Defined Infrastructure)被提出的原因,也就是说在Near Rack
的地方能够动态的组合CPU、内存、网卡、异构加速卡等资源用于比传统分布式计算获得更低延迟和更高利用率,也就是DPU
或者IPU
诞生的本质。
Gen-Z
/ OMI
/ CXL
的本质也是在Offload问题中解决访问延迟
、一致性
及可靠性
,所以看到内存等一系列器件的串行化,并通过标准的串行总线互联才是整个事情的关键:
在Rack内提供PCIe/CXL,在跨Rack提供Ethernet的能力,在跨Region的地方提供边缘计算的Pod就够了
❝DPU们唯一想多了的地方就是居然还想去干更多的事情,老老实实的把自己
❞L1交换
的能力发挥好就行了,想啥呢?
另一个问题就是流动性成本
考量,提供任何流动性是需要成本的,卖给客户一个混合云解决方案,送的管理节点比给客户真正计算的节点还多那你赚个X的钱?
所以在软硬件融合的过程中有一条非常重要的定律:
❝Software when you can, hardware when you must. Whenever possible, compute, networking, and storage functions should be done in software where reasonable performance can be attained[2].
❞
软件能做的就尽量让软件做,这也是我前几天给某云说的,你要考虑到私有云、边缘云和公有云同构的问题,这也是为什么AWS
会基于纯ARM多核来做智能网卡的考虑。当然阿里和微软面临自身的一些业务特性采用FPGA也无可厚非,其它云的智能网卡就有点扯淡了,特别是有个用Xeon+FPGA樱桃全家桶的...
当然有些东西必须要硬件加速的,但要保持整个解决方案的通用性
❝If you have to accelerate something, use the most
❞generic
andmalleable
compute engine ornetwork ASIC
that does the trick. This might mean sticking with a CPU or a GPU for certain functions, or even using an FPGA.
注意到上文中提到的network ASIC
,这就是网络计算/随路计算(In Network Computing,INC)的本质
❝即在计算任务中寻找没有前后依赖的任务,采用inline的方式在通信的过程中借助带宽完成计算处理
❞
但是这样的计算处理的算子有严格的约束,P4的诞生和SRv6中讲到的网络可编程性本质上也是这个问题,但是这两者最大的问题都来自于自底而上的设计方式,例如我在上周提到过这个SR的图灵完备性[3] 问题,架构上我并不认同网络能够实现大量的图灵完备的计算,而是可以通过一系列组合为计算和存储搭起一个更好的桥梁。
所以这也是我在几个月前在某云讲座讲到的Data-Centric ISA[4]:
以数据计算为中心的指令集体系结构和冯诺依曼结构的最大区别就是输入输出设备本身由标量变为了结构体,但是相对于一些矢量处理架构,您可以注意到结构体本身的每个字段长度是不等的。而这些操作的主要目的就是将运算中的跟数据解析封装批量写回等操作的,其计算架构本身和NanoPU以及Pensando MAU有异曲同工之妙,就是说针对结构体数据,构建Deparser直接送入寄存器,然后离开芯片时增加Deparser
或者Encoder
,但同样需要强调的是算子约束
的问题. 一方面是基于Cycle align
的处理尽量避免pipeline失速,另一个如eBPF那样,对算子复杂度和Icache利用率需要严格约束.
新计算范式的数学问题
谈到算子的严格约束,我今天跟某个云的同学说这其实是一个数学
问题,例如最简单的一个map-reduce的算法,本质上的约束来自于reduce的算子要满足可交换性,可交换性分割视角下解除了计算任务自身的时间顺序依赖. 另一个解除顺序依赖的是λ演算,并且可以通过延迟满足
(Lazy Evaluation)来提升性能. 谈到函数顺便提提泛函分析
,不动点理论直接使得很多计算问题可以用递归迭代来逼近答案,这样也可解决大量计算资源消耗的问题,采用近似计算获得结果. 然后还有利用算子的幂等性来解决传输可靠性问题.
再复杂一些,利用群论
、拓扑学
来做一些计算降维
的事情,例如<几何深度学习>(Geometric Deep Learning, Grids, Groups, Graphs, Geodesics, and Gauges)这样的书问世。说到深度学习,其算力需求最大的问题来自于其矩阵乘法
的不可交换性
.
本质上当我们需要找到非冯诺依曼
架构替代时,其源头就是一个代数问题.例如当计算任务分割后,边缘计算节点需要加密,同时也伴生了另一个问题,是否能够针对密文不解密的情况下进行计算,虽然传统的做法可以采用TEE这些可信计算环境,但数据还是有在计算过程中被盗窃的可能性,完全同态加密
(FHE)便是解决这个问题的关键,
首先我们来看同态的定义:
设和是两个群,,有,则称为到的同态或群映射
然后基于这样的加密方式下,密文搜索
多方计算
都可以在不解密的条件下对加密数据进行任何可以在明文上进行的运算,使得对加密信息仍能进行深入和无限的分析,而不会影响其保密性。
这些都是我对某云的同学说的原因,也是同时说给我自己的:"我承认你的确是想清楚了,而且的确是这个行业所有人都没想清楚,但是我还得说一句,你没有想完善,因为计算范式背后的数学问题你还不懂"
恰巧最近找人印了一本绝版好久的书放在案头:
其中有一篇文章<On the principles of large scale computing machines>非冯诺依曼
架构的人需要仔细阅读的东西,很多事情很多变革都是需要在源头去求索,懂王一般死得很惨XD
未来云计算架构探索
基础设施最终将被赋予足够的流动性,就像现在的临时核酸测试点
那样,而整个云计算结构将从计算
、网络
、存储
的抽象中逐渐的变成控制面
和数据面
的抽象,通过这些组合完成基础设施的组合、拆分和流转等行为。本质上云计算公司会逐渐的变成一个融资租赁
平台,任何技术都不要忘记其商业逻辑,想通过非标获得垄断地位的,最终都..
等以后有空了,再来写一篇从融资租赁
角度看待云计算
的文章...
Reference
晚点独家 | 字节跳动全面进军云计算 IaaS 服务,想做中国第四朵云: https://mp.weixin.qq.com/s/tR6zUFTLC5oim0hA90nE6g
[2]The Future Of Infrastructure Is Fluid: https://www.nextplatform.com/2021/03/04/the-future-of-infrastructure-is-fluid/amp/?trk=article_share_wechat
[3]SR的图灵完备性: https://mp.weixin.qq.com/s/p0_jBxKpl2NphpJbq2705g
[4]云网融合的探索: https://mp.weixin.qq.com/s/JgXXM_4NOYU1-cYq-KnqRw