可编程网络系列(二):软硬结合 看阿里云自研新一代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年更是以四投四中震动了网络技术界。今天最好的表现是明天最低要求,对阿里打造高性能、开放式软硬一体化网络提出更高的要求,未来可期,网络可期。

相关文章
|
4天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
28 6
|
3天前
|
数据采集 监控 数据可视化
Fortran 在单位网络监控软件数据处理中的应用
在数字化办公环境中,Fortran 语言凭借其高效性和强大的数值计算能力,在单位网络监控软件的数据处理中展现出独特优势。本文介绍了 Fortran 在数据采集、预处理和分析可视化三个阶段的应用,展示了其在保障网络安全稳定运行和有效管理方面的价值。
27 10
|
5天前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
21 4
|
6天前
|
机器学习/深度学习 存储 运维
图神经网络在复杂系统中的应用
图神经网络(Graph Neural Networks, GNNs)是一类专门处理图结构数据的深度学习模型,近年来在复杂系统的研究和应用中展现了强大的潜力。复杂系统通常涉及多个相互关联的组件,其行为和特性难以通过传统方法进行建模和分析。
23 3
|
10天前
|
缓存 监控 前端开发
优化网络应用的性能
【10月更文挑战第21天】优化网络应用的性能
10 2
|
10天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
5天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。
|
2天前
|
存储 安全 算法
网络安全与信息安全:漏洞、加密技术及安全意识的重要性
如今的网络环境中,网络安全威胁日益严峻,面对此类问题,除了提升相关硬件的安全性、树立法律法规及行业准则,增强网民的网络安全意识的重要性也逐渐凸显。本文梳理了2000年以来有关网络安全意识的研究,综述范围为中国知网中篇名为“网络安全意识”的期刊、硕博论文、会议论文、报纸。网络安全意识的内涵是在“网络安全”“网络安全风险”等相关概念的发展中逐渐明确并丰富起来的,但到目前为止并未出现清晰的概念界定。此领域内的实证研究主要针对网络安全意识现状与问题,其研究对象主要是青少年。网络安全意识教育方面,很多学者总结了国外的成熟经验,但在具体运用上仍缺乏考虑我国的实际状况。 内容目录: 1 网络安全意识的相关
|
2天前
|
SQL 安全 算法
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第28天】在数字时代的浪潮中,网络安全与信息安全成为保护个人隐私和企业资产的重要盾牌。本文将深入探讨网络安全中的常见漏洞,介绍加密技术的基本概念及其在保护数据中的应用,并强调提高安全意识的重要性。通过分析具体案例和提供实用的防护措施,旨在为读者提供一个全面的网络安全知识框架,以应对日益复杂的网络威胁。
17 4
|
1天前
|
存储 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第30天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的知识,帮助读者更好地了解网络安全的重要性,提高自己的网络安全意识和技能。