云布道师
10 月 31 日,杭州·云栖大会,阿里云技术主论坛带来了一场关于阿里云主力产品与技术创新的深度解读,阿里云网络产品线负责人祝顺民带来《云智创新,网络随行》的主题发言,针对阿里云飞天洛神云网络(下文简称洛神网络)领域产品服务创新以及背后的技术积累进行了深度解读,不少背后的创新技术系首次重磅披露。
在伴随阿里云十数年的发展历程中,云网络一直作为基础的连接底座,飞天云操作系统的核心组件,如影随形的服务客户;
阿里云网络始终围绕着企业大规模上云,云原生化等不断发展的需求,致力于让网络无感知的为上云企业提供高可靠、高性能、高弹性、智能的连接服务,包括:
通过打造软硬深度协同的高性能网络接入技术,满足不断变化的算力连接需求(ECS、容器、AI等),让性能可以满足任意场景和任意应用负载的规模;
通过自研的全新主动式重路由技术 ZooRoute,实现秒级重路由路径调整,让跨域网络故障收敛时间限制在 1s 以内,减少对业务影响;
通过动态感知的自适应弹性技术,让云网络服务自动适配业务增长和突发,无需提前预测业务流量和规划网络规格,更加聚焦业务本身的创新;
通过意图感知的高精度网络运维工具集,让云网络管理实现 "全场景深度观测,网络风险主动预警,故障一键诊断",实现用网管网的更简单;
如下是现场全文(约6000字):
大家好,很荣幸在这里跟大家汇报一下过去一年多,阿里云网络领域的产品和技术创新进展;我的主题是云智创新,网络随行,持续构建高可靠、高性能、高弹性、智能的云上连接基座。
云网络技术演进之路
云网络伴随着云计算的发展经历了几个阶段:在最初云计算刚被大家接受的时候,用户思考的主要是如何将现有云下的架构迁移到云上,也就是把传统的架构迁移到云上;此时用户最关注的是能不能在云上构建一张跟云下一样互相隔离、私有的网络,这个阶段对云上网络的需求体现在 VPC 带来的基础的网络安全隔离,这是云网络的 1.0 阶段。
随着云计算被越来越多的用户广泛接受,用户也开始把越来越多的应用在云上部署,规模越来越大,包括开展全球化的业务。在这个阶段,对云网络的需求主要体现在要提供高性能、大规模、全球化的连接能力,这是云网络的 2.0 阶段。
随着云计算的落地越来越成熟,云成为天然或者默认被使用的业务部署方式,很多用户的业务直接在云上展开,这个时候用户通过云原生的创新架构来部署业务,例如用 K8S 来构建业务系统。这个阶段,对网络的需求体现在要实现高可靠、超高性能、超高并发的弹性以及智能化,这是云网络的 3.0 阶段。
网络相对比较复杂,网络的对象特别多,对象和对象之间的协议特别多,连接的时候状态也特别多,这三个多就使得网络成为一个特别复杂的技术区域;其实飞天洛神云网络从 2017 年开始就提出一个理念,希望让网络更加简单一些,因此飞天洛神云网络一直致力于打造更加简单易用的云网络服务。
洛神网络技术创新之道
飞天洛神云网络,是整个云计算的连接基石,是飞天云操作系统的核心组件;基于这套架构,云网络为阿里云用户提供了丰富的云网络产品;而从技术角度来看,如何支撑高性能,如何实现高可靠,高弹性和智能,背后的技术创新就是今天要分享的主题。
高性能网络接入:软硬深度协同的高性能转发技术
首先,如何构建高性能的网络
网络的数据包转发技术是数据面的核心技术,数据包转发的实现方式有两种:一种是通过 CPU 去实现,这种方式优点非常多,比如灵活,功能可以做得非常复杂,或者说丰富,编码的效率也很高;但是这种方式也有一个明显的缺点,性能一般,不能做到非常高的转发能力;另外一种方式是通过硬件芯片实现,它的性能可以做得很高,但是受限于芯片的资源规模,它的灵活度和功能的复杂度就相对较弱。
这两者通常是矛盾的,大家自然会想到,能否采用软件硬件平衡的方法来实现一个网络数据面的转发 ?这个方法是可行的,但是通常会碰到一个问题,头重脚轻:我们可以对已经建立连接的数据包实现非常高性能的转发,但是对新建连接的性能、连接状态的更新,连接的删除等处理就会比较差。那么怎么解决这个问题?
阿里云网络实现了一种软硬深度协同的高性能转发技术
- 首先,阿里云网络在硬件里面实现了多个网络微处理单元,这些微处理单元通过对数据包的预处理,完成对数据包处理过程的加速以及对查表的加速,实现对转发性能的大幅提升;
- 另外,阿里云网络还实现了一个软件微内核,这个微内核实现了内存的管理、无中断的管理、对数据包的高性能转发,使得软件处理数据包的性能大幅提升;
- 但是仅仅实现这两个方面还是不够的,因为还是存在前面提到的头重脚轻的问题,阿里云网络通过软硬深度协同的流水线编排技术 来解决这个问题,通过将一条数据流打散,切成更多的
pipeline,然后通过编排的方法,实现转发性能和新建性能的提升。通过这一项技术,阿里云网络将整个计算节点的数据包的转发性能提升了
30%,新建连接性能提升了 67%,真正实现高性能的网络接入。
高性能网络接入:基于 VPC 的高性能高密度容器网络技术
云原生的架构已经被大家天然地接受了,因为它可以非常高效、敏捷地来进行开发,但是容器/云原生的架构也给网络带来很大的挑战,因为云网络一开始,是为虚拟机计算提供服务的,而容器对网卡的创建性能要求非常高。过去,我们在整个控制链路上,在整个虚拟化层,在整个内核这一层都没有面临这么大的挑战,面向容器急需优化。
另外一个容器带来的挑战是 ENI 的密度问题,原来一台计算节点虚拟机的数量是数百,现在容器的密度是数千,所以对云网络的挑战非常大。
我们通过基于 VPC 的高性能高密度的容器网络技术来解决这两个挑战。
首先,全新推出了 VPC CNI, 它可以和 K8S 无缝融合。
其次,推出 ENI 网卡高速插拔技术,针对前面提到的 ENI 创建的速度问题,阿里云网络从整个云网络的控制面,从整个虚拟化层,从整个内核创建 NetDev 设备的效率上面进行大幅的优化,从而提升 ENI 创建的性能。
最后,推出路由表优化等内存压缩技术,整个数据包的处理过程中,涉及到非常多的表项,需要查找路由表、session 表、安全组/ACL 表等等,密度受到内存限制。怎么解决这个问题?阿里云网络的应对方法是对内存进行压缩,这不是简单地删除某个字段,而是将相关表项的实现、存储和查找的结构、算法全部重新实现。
在 VPC 的高性能高密度的容器网络技术支撑之下,整个 ENI 新建性能提升到了 900/s,ENI 的密度提升到了单计算节点 4,000 个 ENI,这个提升非常显著,很好地适配云原生高密接入场景。
高性能网络接入:高性能AI网络技术
另一方面,随着 AI 的快速发展,尤其是在过去一年的时间内,AI应用的规模急剧增加,这里面大模型的训练,推理对GPU,GPU对网络都带来了非常多的挑战,网络如何支撑好在训练过程中对网络带宽的需求,这是一个非常大的挑战。
第一,如何提供超大的带宽;超大的带宽体现在当我们之前的网络还停留在 25G 的时候,AI 的带宽已经从 25G->50G->100G->200G,现在已经发展到 400G,这个带宽的提升是非常迅速的,这个就要求我们能够提供非常庞大的带宽。
另外一个,如何提供稳定的带宽 ;因为训练时间的长短,对 GPU 的消耗(GPU是昂贵的资源)的影响至关重要,而对 GPU 的消耗涉及到成本的问题,所以整个训练过程中希望网络是稳定的,稳定的大带宽,不要出现抖动,一旦发生抖动(比如网络断或者大时延导致训练业务超时),可能意味着训练任务要回退或重新开始,这是对计算资源的极大浪费,也是对成本的巨大浪费。
所以,AI 对网络的挑战体现在两个方面,一个是超大的带宽,第二个是稳定的超大带宽。为了解决这两个问题,阿里云网络研发了基于 VPC 多路径转发和高敏高精拥塞控制的 AI 网络技术 。
首先,推出多路径转发技术。面对超大的带宽,传统的网络交换技术无法很好应对;传统的网络交换技术的处理流程是,一条五元组的流只能走在网络的一条路径上,即使有空闲的路径也无法做负载,这就会引发一个思考,为什么其他路径空闲却不能使用?而恰恰 AI 的训练对连接数的要求不多。这意味着原来传统的网络架构实际上是潜在面临很大的挑战的。
为了解决这个问题,阿里云网络实现了一种多路径的转发技术,把一条流只能走一个路径,变为一条流可以走多个路径。而这个转发技术跟传统的路由交换技术是违背的,因此要达到此目的,你就要先解决另外两个问题:第一个问题,发送端的乱序问题;第二个问题,接收端的乱序/保序问题,所以我们的多路径转发技术背后,其实有乱序和保序的能力在保障。
其次,推出高敏高精随路检测技术,网络总会出现抖动,光纤会坏、板卡会坏,这些因素都会给网络带来不确定性。为了解决这个不确定性的问题,我们做了一个非常高敏高精的随路检测技术,通过这个技术,我们可以非常快速地发现网络故障,然后将一条流里面的一路数据包切到另外一条路径上来规避业务抖动。
通过前面的技术实现,阿里云网络将带宽的利用率提升了 60%,AI 网络里面如果出现抖动,我们发现故障到恢复故障的时间缩短到小于 1s,这就极大地保证了网络传输的确定性,减少 AI 训练反复重新计算的发生,也可极大地节约 GPU 训练资源和成本。
高可靠的网络连接:全新自研的主动式重路由技术
大家知道,当你的业务需要多地域部署,尤其跨国部署的时候,你一定需要用到长传链路。而长传链路本质上是一根光纤通过波分设备切割出来的一个二层链路,这个链路经常会碰到一个问题------光衰的问题,光衰会引发临界的问题,临界导致链路时好时坏,持续的时间短的几秒钟,长的几分钟。还有一个是市政的施工也会引发光纤的割接,而割接的时候也会出现类似的问题。
所以,在长传链路上,看起来光衰、抖动、割接都是正常不过的事情,因为它一定会发生;但是一旦发生超过 3 秒,就会对 TCP 连接带来影响,进而导致业务超时,业务超时会出现网络故障告警。
所以连接抖动的不可预测(因为不受控制),以及真的发生问题后能不能规避,能不能快速地去解决这个故障,这些都是对网络的挑战。
为了解决这个问题,我们设计了一种全新的主动式重路由技术 ZooRoute 。
通过这个技术,
第一,我们实现了一个高精度的异常检测能力。
第二个,我们实现了多因子分级的最优路径决策。同AI网络的实现类似,一条流有唯一的确定性的路径。出现问题的时候,我们知道这条长传链路出现问题了,该技术会把它切到另外一条路径上,所以一样也会用到多路径相关的技术。
最后 也是最关键的,能不能在最短的时间里面去实现发现和切换,ZooRoute 可以实现秒级重路由调整,极大缩短故障收敛时间。
通过这种主动式的重路由技术,阿里云网络将跨地域的长传网络(CEN产品)的SLA从原来的 99.95% 提升到 99.995% 。正是借助于 ZooRoute 技术,将故障的收敛时间缩短到 1s 以内(而没有用 BGP 去收敛,因为 BGP 超时收敛至少需要几十秒时间,而超过 3 秒钟时间对用户就是不可能接受的,业务就会受影响)。ZooRoute 上线后,对全网用户开启,我们发现阿里云一个月发生的 7000 多次长传链路的抖动,对业务带来的影响可忽略。
高弹性应用连接:动态感知的自适应弹性技术
另一个方面就是高弹性,弹性对基础设施的诉求是什么?对网络意味着什么?设想一下,用户在云上面部署业务,从刚开始的业务上线,到业务的推广,然后到业务的上量,这有一个缓慢的持续的增长的过程,但这个增长的过程,伴随着网络服务的实例和规格。
以前,你总要用户回答一个问题,业务流量最高会跑到多少。但我认为这是对用户的一个灵魂拷问,用户也不可能完全准确地预知到底能跑到多少。预估高了会造成资源浪费,预估低了会造成业务受损,所以我认为规格没有意义,有太多限制,所以阿里云网络在面对这个挑战的时候,思考的第一个点就是能不能把规格去掉,第二个点,能不能实现随着业务的增长而增长。
另外,业务还有一种情况,短暂的瞬时的抖动,你能不能忍受 ?为什么这是一个挑战?因为常态业务正常的增长,它的时间周期会拉的比较长,而抖动是瞬时的。你能不能根据瞬时的情况去快速的调整后台控制的资源,快速的拉起资源去适应用户的增长?其实很难,因为一定要经过几秒钟才能适应这种情况,而一旦达到几秒钟,你的业务就会受损,这也是一个矛盾。怎么解决这两个挑战?
洛神网络使用了一种动态感知的自适应弹性技术
第一个,针对业务正常的增长,我们实现了一个多维度的实时感知能力,我们会对带宽新建、并发实时地进行监测,基于它的增长实时调整我们后台的资源。比如用户有一个实例随着业务不断增长,我们就开始扩大资源供给,为用户提供更大的服务能力,这种技术可以适应前面提到的正常的业务增长。
但是业务的瞬时抖动很难,因为整个控制链路的回馈需要数秒时间。怎么解决这个问题?
第二个,针对微突发的用户的网络实例,我们会提供一定的 credit 的动态调控技术,常态化为用户准备好一定的 buffer,这样就可以解决好微突发的问题。
所以,今天洛神网络的产品------ALB、NLB、NAT 网关、GA 等都开始提供这个自适应能力,用户不再需要去提前定义自己的一个规格。第二个,我们的 NLB 产品可以让用户享受到 0~1Tbps 的弹性带宽,而且是可以在一分钟内实现。我们的 TR 也是给到用户一个 0 到 50G 的一个单实例的带宽弹性,这个是一个非常大的弹性,这意味着绝大部分用户可以忘掉你峰值到底多大,只需要关注业务增长规划;根据你的业务增长,我们可以随时提供足够的弹性。
智能网络运维:意图感知的高精度网络运维技术
最后一个是智能网络运维
正如开始讲到的,网络对象很多,对象和对象之间的协议很多,数据包的状态很多,导致网络特别复杂。网络复杂体现在两个方面:一个是建设网络的时候,拓扑的复杂性,链路的合理选择问题;另外一个更复杂的点是建好网络后,管网用网更难,因为你需要实时地知道你的网络有没有问题,这就是网络异常发现难。
第二个是发生问题之后,你要知道是不是你的问题,如果是你的问题,你的哪一个对象出了问题。
我们实现了一种基于意图感知的高精度的网络运维技术,从三个方面来解决这两个挑战:
第一,状态的感知:不管有没有问题,常态化地对这张网络的连通性和运行状态进行感知。
第二个,风险的预警:一旦实时感知的数据通过分析之后发现异常,阿里云网络将主动给用户推送告警,让用户知道出了什么问题。这些问题可能是用户的问题,也可能是阿里云后台的问题。我们把这些都暴露给用户,让用户可以区分到底是哪一层的问题。用户在自己的运维体系里面的基础设施除了网络,还有计算、存储、安全、云原生等,每一层可能都会出现问题,这些数据的提供就是帮助用户快速地判断是哪一层的问题。
最后一个,故障的诊断 :如果定位是网络的问题,怎么进一步知道到底网络出了什么问题,这里涉及到一个故障快速诊断的问题。
通过这三个方面的技术创新,极大提升了洛神网络的运维能力:
第一,深度观测能力大幅提升,阿里云网络智能服务对全网全场景(公网、专线、VPC、跨域)进行覆盖,提供 57 个观测项,让用户常态地观测云上网络的运行状态。
第二,提供 13 类网络故障类型的主动通知,主动预警,主动把告警推给用户,让用户判断哪一层出了问题以及进行下一步动作。
第三,智能网络运维服务提供 148 个网络诊断项,让用户可以秒级定位,一键诊断,判断到底是网络的哪个节点出了问题,哪个路径出了问题。通过这种方式,网络的稳定性和运维效率都得到大幅度提升,网络本身也进入深度可观测的状态。
洛神网络始终坚持技术深耕 以创新普惠千百行业
阿里云网络从 2017 年开始就提了一个理念,让网络更简单。而我们一直在思考的问题就是,把网络的复杂性留给我们自己,把简单的网络交给我们的客户。因此,阿里云网络持续地围绕着高性能,高可靠,高弹性、智能进行技术的深耕,支撑云网络简单易用的产品能力,提升用户的使用体验。
到今天为止,阿里云网络已经服务于全球 400 多万客户,我们的整个技术和产品也获得了产业界和第三方权威机构的认可。
未来,我们还将持续地按照"让网络更简单"这个理念去深耕我们的技术,为客户提供更好的云网络服务。
-> 关注阿里云开发者社区-云网络子社区,获取云栖大会云网络相关Session资料