编者按:
一个全新的云计算时代即将到来,全新的应用生态和全新的云计算基础设施正在被定义,以AI为代表的密集计算应用生态,需要高带宽、低时延的并行计算性能。阿里云通过深耕自研技术,为数智驱动型企业和机构,提供兼顾规模和效率的云计算服务。
全文约3481字,建议阅读时间9分钟。
阿里云已经采用自研的多种网络平台构建了 超大规模数据中心网络 ,这张网络历了诸如 双11流量洪峰 的考验,其网络 流量 之大和 并发交易数 之高是业界罕见的,阿里云网络团队自研的各种网络平台成为中流砥柱,经受住了各种考验, AliNOS 是这些自研平台的网络操作系统,也是达到 HAIL (Highly Availability、Intelligence,and Low-latency) 目标的幕后英雄之一,今天我们来讲讲AliNOS的起源和发展,揭开它的神秘面纱。

基础网络架构演进
我们先回顾一下 阿里云基础网络架构的演进历程 ,这有助于更好理解阿里云对自研平台网络操作系统的需求、AliNOS的设计理念及其发展方向。
在2017年以前, OTT 作为最终网络产品用户看到的网络设备及能力如下图所示:

主要的痛点集中在以下 四个方面 。
商业网络设备软硬件设计对最终用户不透明
作为网络最重要的组成单元在 规模化部署 后,设备内部器件的 成本、失效率 都对整体网络有着 巨大规模化效应 ;
设备的功能实现无法按需定制
复杂的系统特性排期长 无法快速交付 , 无法满足大规模数据中心要求 ;
不同厂商的运维管控方式各不相同
由于云规模化的特点,多厂商供应是客观存在的,但 不同厂商的运维管控方式各不相同 ,这对自动化管控造成非常大的挑战;
交付及设备修复需要通过厂商的运维体系
链条长 ,从而对 时效满足度低 。
为解决上述痛点,从 2017年 始,阿里云数据中心网络确立“基于全自研平台,分布式超大规模数据中心建设”的宏伟目标。构建超大规模全自研数据中心,第一出发点是要解决 HAIL架构 中的“ Highly Availability、Intelligence ”,这样才能满足大规模部署要求下的 自主可控节奏、规模化交付效率和运维高自动化 。阿里云自研白盒网络设备,结合 自研操作系统AliNOS ,与后端的监控管控自动化作为一个整体进行设计和研发,从而得以 全面解决架构、建设及运维 各角度在超大规模数据中心的 高可用、低成本、快速迭代及智能化 的网络诉求。通过白盒化,网络产品用户看到的网络设备及能力,转化成如下图所示的特点。

白盒设备
标准化、模块化 白盒设备硬件组件与软件集成,提高效率、降低成本,从而丰富生态,加速白盒规范化网络发展。
DevOps
研发、架构、运营、自动化工具平台 等多个团队参与基于自研交换机的体系建设,深度devops定制符合阿里云 数据中心架构、交付逻辑和运维沉淀 的重点需求,并能快速迭代,打造了专属阿里云的企业版SONiC-AliNOS网络操作系统。
IBN
通过一套网络操作系统AliNOS的标准化南北向接口,从而使得IBN在阿里云网络以 更标准、更完整 地规模化实现, 提升网络整体稳定性 。
自动网络
端到端全自研 ,让阿里云大规模数据中心网络实现了接近 全自动化交付 ,和运维的 自驱动自适应的高可用智能网络 。
互联网重新定义了网络系统,白盒化解决了HAIL架构中 “HAI” 代表的 高可用和智能化运维 。HAIL架构中 “Low Latency” 所代表的 高性能 ,则成为了驱动阿里云数据中心网络全栈深度自研的动力,给出了一个持续的发展方向。 2019年 ,基于AliNOS构建的自研交换机及配合 高性能网络的RDMA 技术正式大规模上线。这是一个通过可预期网络架构中的端网融合技术及AliNOS创新,为上层业务打造的超越现有商业解决方案可提供能力的极致 高性能、高稳定RDMA自研网络 。
在成功高效地部署百万级端口,在数据中心内为业务提供 高可用、高效率、智能化 以及以RDMA为代表的高性能网络后,阿里云基础网络为进一步服务到更多最终应用和客户,提出了 端网融合可预期网络(Predictable Network) 的新型技术体系,这也代表着AliNOS走出了数据中心,开始走向更广阔的领域。

SONiC的前世今生
AliNOS是建立在SONiC基础之上 的,同时它还集成了阿里云业务和运营需求的一些功能优化,在介绍AliNOS之前,我们先来回顾一下SONiC的前世今生。
SONiC(Software for Open Networking in the Cloud) 是一个开源的,以 Linux 为基础的网络操作系统。这个系统由三部分组成。从F RR社区(Free Range Routing) 取得了一套完整的网络协议栈,如 BGP、BFD、LLDP 。通过 OCP社区 (Open Compute Project) 定义了一层 软硬件解耦合的APIs-SAI(Switch Abstraction Interface) 。这层APIs使得软件和交换芯片ASIC可以 独立演进迭代 。这也使得自研平台可以根据自身需求来选取适合的交换芯片ASIC,以达到最高性价比。

SONiC自身通过SONiC社区的努力把 协议、配置及交换芯片ASIC 组合起来,构成网络设备的控制平面。SONiC社区是为这个开源网络操作系统的合作而成立的开源社区,现在社区有 7个创始成员,几十个贡献组织和上千个做贡献的活跃成员 ,阿里巴巴是早期创始成员之一。这个开源社区也不是一蹴而就的,SONiC最初从一个OCP旗下的项目成长起来,于 2022年正式引入Linux基金会 。
网络操作系统是一个非常复杂的系统,不少设备厂商为了让一个系统支持多种网 络设备、协议和不同客户的需求 ,不得不提升设备厂商自身网络操作系统的复杂度。如北美一家知名设备厂商为电信运营商支持 IEFT YANG model ,同时又要为云运营商支持 Open Config YANG model ,而不得不在一套网络操作系统里支持两个不同配置的 YANG model 做相同的事情。为了降低复杂度,SONiC最初的定位只是TOR的网络操作系统,还做了不少简化,即使这样,SONiC也还是经历了一个痛苦摸索和演进的过程,不少早期工作在SONiC上的人都有一本辛酸血泪史,大家都是一步一坑地通过摸索、完善,才逐渐爬出来的。
经过多年的积累,特别是包括阿里云在内的多个云厂商的实战经验打磨, SONiC已经成为业界认可的网络操作系统 ,不少初创公司以SONiC为基础很快建立起他们设备的网络操作系统,快速推出自己的产品,从而推动了整个网络新技术的快速发展,阿里云通过与社区的交流在不断贡献的同时也获取了不少适合自身发展的网络技术。


AliNOS的现状
AliNOS是伴随阿里云自研网络平台的成长而成长起来的,由于阿里云网络的规模庞大,厂商难以保证他们的软件能够有效支持这么大规模的设备,并跟上运营、变更的节奏,因此可以让厂商代工自研设备,但必须自己掌控整个软件栈,才能有效实现 问题的快速修复、需求的快速响应、新技术的快速推出及安全的验证 等要求。
“求真务实,简单开放”是阿里云基础设施团队的工作理念,在这个理念的指导下,阿里云基础网络团队选择了以SONiC为基础,研发AliNOS这款适合阿里云需求的网络操作系统。AliNOS的软件代码主要分为三大部分: SONiC的软件代码、交换芯片供应商提供的SAI/SDK相关代码,以及阿里云内部的监管控工具 。SONiC的软件代码包括了 FRR的网络协议栈 和 SONiC的控制平面 部分。阿里云基础网络团队还在研发、运营过程中不断对SONiC软件代码进行优化改进。
本着简单开放的原则,阿里云也分期分批地将这些优化改进回馈社区,如去堆叠的想法及研发结果就是阿里云依据自身的运营经验介绍给社区的,目前已成为行业的事实标准,大幅降低了服务器双上连的网络系统复杂度。
AliNOS已经支持了阿里云数据中心 网络5.2架构 , 6.0架构 的大规模部署,现在AliNOS开始了 7.0架构数 据中心网络开发。此外,AliNOS也开始用来支撑广域网及边缘网关设备,特别是对自研路由器的支持给AliNOS带来了不少挑战。不久的将来,AliNOS还将用来管理一些新型的网络设备,如 DPU 等。


展望
阿里云基础网络团队的工作理念是“ 求真务实,简单开放 ”,AliNOS的研发也是本着这个信念进行的,从数据中心网络拓展到了 广域网、边缘网及DPU ,AliNOS将遇到不少新的挑战,这些新的挑战也是动力,激励阿里云基础网络团队继续做好AliNOS,让AliNOS成为建设 端网融合可预期网络 的基石。我们也希望通过和开源社区的合作交流,让我们的网络更加简单开放,我们的工作更加求真务实,推动全球云网络的共同发展。