阿里云Overlay的SDN 实践: 架构设计与产品实现
摘要: 这篇文章介绍了阿里云在云上 overlay 网络的SDN实践, 包括了 overlay 架构的介绍, 建设 overlay 时遇到的挑战, 以及基于 overlay 的产品.
在不久前的Open Network Summit洛杉矶峰会上,阿里云网络资深技术专家程钢博士发表演讲 SDN Practice for Cloud Overlay Network: From Infrastructure to Products。详细介绍了阿里云Overlay的SDN架构的设计与产品化实践。以下是本次演讲的翻译稿,分享给各位网络爱好者。
问题背景:
阿里云在近两年的发展非常迅速, 年营业额以104%的速度增长, 在2018财年的季度收入已经超过了30亿人民币, 国内市场占有率来到了47.6%, 成为了一个世界领先的公共云服务提供商. 阿里云全球的数据中心建设也囊括了各大洲的主要国家, 能够为全球各地的而用户提供云服务.
而阿里云网络则负责为这样一个快速发展的庞然大物提供可靠, 高效, 安全的网络服务, 而其中压力最大的时刻则来自每年淘宝的双11活动. 阿里云负责提供淘宝在双11活动所需要的的弹性服务, 而阿里云网络则负责在双11期间的巨大流量的正常传输. 有一组数据可以为这个流量添加注解: 双11的峰值成交量是 32.5万单/秒, 峰值支付量25.6万单/秒, 一天的总销售额是1682亿, 比2017 美国网购节Cyber week一周的总销售额还要高. 在这样的流量压力下, 阿里云网络需要一个可靠, 高效, 弹性, 安全的网络架构来完成当前的任务, 并为未来做好准备.
阿里云网络的架构:
如下图, 阿里云网络主要由三个层面组成: 底层的物理层及其SDN控制器, Overlay网络层及其SDN控制器, 以及应用层. 其中每个层面都由更细节的模块组成. 阿里云的物理层网络是世界上最大的SDN网络之一, 可以细分为DC 网络, 阿里城域网, 阿里骨干网等组件, 物理层的控制器负责管理物理层网络, 并向Overlay层提供 API, 屏蔽各种物理网络的细节, 在本文中不会对物理网络展开描述; Overlay 网络层则由网关(Gateway), 阿里虚拟交换机(AVS: Alibaba Virtual Switch), 负载均衡器(SLB: Server Load Balance)等本层数据面的网络组件, Overlay 网络层的控制平面以及 Overlay 网络层的管理平面组成. Overlay 网络层控制器负责管理各个网络组件, 向应用层的产品和服务提供统一的API, 并调用物理层的控制器完成网络功能; 应用层则主要是阿里云网络的各大主要产品如CEN和资源管理调度系统(例如伏羲), 它们通过调用Overlay控制器的北向接口实现了阿里云网络的使用和调度.
接下来, 是本文的重点之一, Overlay 网络层的架构说明及组件介绍.
阿里云 Overlay 网络层的架构, 组件以及挑战
阿里云网络的 Overlay 层是一个基于 SDN 的网络架构, 可以分为三个平面: 数据平面, 控制平面和管理平面. Overlay 的数据平面主要由各种网络组件组成, 包括 SLB, AVS, Gateway, hybrid Gateway 等组件, 为了提高这些组件的转发性能, 阿里云网络组引入了很多数据面的加速技术, 例如用户态协议栈技术,; Overlay 网络的控制面则由一个层次性的控制器系统组成, 这主要是为了保证控制平面的可拓展性, 在每个主机上, 存在一个主机控制器(host controller), 在每个地区(region), 存在一个区域控制器(region controller), 最后, 还存在一个全局控制器(global controller). 主机控制器负责从区域控制器获取各个数据面的组件的配置方案, 区域控制器则负责本区域的Overlay网络层的管理与调度, 全局控制器则负责协调调度各个region的 overlay 网络资源, 尤其是全局流量的管理与调度; Overlay 网络的管理平面则是一个单独的实体, 负责从Overlay的另外两个平面的日志, 数据库等记录中搜集数据, 以便于现场恢复和异常调试, 也能够通过对数据的分析和学习, 提供网络的自动化管理.
下文中是对 Overlay 网络控制面的详细介绍:
Overlay网络的控制面设计:
为了满足阿里云快速扩张的需求, 满足网络服务的可靠性, 满足自动化的网络管控, Overlay网络层必须保证高可拓展性, 高可用性, 以及智能性, 下文介绍了为了实现这些需求, Overlay网络的架构设计采用的方案.
可拓展性设计: 阿里云网络的底层物理网络一直处于迅速扩张的过程中, 因此Overlay 层的架构必须有足够的可扩展性. 而设计需求要求每个region的region controller 能够支持百万级的虚拟机网络(即 VPC), 每个 VPC 能够支持的虚拟机数量是十万级, 这是一个很难达到的目标. 在虚拟机和 VPC 的数量级还不是很大的初期, Overlay网络的控制面可以为直接直接向主机控制器推送配置信息, 但是随着机群规模的迅速增加, Overlay网络的控制面增加了一个缓冲层, 底层的数据面系统可以在缓冲层实现部分网络信息的自学习, 控制面也可以将部分功能下放到缓冲层实现, 进而减少控制面的功能和负载。
高可用性设计: 为了保证阿里云网络的高可用性, 必须保证功能组件的冗余度. 例如, 假如一个 region 由三个可用区域(AZ: Availability Zone)组成, 那么为了保证这个 region 的Gateway, SLB 的可用性, 阿里云网络会要求在三个 AZ 都部署这些组件, 并且互为备份, 即使某个区域的组件不可用, 其他区域的组件也会立刻填补空缺, 保证整体上的可用性. 控制器的部署也会遵守类似的高可用性规则进行复数的部署.
智能管理能力: 阿里云网络的管理系统能够从底层的物理网络的各个平面, 到 Overlay 网络的各个组成平面搜集所有的日志和信息记录, 并且这都是实时地完成. 因此, 阿里云网络不仅可以及时地发现物理层, Overlay 层的各种异常的出现, 还有望能够在机器学习的帮助下快速地定位到异常的原因,并且如果可以的话,自动作出响应。
Overlay 网络的组件设计的需求包括以下的方面: AVS 要满足高吞吐能力, 超低延迟, 热升级, 实时迁移等要求, Gateway 要满足高扩展性, 热升级能力, 5百万/秒以上的连接能力, 3千万/秒的包处理能力等要求, 控制平面则要求满足每个 region 百万级的 VPC, 每个 VPC十万级的虚拟机, 3秒内管控十万级路由器的管理能力,
SDN 可以帮助 Overlay 网络层实现可扩展性, 也易于管理, 易于开发, 进而能够开发高可用性的架构, 能增加智能管理的功能, 提高网络的整体性能.
阿里云应用层的产品
基于物理层和 Overlay 网络层提供的服务, 阿里云网络提供了很多出色的产品. 下文会介绍其中较有代表性的产品云企业网CEN(Cloud Enterprise Network)。
CEN:
随着云服务提供商的服务内容的扩张, 云网络负责的连接实体也在增加, 虽然需要连接的依然是用户网络, 万维网与云网络, 但是对连接的实体的数量, 连接方式和连接质量的需求一直在提高. 对于阿里云网络而言, 最初提供的第一代网络只需要满足云服务到万维网的网络连通性, 但是很快就出现了更高的需求, 因此, 第二代网络, VPC 作为云上的网络实体出现, 为了保证所有网络实体的互联, VPC 之间的高速通道也一并出现. 但是这依然不能满足用户的需求, 因为用户可能有多个网络在使用不同的连接方式接入阿里云的服务, 因此, 阿里云网络通过基于 Overlay 网络的架构, 设计实现了第三代网络, CEN, 提供了当前网络实体的泛联能力, 和对网络的智能管控能力.
CEN的实现方式也是基于 SDN, 以下图为例, 假设阿里云的用户在多个region都建设有 IDC, 同时基于用户的应用需求, 在各个地区用户都使用了阿里云上的 VPC, 那么很自然地, 用户需要将所有的 IDC 和 VPC 连接起来. 传统方式可能需要几个月的时间来完成, 资金投入也不小. 而完成建设之后, 还要持续地进行维护和运作. 而使用 CEN 就简单了很多. 通过已经与VPC 连通的专线链路, 用户的 IDC 能够直接完成多region所有网络实体的互联, 只需要简单的设置, 就能够快速完成, 同时还能够省去后续的维护和升级投入.
但是在CEN 的设计实现中, 阿里云网络也面临过很多挑战, 首先, 用户IDC 依然希望通过传统的网络协议接入 CEN 的服务, 这意味着路由信息是基于 BGP 进行交换的, 但是对于CEN 这样一个全球网络而言, 传统的 BGP 协议并不是十分合适的选择. 其次, CEN 的底层 Overlay 网络的数据面组件, 由于其类型与功能不同, 性能, 吞吐量的差距很明显, 例如, SLB 和 Gateway 因为是基于标准服务器的软件实现, 所以允许高可用性地部署, 也允许新特性的快速开发, 但是相比IDC 的标准交换机, 它们的吞吐量是不足的. 因此, 当用户需要高带宽服务时, 即使边缘交换机允许提供给用户这样的服务, SLB 或者 Gateway 的压力也会过大. 最后, 作为连接所有网络实体的 CEN, 其高可用性必须得到保证.
CEN 的架构: CEN 的架构如下图, 作为一个 Overlay 网络下的产品, CEN 基于 Overlay 的架构设计. 为了解决 路由同步的问题, CEN 在用户接入点设计了底层控制器, 用以控制与用户交换路由的 BGP 协议, 使得数据库进出 CEN 时的行为可控. 同时, CEN 引入了保证高可用性的区域控制器与全局控制器, 保证用户的数据流在 CEN 上的正确, 可控的传输. 数据面则由 overlay网络层的组件保证用户的数据能够正确, 高效地进行传输. 管理面则和 Overlay 网络层的管理面功能类似: 日志与状态的实时追踪, 为智能网络管理提供数据和平台.
CEN控制面的功能也会随着新技术的应用进行适应性的变化, 例如下图中, 阿里云网络提高Overlay 网络层的数据面组件的网络性能同时, CEN的控制器系统就能够下放一部分控制功能到底层控制器, 通过控制器实现小范围内的路径优化和性能提高.
全文总结:
阿里云的 Overlay 网络层基于 SDN 技术, 明显地提高了可扩展性和高可用性, 同时能够支持网络技术的快速迭代, 引入了网络的自治能力. 同时也能够包容多种技术和产品, 在租户隔离, 抗恶意攻击方面, Overlay 网络也能够进行支持.
阅读更多干货好文,请关注扫描以下二维码: