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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 阿里云自研新一代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年更是以四投四中震动了网络技术界。今天最好的表现是明天最低要求,对阿里打造高性能、开放式软硬一体化网络提出更高的要求,未来可期,网络可期。

相关文章
|
3天前
|
云安全 人工智能 安全
|
15天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
42 8
|
13天前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
23 2
|
15天前
|
云安全 人工智能 安全
再登榜首!阿里云蝉联中国公有云网络安全即服务市场份额第一
再登榜首!阿里云蝉联中国公有云网络安全即服务市场份额第一
30 5
|
18天前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
38 5
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
|
17天前
|
机器学习/深度学习 数据采集 算法
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
52 1
|
19天前
|
监控 负载均衡 网络协议
OSPF在小型网络中的应用:简化配置与高效管理
OSPF在小型网络中的应用:简化配置与高效管理
67 1
|
13天前
|
弹性计算 安全 容灾
阿里云DTS踩坑经验分享系列|使用VPC数据通道解决网络冲突问题
阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。本文介绍如何使用VPC数据通道解决网络冲突问题。
63 0
|
6天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。