洞见:下一个十年的云计算架构

洞见:下一个十年的云计算架构

这张图第一次发布是在2021年3月,当时阿里云约了一个交流, 于是准备的胶片里埋了很多彩蛋,当时的文章点击下连接,可惜听者无心,不过还是很期待过几天阿里的技术扶贫大会

<云网融合的探索链接>

如今整个新一代云计算体系结构研究完成,是时候解开谜底了,也可以把过去几年和很多同事及一些其它公司任职的朋友一起完成的各种工作串接起来了。和一群有趣的人一起做了一些微小的工作. 有人说开玩笑我们这是在开云栋大会:

洞见:下一个十年的云计算架构

不过,我们也就自嘲一下叫云渣大会吧~毕竟高入云表的国家栋梁我们还是没能力的,在整个新一代云原生数据中心体系结构中,我们做了如下微小的工作:

对于终端接入云,我们实现了基于Internet 200ms全球零丢包可达的实时音视频传输RTN的关键技术创新.在接入访问控制和流量调度中,我们实现了基于人工智能的ZaDNS优选路径零信任接入访问能力(已开源).在数据中心我们实现了新一代大规模数据中分布式路由协议及SDN控制技术的研发,并和广域网RTN及用户态传输融合实现了端到端的可控转发。同时针对数据中心拥塞实现了基于强化学习的自动驾驶网络技术

通过自研DPU在计算机体系架构中取得了革命性的创新,实现了一种以数据为中心的可编程计算指令体系架构,并且整体通信延迟比广泛使用的RoCE技术低了20%抖动下降两个数量级,并针对下一代云计算AI关键应用实现了存内计算在网计算的关键加速能力。同时构建了大规模内存池化异构计算池化技术,也为片上网络和先进封装等DSA需求预留了接口。在Google swift拥塞控制基础上实现了关键性创新,隔离I/O域和计算域,在主机拥塞控制上实现了确定性延迟和更直观的缓存深度感知, 并实现了用户态内存直达和多路径访问,配合自动驾驶网络实现了确定性转发,同时针对大象流实现了网内缓存和按包拆分的能力。最后,由于我们的用户态内存直达,实现了零损耗的计算能力,计算资源直接通过用户态内存访问,实现了整个通信栈的卸载,也方便了异构计算器件的调用。

云计算的演化

Google的Amin博士在2020年SIGCOMM的keynote:

从早期的人机通信到计算机之间的相互通信,以及传统的机器互通或者业务互通,计算机体系结构的设计主要是以静态数据计算逻辑为主。本质上是撰写代码去处理数据

当发展到第三代末期的时候,复杂的应用程序已经无法在单台机器上运行了。阿里巴巴诞生在这个年代,而阿里云的诞生本质也就是第四代分布式计算架构的代表。多核心处理器的出现,Spine-Leaf这样的分布式网络架构,Overlay技术等等。伴随着这些技术人与人的沟通交互变得更加便捷,也没有了难做的生意.

但是这一代架构又遇到一些问题,一方面是由于交互产生的数据流动需要更加实时的计算。从Hadoop到Spark、Flink的转变就可以看出人们对数据交互实时性的需求.另一方面是AI/ML的兴起使得计算范式发生了巨大的变化,人开始向机器寻求洞察力。这种洞察力体现在由机器以数据为中心的计算模式,这种模式并不是简单的去处理数据,而最大的变革是要从数据中抽取能够产生决策的代码。

在这个过程中又遇到了摩尔定律的另一堵墙,核数量、Cache size、片上网络和功耗的限制使得多核处理器发展也遇到了瓶颈。当然可以靠堆一系列资源也可以解决一些问题,但这样又面临着成本的压力。正如Amin在第五代分布式计算架构所述,核心是由于摩尔定律受限于单个Socket处理器上的处理能力,因此整个系统更多的要从如何低成本交付服务上考虑。

另一方面从应用本身来看,也就有了Datacenter tax相关的讨论:

紧耦合才是避税的关键

Amdahl定律大家都懂,Scale-Out的路似乎因为规模正在终结,因此在第五代分布式计算架构需要从计算机体系结构上考虑更加紧耦合的解决方案来获得性能的提升。智能网卡提供了一些基本的连通性加速和批量数据解析、加解密、可靠传输等工作负载的加速,这些数据处理业务固然重要。但它并不是全部,紧耦合需要发生在一切有可能发生的地方,并且要以数据为中心,围绕着数据构建一个平衡的分布式系统才是第五代分布式计算架构的核心。

首先我们来看计算机体系架构的问题,如何设计更加紧耦合的架构。

第一个松耦合的地方便是软件硬件之间通过通用处理器的指令集交互,针对一些数据密集型的计算任务通用处理器力不从心,因此诞生了大量的专用加速芯片。当然另一方面CPU厂商也不停的往里面加新的指令集。

第二个松耦合地方是在物理设备虚拟机之间的overhead,利用DPU或者智能网卡构建裸金属服务器和HostOverlay便是在这个地方将物理和虚拟环境更加紧密的耦合在一起。

还有一个松耦合的地方是应用网络间通过传输层协议解耦,虽然有了一些传输层协议的发展,例如QUICRoCEv2,但是真正的应用和网络的紧耦合技术方案还并没有那么清晰的展现出来。QUIC通常用于广域网弱质量时的通信传输优化,RoCEv2主要用于数据中心内部低延迟的跨机DMA访问。

因此我们还会不停的反思,为什么需要传输层去耦合应用和网络。网络保证好拥塞控制、可靠传输、及提供足够大的带宽就好,理应和应用完全无关?

下一代云计算体系结构

正是基于上述介绍的思考,我们从2018年开始逐渐在各个子系统上进行了系统设计。

2018:应用性能评估

在大规模分布式系统中应用由于传输带来的性能下降是第一个需要挖的地方,而一切决策需要从量化数据来。因此2018年我们通过一系列测量手段和AI/ML推理实现了应用性能评分及故障点的自动归因。

2019: Nimble分布式AI自动驾驶网络

有了应用性能评分以后,我们就可以根据评分模型进行强化学习了,具体实现也不多谈了,有保密技术。通过网络设备自带的AI引擎实现了任意拓扑零丢包自愈技术,即自动驾驶网络技术

更多的视频可以参考:

最终实现了一个简洁的分布式人工智能的自动驾驶网络

2020: Ruta SDN和SDWAN的大融合

这一年研发了Ruta,一方面是针对BGP协议无法适应云的大规模数据中心要求,另一方面是针对云数据中心incast情况,提供动态的路径规避,另一方面是将云广域网SDWAN接入进行统一处理。借助2020年的成果实现了数据中心的

《云原生路由架构探索

《Ruta实战及协议详解

当然从广域网来看,也轻松实现了全球200ms全球零丢包可达,为云接入提供了最稳定的骨干网络,这样为分布式边缘计算云网融合及大量实时视频业务提供了稳定的基座

详细路径日志可以访问:

https://github.com/zartbot/ruta_demo/blob/main/multicloud/log_opt

其背后的逻辑是利用公有云的全球覆盖资源,同时借助公有云内部的一些Dark Fiber或者跨数据中心的广域网带宽资源自动发现优质路径,

2021: NetDAM

当接入云和云底层可靠性传输的问题完全解决后,那么剩下就是云内计算资源的优化了, 本质上就是为了解决通信经过Kernel的一系列负担,还有虚拟机的各种负担。

最终看到冯诺依曼瓶颈把一切问题归咎在了内存上,如何放置内存,如何利用内存便成了破局的关键,加上在网络侧有了前两年的积累,而在主机侧有了CXL、CCIX等新型总线的助攻,整个架构就豁然开朗了:

《DPU新范式: 网络大坝和可编程存内计算

NetDAM实现了一种以数据为中心的网络,当然下图的原作者是Xilinx的CEO Victor,成本控制是关键

然后根据Google SWIFT的分析,拥塞可以解耦为主机和网络两端,我们就顺势将内存作为一个大坝放置在两种网络之间:

因此NetDAM解决了数据中心网络中Incast的关键问题,主机拥塞被隔离开了,而延迟成为确定性延迟,并且实现了比RoCE快20%的低延迟通信能力

惊爆:居然比RoCE快20%

然后针对第五代分布式计算架构的关键问题,分布式人工智能,我们通过存内计算实现了加速。

神奇:内存池化和分布式AI集群优化

整个集群在分布式AI训练Allreduce性能数倍于RoCE网络,同时我们也借助这样的技术实现了大规模内存池:

并且针对虚拟机和容器等,我们实现了基于用户态内存接口(Memif)的直接访问,这样连通信协议的开销都省了

另一方面,针对Datacenter Tax中大量的压缩和加密业务,我们实现了可编程指令集的inline卸载:

NetDAM:可编程指令集架构,以加密卸载为例

并且针对数据中心内可靠传递的低延迟和高带宽需求,实现了完全的拥塞控制,利用分治解决了主机拥塞和网络拥塞,基于可交换算子的设计使得通信借助多路径成为可能也成为和Ruta耦合的关键技术

NetDAM拥塞控制

最后通过用户态的memif解决了Serverless的一系列难题,使得处理器直接使用用户态内存访问,几乎使云数据中心的计算负载趋近于最优:

NetDAM Serverless实现

大概就是这么些微小的工作,串在一起把整个云计算数据中心的消耗点都清理了一下

洞见:下一个十年的云计算架构》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/61.html