多云场景下的中间件和算力网络
这是给下周一个运营商和一个云服务提供商准备的讲稿,基于DPU实现中间件和利用IPv6地址长的特性将内存地址嵌入构成一个混合寻址的解决方案可以进一步激活云网融合和算力网络的实现。
无服务器、云原生、算力网络
最近读到毕玄老师的几篇文章<云原生的进一步具象化>,<云原生的本质是实现多云多活>,<Serverless:云时代的软件架构核心思想>
正如老师所说的:Serverless思想怎么来解决研发门槛和效率的问题,我觉得核心的点就在于把业务系统开发时需要用到的各种基础技术产品都隐藏起来,并将要用到的一些基础技术进行归纳抽象,例如存储、服务交互,这样对于开发人员来说要学习的东西可以大幅减少,并且也不用管一堆依赖的基础技术产品的运行状况等,如果能做到这样呢,意味着在开发业务系统时可以更加聚焦的纯粹关注业务逻辑就好,目前看到的各种FaaS平台思想上其实会很像这种,但我觉得做的很不够
其实我自己也深有同感,在2018年构建一个基于分布式强化学习实现的智能网络架构时,各种基础架构的东西都要自己动手,从前端React到GraphQL再到后端的Gin,然后通过Golang调用tensorflow,再到底层基于DPDK采集各种遥测数据,Yang/Netconf更新设备配置, ETCD分布式协同,还有各种分布式数据库调研和基于Go的分布式流数据处理框架实现和实时AI模型推理(flink当年不支持ARM自己造轮子了)以及大量的模型训练集群调整。整个服务链条做下来也积累了一些心得,所以在一些基础架构的设计上也明白了应用的痛点。
算力的提供
算力的提供方式带来的变革,阿里自身的变革就是一个缩影
<阿里毕玄:阿里十年,从分布式到云时代的架构演进之路>
正如文中所讲的,云时代的软件架构该走向何方?
现在的算力提供更多的是采用虚拟机、容器的方式,容器间的通信又被活生生的拉出来一堆SideCar来,而伴随着SideCar和相应的监控运维体系,似乎并没有在弹性上、研发效率上获得太大的价值。
最终从算力的提供形式和弹性需求上提出的Serverless,本质上是去打破计算容器的边界,其实更加直观的看待就是去打破内存的边界,打破网络的边界。宏观来看就是内存池化
和多云通信
的问题。这也是我同时构建NetDAM
和Ruta
两个项目的根本原因,NetDAM解决多机用户态内存共享和通信I/O隔离的问题以及零损耗RPC的问题,Ruta解决互联网多云可靠通信的问题。
而这一系列问题解决后,对于应用开发就变得非常容易了,在多云的场景下构建一个完全的内存虚拟层和通用RPC层将会带来极大的好处
资源的抽象从大量的通信访问协议,变成简单的抽象层内存访问。利用中间件来传递内存指针,利用网络层路由来寻址和ACL实现内存可控访问,最终在用户态驱动内存拷贝,将底层的通信过程完全隐藏。
至于算力的提供,从数据处理本身来看,无论是面对对象中繁复的封装、继承、多态,或者还是简单的结构体配上方法,算力的落实都是函数调用,也就是Function Callback的地址和参数地址及Return地址确定后,调度器随便丢到哪个XPU上或者甚至随便在哪个云上计算都已经无所谓了。
多云场景的中间件
云原生环境中如何实现每秒上百万到上千万的中间件是一个很好玩的技术难题,抛开细枝末节的一些功能,本质上都是一个具有可靠传输的无锁队列共享内存机制及配套的调度机制。利用NetDAM内置的ALU增加CAS操作指令,您可以理解为我们构建了一个完全硬件实现的Redis。同时对于一些ID分配的事务,由于我们在以太网控制器上放置一个FIFO,每个NetDAM内置的ALU可以直接操作SRAM和报文快速修改响应GetID请求。正是因为通信和FIFO的天然存在使得CAS和自增等操作变得无比简单和高效。
由于这样的内存池实现了CAS,那么接下来实现一个无锁FIFO,同时将内存地址直接映射到用户态, 对于处理器而言则可以很容易的实现批量的enqueue、dequeue操作,而我们在这一系列操作过程中并不会直接传递内存对象,而是它在全局的指针和size即可,最终由算力的消费方去读取。
另一方面我们在多云环境下需要考虑的问题就是可靠性传输的问题,Ruta作为一个数据总线实现了多云零丢包的可靠传输:
它是一个完全基于云原生架构实现的数据通信总线, 在通信层面从根本上解决了多云通信可靠性的问题。
就这样多云情况下的Web端RPC和数据中心内或者跨云的RPC就通过一个统一的内存抽象层关联起来了,而编程也变得非常容易了。
IPv6地址+内存地址混合寻址
当然在针对一些新的云原生IPv6应用,利用IPv6地址承载内存地址并实现混合寻址对于超大规模分布式计算也有显而易见的好处,例如我们可以为主机分配/80的地址,剩下/48
可以作为内存地址,那么在整个IPv6环境中,可以通过分布式内存池和相应的中间件结构实现边缘计算算力的超融合。具体细节涉及到和运营商交流的内容,就不多说了。
《多云场景下的中间件和算力网络》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/101.html