近日,2021年度浙江省科学技术奖揭晓,由阿里云牵头联合浙江大学攻坚的超大规模高性能云计算网络系统(阿里云洛神系统)荣获浙江省技术发明一等奖。
由多名院士及资深专家组成的专家评委会对阿里云洛神给予了极高的评价:
“
该项目技术复杂,研制难度大,在虚拟网络高速转发、网络状态实时多尺度观测、大规模网络高性能调控等方面具有原始性创新,达到了国际领先水平,是我国在云计算网络领域赶超世界先进水平、构建自主生态的成功实践和重大成果。
”
从一开始的一片空白到现在的完整体系,洛神云网络中间经历了三次重大技术升级。本文将揭秘阿里云洛神云网络的起源以及如何历经三代演进到今。
01 缘起飞天
2010年,阿里云用服务器搭载软件的方式,开发出第一款云网络产品——负载均衡SLB(Server Load Balancer),对网络流量(网络上传输的数据量)进行均衡分发。由此拉开了云网络高速发展的序幕。
跟“飞天”操作系统一样,云网络也有一个属于自己的取自中华传统神话的名字“洛神”,洛神是掌管河水之神,象征着连接、汇聚和流动,这也契合了云网络连接数字世界的定位。
洛神云网络发展到现在经历三个重要的阶段:
2010年的洛神1.0,即云数据中心网络;
2016到2020年的洛神2.0,是云广域网络;
再到2020年开始的洛神3.0,是应用-云-边-端一体的智能网络。
在不同的阶段,洛神云网络给用户提供了不同的产品能力,满足用户的网络需求。
02 从零起步
自研云计算网络,说起来容易,但是做起来无比艰难。区别于传统物理网络设备,云计算网络天然有三大特性:多租户、大规模、高弹性。
多租户:云计算网络天然是一张多租户的网络,需要让不同的租户的应用能同时运行在这张网络上,并且不用租户之间的网络能互相隔离。
大规模:云计算的本质就是将资源通过虚拟化技术进行池化之后以更高效的方式提供给用户,云计算的规模越大其池化效果越好,因此,云计算网络在管理和控制技术上需要突破传统网管技术至少一个数量级才有可能达到这种规模
高弹性:云计算网络需要能为用户提供按需使用的弹性调度能力,针对用户的高带宽高吞吐的场景还需要提供超高性能的网络转发能力。
针对这三个特性,2009年的阿里云面临的是三个空白:
学术方面:以Jennifer Rexford为代表的国际网络领域学者从2004年开始探索如何让网络的管理和控制如何更加高效灵活。
其中最有代表性的是04年发表在SIGCOMM会议上的“Network-Wide Decision Making: Toward A Wafer-Thin Control Plane”,首次明确提出了转发和控制分离的理念,这为后面Software Defined Networking的诞生奠定了理论基础。
回到国内,2009年国内在学术上对SDN领域产出稀少,学术上的研究储备基本空白。
技术方面:VXLAN以及NVGRE等用于多租户的云计算网络报文格式还仅仅是草案;
以VMWare为代表商业虚拟化软件公司有一套私有的虚拟网络解决方案,并且已经实现了多租户虚拟化网络;
OpenStack, OpenFlow等开源技术方案也尚未出现,对于阿里云来说当时几乎没有可以借鉴的技术来实现一套多租户高弹性的云计算网络。
产品方面:以亚马逊AWS以及微软Azure为代表的云计算厂商已经在该领域深耕多年,AWS推出的VPC(Virtual Private Cloud)几乎成了云计算网络中数据中心网络上云之后的标准模版。
随后几乎所有的云计算公司在网络领域都会以VPC这个产品为基础打造自己的云计算网络产品体系。
阿里云作为后来者面临从零开始搭建自己的产品体系,并且不得不考虑被海外公司培养好的用户习惯,这对刚起步的阿里云云网络产品有很高的要求。
如果不解决云网络的这些问题,阿里云在最重要的IAAS层就不完整,飞天也就缺少了它的一个关键子系统,如何破局是阿里云云网络团队需要面临的第一个挑战。
03 初见雏形
为了能让阿里云的业务跑起来,阿里云开始了洛神1.0的自研,并且将目标定位为多租户的云数据中心网络。洛神1.0的核心由两部分组成:基于X86实现的虚拟网络转发层和第一代阿里云SDN控制器。
基于X86的虚拟网络转发层
云计算通过将数据中心虚拟化给客户带来极大的便利和应用价值的同时也让数据中心网络实例密度提升了数十倍,交换机的ARP表、MAC表的容量相继出现了瓶颈,传统的物理设备无法支撑容纳这么多的虚拟机IP。
针对这些问题,洛神1.0研发了一层基于X86的虚拟网络转发层。其根据部署所处的位置,可以分为两个关键的组件:部署在计算节点端侧的虚拟交换机vSwitch和部署在数据中心出入口的虚拟网关。
通过将业务逻辑从内核态迁移到用户空间来减少内核协议栈损耗,洛神1.0的虚拟交换机性能达到百万级PPS,万兆带宽,虚拟网关单机性能达到千万级PPS,百GB带宽,能力足以支撑当时的大部分主流应用,比如web网站、政务系统、在线游戏等等。
第一代SDN控制器
洛神的第一代SDN控制器严格遵循了学术界将data plane和control plane分离的模式,由一个纯软件实现的控制器(Controller)去控制数据面的行为。整个控制器由两部分组成,Northbound(北向)负责管理租户的实例,Southbound(南向)负责管理虚拟网络设备。
通过这套基于软件实现的网络控制器,洛神里面所有网络配置都统一由它管理,转发设备只需要专注于按照规则和配置去处理报文。
这种设计不仅极大地简化了转发层的设计复杂度,让转发能专注提高性能,同时也让洛神能更灵活得对外提供新的产品和功能,也奠定了洛神的整体技术分层。
04 性能飞跃
洛神1.0伴随着国内云计算的飞速发展,时间来到2016年,阿里云的业务已经不仅限于国内几大地域,海外客户的快速增长要求阿里云需要尽快覆盖全球更多地域,而网络则是阿里云拓展边界的先锋,洛神需要从一张张数据中心网络走向全球互联的广域网。
另一个决定了洛神发展趋势的是云上出现了超大规模的企业客户,最典型的就是阿里巴巴自身的核心业务全栈上云。
在洛神1.0时代一个VPC内通常容纳几百到几万台虚拟机,很少客户拥有十万级以上规模的虚拟机。但是阿里巴巴核心业务上云则直接要求单VPC百万级虚拟机,并且Tb级的带宽要求也远超之前的中小客户,这些技术指标是第一代洛神无法提供的。
面对上面的两个变化,阿里云开始了洛神2.0的研发,也是通过这一代洛神实现了技术指标的飞跃,在关键性能及规模指标上赶上了国际友商。相比1.0,洛神2.0有三大技术突破:
在数据面,自研Sailfish:可编程高性能虚拟网络转发层,通过网络加速芯片以及可编程交换机实现了Tbps的转发能力,从而突破了性能瓶颈。
在数据面,自研Cyberstar: 弹性网元平台,基于虚拟机构建了一套NFV转发平台,从而实现了云网络网元技术的NFV化。
在管控面,自研第二代阿里云SDN控制器:实现了十万级设备的秒级配置下发,单VPC支持百万级虚拟机,从而突破了规模瓶颈。
Sailfish:可编程高性能虚拟网络转发层
网络设备的技术演进始终呈现螺旋上升的发展态势,围绕着灵活性和高性能,软件和硬件在相互融合、相互促进。
从最开始的专用硬件转发设备,到软件转发+通用x86设备,再到目前硬件卸载的软硬一体化转发设备以及大行其道的可编程转发设备。
灵活性和高性能就像一只无形的手,引导着技术的持续发展。而在这方面,云计算服务商的驱动力更大,促使云网络的研发走在了业界的前面。
为了能在进一步提升性能的同时保留软件的灵活性,洛神2.0通过软硬件结合的技术自研了一套可编程高性能转发层:Sailfish,其主要部件有负责大流量转发的P4可编程交换芯片,负责大表项转发的自研网卡芯片,负责业务编排和智能调度的CPU模块。
Sailish单机可以支持Tb级,不仅为大客户上云解决了网络连通性的问题,更解决了超大带宽挑战下的规模、性能、效率等一系列问题。
Cyberstar:弹性网元平台
网元是云网络的重要组成部分,为用户提供了丰富的增值功能,解决端到端、点到点的连接问题。
最初的网元基于X86服务器构建,但随着更多大型企业用户上云,用户对弹性的要求越来越高,经常提出突增百倍甚至千倍的弹性需求。
在这样的背景下,原有的基于x86服务器构建的技术架构就不能满足业务需求了,Cyberstar 1.0应运而生。
CyberStar弹性网元平台最大的特点是网元不再直接部署在裸金属服务器或专用计算资源池内,而是基于公共云上ECS部署,基于ECS构建意味着资源“无限”,弹性“无限”,解决了采用物理服务器部署扩容长、弹性扩展困难等问题。
CyberStar弹性网元平台广泛应用在应用负载均衡ALB,NAT网关,PrivateLink,CEN-TR,全球加速GA,VPN网关等核心产品。应用负载均衡ALB提供每实例100万QPS能力,并可“无限”弹性,真正做到让用户按需弹性。
第二代SDN控制器
第二代阿里云SDN控制器有两个使命:一是实现洛神全球一张网的统一管理;二是支撑单VPC百万级虚拟机的超大规模。
为了达到这两个目标,第二代SDN控制器在第一代的基础上做了两个关键变化:
自研跨地域网络控制系统:
区别于第一代SDN控制器围绕云数据中心进行数据中心内的网络管理,第二代SDN控制器需要具备全局管控能力,因此在之前的北向层之上增加了一层跨地域管控层,来实现跨地域的网络调控。
自研高性能南向配置层:
为了能让控制器能稳定可靠的管理大规模的网络设备,第二代SDN控制器重新设计了南向层,通过一套自研的配置协议及服务来实现高性能大规模的南向设备配置能力,从而突破南向设备管理的规模瓶颈。
第二代SDN控制器的上线对实现洛神全球一张网的目标,支撑百万级设备管理、单VPC百万级虚拟机的超大规模至关重要。
05 万物互联
对于洛神而言,洛神1.0构建了一张云上的数据中心网络,洛神2.0在这个基础上将云网络的范围扩展到全球各地形成一张超大规模高性能的全球化网络。
而新一代洛神需要在前两代的基础上真正做到面向企业客户的应用场景来提供场景更丰富、能力更差异化的访问能力。因此,洛神3.0应运而生。
如果用一句话来定义洛神3.0,那就是一张应用-云-边-端一体的万物互联的智能云网络。洛神3.0有三个核心技术特征:
网络智能化:用数据赋能网络,让整个网络的管理和控制更加简单、高效、智能。
面向应用和生态:洛神3.0是一张开放的面向应用和生态的网络,不仅会提供面向应用生态的服务连接,并且也会成为面向云原生的基础设施。
云边一体、万物互联:为了能满足不同应用场景,洛神3.0不仅会与5G等其他网络技术进行融合,并且也通过小型化等技术输出到更多环境里提供网络服务。
Cyberstar2.0: Serverless网元平台
随着业务需求的不断发展,网元的不断丰富,新网元的不断出现,结合技术架构演进,推出了新一代的Cyberstar2.0平台。
Cyberstar2.0定位于构建通用、灵活的网元平台能力,用Serverless技术推动业务网元创新,降低业务网元NFV化的门槛和成本,提高产品能效,带来超高弹性、任意部署、极致成本的网元竞争力,促进网元长久健康发展,助力云网络的发展。
Cyberstar2.0平台让网元业务方专注于业务逻辑本身,为网元提供高吞吐、高并发、高新建、高可靠、高弹性、快速交付、小型化部署、低成本、易部署、易运维、三方网元集成等的能力支持,为网元提供更有竞争力的技术方案,获得更大的技术优势和成本竞争力。
网络智能化
随着洛神规模的快速增长,运维方面的挑战开始凸显出来。总结来说洛神在内外部运维上核心面临三大挑战:
可观测:面对高度动态变化的网络拓扑,如何实时观测到整网、节点以及链路的质量,即时发现网络异常。
大规模:从第二代洛神支持单VPC百万级虚拟机开始,洛神在虚拟网络资源的数量级就开始快速增长,到洛神3.0时代全网核心虚拟网络资源的数量级已达千万级,不改变运维模式,仅人工运维的成本就是第二代时代的十倍以上。
高复杂:经历三代洛神演进,洛神已经成为了一张多层次、多模态、异构的复杂网络模型,靠人工经验管理这张网络变得非常困难,运维决策的成本高。
针对这些挑战,洛神3.0开始将数据融合到运维和管控中,在内部打造了一套智能化运维平台-齐天,在外部输出了包括NIS、CEN等网络智能化产品。
以齐天为例,洛神自研的齐天运维平台为了克服以上三大挑战自研了包括vTrace、虚拟网络可视化分析、分布式主被动测量,无人值守等运维能力。
其中,vTrace成为国内云网络领域首次网络领域旗舰会议SIGCOMM的论文。
06 展望未来
今年6月,阿里云提出了”Back to Basic”战略,回到云计算的本质,坚持技术长征。
回顾洛神的十年演进,更高性能、更大规模、更高弹性一直是洛神技术演进的方向。
从基于X86的虚拟网络转发层到可编程的高性能转发技术,从第一代传统的SDN架构到超大规模的第二代SDN控制技术,从基于物理机的网元技术到基于虚拟机以及容器的超高弹性网元平台,以及从传统的自动化运维演进到数据融合的智能化网络运维,洛神不断的通过软硬件深度协同的模式在打破技术瓶颈。
作为阿里云云数据中心专用处理器CIPU中网络部分的核心技术组成,洛神不仅需要在各项技术指标上继续深挖,同时也会探索5G融合,边缘小型化等新领域,帮助阿里云拓展云的边界,助力阿里云重新定义下一个时代的云计算架构。