可编程网络系列(二):软硬结合 看阿里云自研新一代SNA场景化应用

简介: 阿里云自研新一代SNA场景化应用

首图-图标.png


文/温平华(鸿濡)


云计算伴随着我们发展了十几年,带来了经济的高速增长,也带来了更实在的普惠。想想几年前随身携带的U盘,想想再前几年大行其道的软盘——我们用十年时间完成了从随身携带硬件到在云端存储、访问和编辑一切的转变



阿里云“云&科技”理念,深刻的诠释了硬核技术的力量,特别是双十一带来的科技盛宴。在享受这场盛宴的同时,网络也面临着诸多挑战:


  • 高带宽、低延时的需求持续增长
  • 海量网络信息和数据的转发
  • 数十万级的网络设备
  • 数百万级的物理和虚拟业务节点
  • 频繁的网络变更和优化
  • 网络可视化和监控要求越来越高


1.png

为应对这些挑战,阿里巴巴自研了软硬件一体机SNA(Smart Network Appliance)设备(如上图),来满足业务高速发展需求,它具有以下几个特点:


  • 自主可控
  • 提升软硬件稳定性
  • 提升管控和运维效率
  • 提升架构迭代速度
  • 提升性能、降低成本



01 背景


在阿里的整个网络基础设施中,不管是中心云还是边缘云,都部署了非常多的网关设备来处理和转发我们的全球业务流量,包括负载均衡网络地址转换安全防护等等设备。


早期我们采用了X86服务器加软件的方式来实现这些网关和网络服务功能。但随着业务规模和复杂性的持续增长,单纯依赖DPDK X86架构来处理不断增长的流量变得越来越困难,在性能、稳定性和成本上都遇到了相当大的挑战。当业务流量达到Tbps水平时,基于软件的服务能力就捉襟见肘,单核CPU的性能在处理大象流时更是出现了瓶颈和风险。而在不断增长的边缘场景下部署众多类型和较大数量的软件网关服务器则显得臃肿和不经济,这也对超融合与一体化提出了更高的要求。


我们从5年前就开始思考如何利用我们在软硬件一体化设计和白盒化上沉淀的能力来帮助我们应对这些问题和挑战,通过对各类业务痛点的解读与分析,着手研发了SNA(Smart Network Appliance),一个融合了可编程交换能力和超强算力的一体化高性能网络平台。如今SNA早已在中心云和边缘实现了大规模部署,承载着核心的业务流量,并且平滑地经历了多次双十一大促高峰考验。


2.jpg


阿里云自研可编程网络平台SNA作为新一代网关底座,结合了超融合可编程一体化硬件、阿里云自研网络操作系统、NetFrame高性能网关框架以及阿里云网络整体运营体系,支持网络服务和业务的灵活开发与部署


44444.jpg

3-2.jpg



作为底座中的底座,SNA采用软硬件解耦的方式设计,那SNA的硬件架构是如何考虑和构建的呢?



02 硬核技术一:硬件


硬件有着长周期和大投入的属性,架构设计的好坏直接决定了整个平台的生命力。在整个硬件平台的创新构建过程中,主要考虑这几个方面:性能灵活性部署成本,既要提供强大的性能,又要适配灵活多样化的业务场景,还要支持规模部署。


通过对各种网关和网络服务的需求分析,我们设计了一个多路径的硬件架构解决方案,可编程交换芯片、FPGA/加速卡与X86 CPU组合形成了一个三级数据流量处理路径。X86同时担当着多路径实时调度和配置的角色。考虑到空间和部署的便利性,我们把SNA设计为2U的紧凑型机箱。在这样紧凑的空间内,我们针对灵活性的目标挖掘潜力,对外除了提供32个100G QSFP28网络接口还支持多达6个标准PCIe槽位,针对不同业务提供灵活的硬件配置选项


修改图片1.png


可编程交换部分采用了支持P4的商用可编程交换ASIC,通过编写P4程序,网络流量可以直接通过可编程交换芯片进行硬件转发和处理,或者通过可编程交换芯片送到FPGA、加速卡或X86 CPU进行进一步处理和计算。


从灵活性考虑,我们并没有在系统内部实现全部的多路径之间的高带宽转发通道。可编程交换芯片和加速卡/FPGA之间的转发带宽能够根据不同场景的需求通过外部高速互联实现扩充。可编程交换芯片可以被认为是整个硬件平台的核心,不仅提供了高速、大带宽和灵活的处理能力,更重要的是作为多路径数据串接和调度的中心。


X86 CPU在系统中担当着双重角色。在数据面上,为了提供强大的通用计算能力,我们采用了服务器级双路CPU和多达512GB的内存,灵活且强大的软件处理能力可以应付高速路径上不被命中以及无法处理的流量。在控制面上,X86 CPU通过PCIe通道直接连接可编程交换芯片和加速卡/FPGA卡,使我们能够快速地配置和调度转发路径。


11.png


可编程交换芯片具备高效和强大的数据报文处理能力,但是芯片的可编程资源和存储资源是有限的,并且部分高级报文处理能力比如加解密能力无法用可编程交换芯片实现。X86 CPU在通用性上非常好,并且拥有超大的存储空间,但是报文处理效率毕竟受到软件性能的限制。针对这些问题,我们在紧凑的空间内设计了多达6个标准的PCIe扩展插槽,通过引入FPGA或者加速卡填补可编程交换芯片和CPU之间的能力空位并提供了极大的灵活性


三级路径架构能够非常灵活高效地适配各种业务场景。以众多场景下典型的有状态网关服务为例,事先无法感知流量是大象流还是老鼠流,是高并发,还是小并发。特别是在很多跨域或复杂均衡场景中,流量模型复杂多样,有高并发大吞吐、高并发小吞吐、小并发小吞吐、小并发大吞吐。对于小并发大吞吐、小并发小吞吐、高并发小吞吐的流量,可编程交换芯片在CPU的调度之下可以轻松处理,但是对于高并发大吞吐,流量处理则需要借助FPGA/加速卡弥补CPU+AISC的短板。在三级路径架构下,CPU将所有的会话下发到FPGA,而仅仅将流量最大的热点会话下发到可编程交换芯片。可编程交换芯片无法处理的流量上送FPGA,FPGA还无法处理的流量才上送X86 CPU。


SNA硬件规模部署以来,稳定支撑了可编程网络平台和业务的运行,完成了从探索到验证的第一个阶段,验证了超融合可编程硬件平台对于当今大规模云网络和边缘网络服务的价值。通过规模部署、运营和与多个业务的磨合,我们也在持续探索着SNA的未来发展与演进方向以及新的业务场景应用。



03 硬核技术二:软件


网络操作系统作为整个网络世界的核心单元,一直是各个网络设备商的核心竞争力,如CISCO IOS、Juniper JUNOS、Arista EOS、Huawei VRP,可以被称为各个厂家产品上的“The jewel in the crown”,是他们投入最多,也最复杂的系统领域。


阿里巴巴数据中心每年大量采购商用网络设备,但设备中运行的NOS对于我们来说是一个黑盒系统,不管是运维管控还是功能需求处理、网络演进都严重依赖于各个设备提供商。


作为新一代的阿里自研网络操作系统,承担着把网络操作系统彻底白盒化,完整掌控,在保证数据中心网络系统稳定的前提下,快速支撑业务的各种需求任务,乃至更进一步成为业务竞争力的一部分,以技术来拓展业务边界的使命。随着阿里对基础芯片的早期投入与影响力的不断增加,通过阿里云自研网络操作系统与芯片厂商的直接合作也促使芯片的设计在技术层面更能为阿里所用。



软硬件解耦

44.png

Linux+X86首先SONiC的主体OS是基于Linux X86 kernel的开放操作系统,因此在SONiC上可以利用在Linux上长期积累起来的软件工具和开源生态,例如我们在阿里云自研网络操作系统上的管控和测试系统就利用了Linux上众多的gRPC,docker,Ansible,Redis等开源软件。


软硬件解耦SONiC定义了SAI(Switch Abstract Interface)这一层实现了软件操作系统和硬件交换芯片的解耦,从而做到在不同硬件平台上共享软件的功能,使得交换机软件和硬件可以实现独立的快速迭代。


基于DB的高可用机制

55.png

SONiC中的状态数据均通过一个RedisDB来管理,同时各个应用之间也通过这个系统DB来共享数据。RedisDB支持丰富的数据格式和pub-sub RPC通信方式,使得SONiC的多个应用可以实现灵活通信和数据共享,因此SONiC的应用可以只对RedisDB有依赖关系,而应用之间是没有依赖关系的,这样的架构可以降低系统组件之间的连带异常,提高系统的容错能力。


基于容器的APP部署

33.png

SONiC上的软件功能被切分成一系列的不同功能的应用,应用的运行环境使用docker容器化来管理。容器化的应用管理有两个优点:首先松耦合,微服务化的应用可以降低软件故障时的failure domain,提高系统容错能力;其次容器化使得SONiC上可以更容易地做到模块化的软件升级和管理


主动上报的秒级监控能力

随着数据中心带宽的不断提升和低时延业务的增多,网络运营需要更及时且全面的获取设备状态,秒级监控因此被提出。传统SNMP监控通道采用定时拉取的方式,且时间戳并非设备上的状态信息,无法实现秒级监控。gRPC 因此被推出,相比传统监控通道,它主要有以下几大优势:


支持高频定时推送,所有数据都带有时间戳,能更准确地表达设备的状态信息

支持事件驱动的数据推送,能有效减少大量冗余数据,快速更新设备关键状态

支持结构化的数据格式,不局限于某些特定标准,方便增加用户自定义数据

支持TLS加密,提供更加安全的通道


image.png

下一步,我们还会进一步完善各个模块,使各模块更有效地为我们所用,包括功能上的优化和代码上的瘦身;完善适配阿里研发的阿里云自研网络操作系统自动化测试系统,检测模拟代码改动对于运维的影响,并与网络监控系统相结合,实现端到端的网络智能管理



小结


近几年,阿里不断在国际顶级网络技术学术会议SIGCOMM上发表论文,2020年更是以四投四中震动了网络技术界。今天最好的表现是明天最低要求,对阿里打造高性能、开放式软硬一体化网络提出更高的要求,未来可期,网络可期。

相关文章
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
6月前
|
监控 安全 Shell
管道符在渗透测试与网络安全中的全面应用指南
管道符是渗透测试与网络安全中的关键工具,既可用于高效系统管理,也可能被攻击者利用实施命令注入、权限提升、数据外泄等攻击。本文全面解析管道符的基础原理、实战应用与防御策略,涵盖Windows与Linux系统差异、攻击技术示例及检测手段,帮助安全人员掌握其利用方式与防护措施,提升系统安全性。
249 6
|
4月前
|
弹性计算 安全 应用服务中间件
阿里云渠道商:怎么配置阿里云网络ACL?
阿里云网络ACL是子网级无状态防火墙,支持精准流量控制、规则热生效且免费使用。本文详解5步配置流程,助您实现Web与数据库层的安全隔离,提升云上网络安全。
|
4月前
|
人工智能 安全 架构师
2025云栖大会 | 阿里云网络技术Session主题资料和视频回放归档
2025年9月24日-26日,杭州,一年一度的云栖大会如期而至;阿里云飞天洛神云网络作为阿里云计算的连接底座,是飞天云操作系统的核心组件,致力于为上云企业提供高可靠、高性能、高弹性、智能的连接服务。本次云栖,云网络产品线也带来全系列产品升级,以及创新技术重磅解读,围绕增强确定性、提效自动化、深耕智能化和敏捷全球化带来技术、产品和服务升级,以及全新的云网络产品生态合作计划发布。
638 2
|
5月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
518 11
|
4月前
|
弹性计算 网络安全 数据中心
阿里云创建专有网络VPC的【IPv4网段】如何选择?有什么区别?
阿里云VPC创建时需选IPv4网段,默认提供10.0.0.0/16、172.16.0.0/16、192.168.0.0/16,三者无功能差异。若仅单VPC且不连本地数据中心,可任选其一,确保不冲突即可。多VPC或混合云场景需规划避免IP重叠。不支持100.64.0.0/10等特殊网段。建议结合IPAM进行地址管理。
|
6月前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
368 0
|
6月前
|
安全 Linux
利用Libevent在CentOS 7上打造异步网络应用
总结以上步骤,您可以在CentOS 7系统上,使用Libevent有效地构建和运行异步网络应用。通过采取正确的架构和代码设计策略,能保证网络应用的高效性和稳定性。
185 0
|
8月前
|
监控 安全 Linux
AWK在网络安全中的高效应用:从日志分析到威胁狩猎
本文深入探讨AWK在网络安全中的高效应用,涵盖日志分析、威胁狩猎及应急响应等场景。通过实战技巧,助力安全工程师将日志分析效率提升3倍以上,构建轻量级监控方案。文章详解AWK核心语法与网络安全专用技巧,如时间范围分析、多条件过滤和数据脱敏,并提供性能优化与工具集成方案。掌握AWK,让安全工作事半功倍!
287 0

热门文章

最新文章