DPU讲政治2:央地矛盾
继续说DPU讲政治的话题,当然也不排除很多从业者讲政治的目的是为了树(Tree)新(New)风(Bee),建设性的视角来看,谈到中央政府(云操作系统)和地方基层机构(DPU)的双向激励,背后的本质是什么,首先就要了解两者的矛盾。从政治经济学的视角来看,以前有一篇文章做过比较详细的阐述:
<全国统一大市场:统一的是什么? 矛盾的又是什么?>
从我国主要矛盾在八十年代初 “人民日益增长的物质文化需要同落后的社会生产之间的矛盾” 到现在 “人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。” 来看,对于现阶段云计算的主要矛盾表述如下:
前十年是 “人民日益增长的数字化转型应用及算力需求同落后的算力生产之间的矛盾” 当然历史上单体应用到分布式微服务到servicemesh的演进,或者说物理机到虚拟机到云虚机到果金属一系列转变的过程根源就是为了解决这一主要矛盾。伴随着第一代的DPU实现RDMA、RoCE、果金属、云VPC业务等功能而告终。
而现在的主要矛盾变成了 “人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾“ ,这种不平衡在哪?一方面云计算本身还没有像当时描述的那样“像电、水”那样方便,所以低代码某种意义上来看是人民日益增长的美好生活需要。而让开发者面对大量云应用或者是云原生应用需要了解和培训大量的知识,这就带来了不充分的矛盾。
随便翻开一些就业找工作的培训机构的课,你会发现罗列出了一大堆的课程Java、数据结构、操作系统、网络、分布式应用、数据库等,然后完了才有Spring Cloud或者Go Gin等框架,然后再上K8s云原生运维。我们并不期望任何一个需要用到云算力的普通商人去花大量的精力来解决这些问题,虽然可以雇佣相应的团队但这些成本也叠加在了营商成本中。对于普通商人的美好愿望或许就是像实体店那样可以自己随手就搞个促销随手摆个货架随手做个活动,直播电商某种意义上来说解决了一部分问题,但是还有更多不平衡的问题需要处理。
某种意义上来看,云计算数据中心的体系结构和我国本身的制度结构是相似的。算力的提供和调度上,云操作系统本身是有一定的自上而下的集权特征的, 而底层的算力需求则越来越多样化,例如HPC、AIDC、直播视频、云渲染伴随着原有的云原生电商等事务性应用及相应的数据库、推荐系统、搜索等业务。大量业务混跑下的算力释放不平衡不充分的问题就显现出来了。
宏观上来看走计划经济的老路也可以,反正就是那套“算力每提升1个百分点就可以带动多少GDP”,“我国总算力规模世界第二,一定要第一超过xx”,“我们人均算力还处在一个相对较低的水平” 一定要利用举国体制怎么怎么样。当然东数西算这样的工程有很大的意义,宏观上至上而下的调度是不错的,但是为什么说走了计划经济的老路呢, 因为这种宏观的调度并没有考虑到基层的能动性, 结果就是产生资本的无序扩张,在低效率的情况下拼产能。当然在这样的逻辑下,可能会有一些国内的DPU厂商靠着几个运营商吃到一些红利。
但从整个社会来讲势必需要一些基层的组织结构去协调。两个方向同时激励总比中央一个激励要好的多,但在这种情况下就面临了《分权与央地关系》中讲述了一些政府事权和财权划分的两个维度。事权上如何让基础用户更加便捷的获得算力,编程语言是否能够适应算力需求,Go还是Java或者是Rust还或者是C++,抑或是Carbon,在基础设施上前有CUDA后有P4还有DOCA,当然还有一些其它乱七八糟的东西。微服务架构本身伴随着容器网络的效率及分布式编程的复杂度如何解决,降低用户的心智需求才是关键。就像前面说Go为啥要到处都是if err!=nil …本质上就是在设计之初没有考虑到内置一个Maybe函子,但是编程语言设计通常是一个落子无悔的过程,例如C++似乎已经到了新的特性开始和以往特性打架并且学习心智也越来越高的地步,某种程度上不难理解为什么Google要去搞一个Carbon了。
那么在分布式架构面临如此多的困难的时候,DPU作为基层的组织机构是否能够有效的发挥作用呢?从这个层度来看,作为基层工作者更加深入的了解民情民意,了解基础的算力需求和表达形式,业务需求等成为最重要的一环。当然你可以要去每个普通老百姓都成为火箭科学家,搞什么函数式编程来解决一系列问题,另一种做法是承认他们心智和认知上的不完美,毕竟每一个人术业有专攻,在算力释放中降低他们的心智。是否一门相对简单的语言和一些计算block的拖动组合就能构造相应的商业逻辑并且伴随着一些SaaS构建的更大的逻辑‘块’实现全业务的声明式描述。理想的确很丰满,现实中的骨感就在于如何利用一系列工具生成基础设施的代码?所以某种意义上来说还是要退而求其次,在某种已有的但心智相对需求较低的框架下,例如Java Spring或者python下,让相对一般普通的人也能获得高性能高效率的编程执行环境?这便是DPU在其中能够发挥极大的基层干部作用的场景。
而另一个问题是财权的问题,得算一笔经济账,继续深挖CPU的效率和各种异构XPU融合的效率,当然作为基层来看,如何做到更多的业务混跑和时分复用则是一门更高的艺术,专门建一个AIDC,专门搭一套HPC环境售卖可能会比较容易,如何使得多种算力混跑这便成了艺术。而在这笔艺术上,又要更多的去看待这个麻雀虽小五脏俱全的DPU场景下自身的成本问题以及云内部组织结构沟通的问题,央地相应的财权划分在这个时候如何获得正向激励也是一个值得去探索的问题。
其实很多时候,还是我们自身认知的问题。因为DPU在未来若干年对体系结构的改动会深远的触及一些利益。就像我国基层治理中的条和块之间如何协同,如何把考评问责暗访巡视变成某种主动正向激励,组织结构上势必也需要一系列的调整,《县乡中国》在基层组织架构中给出了一些解决方案。而DPU呢?
偶然间在知乎看到一文可逆计算:下一代软件构造理论[1], 当然也有蛮有争议的王垠写的一种新的操作系统设计[2]
当然您看回复的一些内容就知道…总有些那么阴阳怪气的。其实有些时候,我们为什么不少一些主观的批评,而是多一份包容呢,他们分别从自己的领域看到一些现象并且勇敢的描述出来提出一种设想,姑且不谈其中某些部分不专业,本身这种观点的产生从他们的领域视角我们能吸收什么,这才是关键以及他们这种观点,例如过了一些年以后为什么没成功,是技术对了演进路线错了,还是技术本身就错了,或者更多的是其它的问题?
保持更加开放的心态不好么?突然想起GE的一个广告:
Ideas are scary.
They come into this world ugly and messy.
Ideas are frightening, because they threaten what is known.
They are the naturalborn enemy of the way things are.
Yes, ideas are scary and messy and fragile.
But under the proper care, they become something beautiful.
其中有句话:Ideas are frightening, because they threaten what is known. 你只是对这种威胁感到了恐惧罢了,而很多人或许天生而来的那种不敢挑战权威的性格在此刻又一次放大了,所以总有那么些人:“人家Google,AWS都没干过,你凭什么要这么干”因为自己的无知少了几分架构自信。
例如可逆计算
一文,一上来就引得一些人的嘲点,什么?居然还有图灵机和lambda演算以外的东西?一开始的一个公式中的 似乎又有几分模糊计算的味道,他谈到的
某种意义上来看,他是想解决低代码实现App的问题,一方面利用DSL构建真正的商业逻辑,即 实际上这一点DSL更多的应该是含有声明式的商业逻辑的语言,然后通过 来实现最终的基础设施的代码,然后根据 来构建一些差量。
这种视角来看观点来看是蛮有意义的, 这不契合了我们已有的一些低代码的商业逻辑么?只是低代码的生成 和最后的 这两方面本质上需要从范畴论的视角来看待,而作者是物理系的视角,另一方面对于所谓的可逆计算,当然某种意义上来看对于Docker和React的例子倒是一个很有趣的说明,例如React本身对VirtualDom的控制采用内在的State使得UI的一致性可靠性有了很大的提高,某种意义上来说Render就是范畴论的一个自然变换,然后利用Redux还可以做一些前端状态的回退,对于很多UI要做redo或者back的操作也容易。而对于流数据处理的举例某种意义上说就是数据库的某个表就是流的一个snapshot的观点,然后CDC就可以产生stream,然后stream再去消费。有一些例子,有几分盲人摸象的味道,但是严格的抽象和泛化似乎也很难,吸收一些好的,知道一些难点也就过了。
另一方面王垠从PLT的视角来看操作系统,这种视角也是值得去探索的,毕竟在云原生的时代,操作系统的壁垒某种意义上打破了,传统的冯诺依曼架构在面对大量的分布式环境中,大量的异构器件,编程语言如何在开发易用性、执行效率和并发逻辑及分布式执行容错等一系列场景中实现自身的价值?包括云数据中心数十万核的情况下,分布式内存的抽象调度和安全保护是否还和单机的方式一样?例如他提到的由于没有指针运算,系统可以直接使用“实地址”模式进行内存管理,从而不再需要现代处理器提供的内存映射机制以及 TLB。内存的管理粒度是数据结构,而不是页面。 同时为了减少数据的移动,系统或者用户可以根据数据的位置,选择:1)迁移数据,或者 2)迁移处理数据的“进程”。程序员不需要使用 MapReduce,Hadoop 等就能进行大规模并行计算,然而表达能力却比它们强大很多,因为它们全都使用同一种程序语言写成。
当然这些想法在工程实现上以及技术演进上都存在很大的问题。有些时候人不能太理想只想到进化,在物种演化的过程中倒退时常发生,而更通俗的说法我们把它称为用户生态。要把一个信奉了几十年的形成常识的东西扭过来是需要时间的, 还不如让它更快的触碰到瓶颈。而另一方期望一般程序员有足够多的心智也是不成熟的,毕竟PHP才是最好的语言嘛,所谓反者道之动,弱者道之用吧.
Reference
[1]
可逆计算:下一代软件构造理论: https://zhuanlan.zhihu.com/p/64004026
[2]
一种新的操作系统设计: http://www.yinwang.org/blog-cn/2013/04/14/os-design
《DPU讲政治2:央地矛盾》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/331.html