前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >海量规模下DCI网络的设计与实现

海量规模下DCI网络的设计与实现

作者头像
鹅厂网事
发布2021-08-04 10:10:14
1.2K0
发布2021-08-04 10:10:14
举报
文章被收录于专栏:鹅厂网事

前言

        随着云计算业务的蓬勃发展,全球资源的持续布局,对基础网络带来了极大的挑战。腾讯DCI超过千级节点中有数百台核心设备,庞大的骨干域带来的软硬件资源压力,网络质量无法很好的保障,多厂商互通、分布式协议严重影响了运营效率。

        在这个背景下,我们结合腾讯“海量之道”的设计理念,在2018年上线了基于SDN集中控制和SR-TE技术实现的新一代DCI网络——B2,网络系统由自研SDN控制器和商用交换机搭建而成。随着不断的运营优化和资源布局,B2网络今天已经具备了集中控制、多平面、自动化运营、代码化架构设计等特点,实现了弹性扩展、高可用、自动化变更等能力,当前B2网络已承载了腾讯绝大部分骨干网流量。本文将重点阐述B2网络的设计理念、关键实现以及后续演进方向。

01

外练身法,网络简化

在做网络系统架构设计时并不是一味地将网络复杂化,而是让网络保持足够的简洁,具备海量规模的平滑扩展能力,保证系统最优,大道至简。

1.1 转控分离,协议简化

控制面。融软件集中控制之所擅,我们选用了SDN集中控制模式,将复杂的控制面交由自主研发的SDN控制器来完成,并根据实时网络状态和业务需求,实现流量智能调度。

转发面。汇设备高速转发之所长,网络设备只需最简单、稳定、成熟的基础特性,在提升网络能力的同时,最大限度降低网络设备的实现复杂性,网络协议做减法,去掉了相对复杂的L3VPN/LDP/RSVP-TE等协议,让设备做自己更擅长的事情(高速转发)。也基于此,该方案通过基于ASIC芯片的通用交换机来实现,通过横向可扩展的方式替换掉价格昂贵的大型路由器,DCI网络设备每100G端口建设成本得到大幅度的下降。

1.2 网络分域,多平面设计

B2采用了网络分域设计,每一个网络域都是独立的自治域,采用相同的设计理念和技术架构,减少了单域的设备数量,极大降低了设备资源表项(LSP FEC ECMP)压力。

同时遵循大系统小做原则,完成网络多平面、SET化的设计和部署,不同平面之间没有任何的协议与状态信息同步,每个平面采用不同的技术方案,相互独立性很强,保证网络高可用之外同时支持平滑扩展和快速迭代。

02

内修心性,融会贯通

身法的修炼赋予了网络强健的体魄,但网络的快速发展同样离不开心性的陶冶。随着自研SDN控制器的持续迭代升级、架构设计代码化的全面铺开,B2网络也逐步走向成熟。

 2.1 SDN+集中控制

最初,我们的选择跟大多数厂商一样,把ODL做为SDN控制器的首选。随着网络规模的扩大、业务流量的“暴涨”,ODL过于“笨重”、主备模型、数据强一致性等缺点愈发凸显。

随着docker容器化技术、微服务架构的快速发展,我们的SDN控制器也不断地向前迭代和持续演进,去年,我们重新定义了B2网络,并称之为“SDN+”。

腾讯SDN+的设计精髓包括以下几点:

  • 微服务化。通过腾讯自研tRPC框架解耦控制器内部服务,每个服务模块均支持docker容器化发布和部署,从架构上保证了软件的可扩展性和迭代效率;
  • 统一资源信息管理和丰富的北向API。网络资源信息均保存到腾讯云数据库,控制器通过tRPC跟管理平台、运营平台和变更平台进行交互。丰富的北向API给网络的日常运维和故障复盘分析带来了极大的便利;
  • 南向标准协议。考虑到DCI网络仍在大量使用商用框式交换机,控制器采用RFC规定的标准协议跟设备进行交互,减少了异构厂商带来的管控复杂度;
  • 软件的高可用性。各服务模块均支持双活,软件的升级维护业务完全不感知。

 2.2 架构设计代码化

网络设计及网络运营中,配置完全一致化管理十分困难,网络规模越大,配置更容易出现差错,犹如黑盒。在配置设计时,结合应用场景使用业界统一的Yang Model加上自研的Tencent Yang构建了抽象的配置模型,使用模块化、抽象化的逻辑屏蔽底层厂商的差异,通过将配置代码化,实现线上的配置管理;对于动态的参数,创造性的使用了嵌入式的Python代码实现函数规则,实时地生成每台设备的规划实例,实现设计代码化、配置线上模型化。

03

内外兼修,打造弹性智能骨干网

通过内外兼修的方式,B2具备了弹性扩展、高可用、自动化等特点,把腾讯基础网络带入了一个全新的高度。

 3.1 弹性灵活,支持大规模扩展

网络简化,灵活扩展

结合网络分域的设计原则,B2采用了骨干和城域的分域模式,实现了网络简化,每个域采用相同的技术方案可实现架构快速复制。每个网络域通过多平面、SET化的理念完成设计和部署,同时结合现网的运营经验,可以带来显而易见的好处:

  • 更小的故障域。将业务分布到越多的网络平面上,单一平面或设备发生故障,对于业务的影响范围越小。即网络故障域的大小跟平面数成反比;
  • 更灵活的拓展。将网络划分为不同的平面,平面间物理隔离,各个平面的建设扩容相互独立,解决工程上牵一发动全身的难题,同时支持scale out方式进行平面扩展;
  • 更稳定的质量。不同平面在网络技术、硬件选型、工程部署上可以采用不同的方案,不会因为单一特性、硬件等方面的问题引起系统性风险,整网具备更高的可靠性;
  • 更可靠的演进。随着业务多样性的发展,网络需要进行必要的更新和演进,在一个复杂的大规模网络中,变化往往带来的是运营的灾难。多平面的网络本身具备独立的冗余能力,可以将某一个平面在一段时间内进行隔离,从而零风险的进行版本更新或架构演进。

标准互联,精细调度

这里可能会有几个疑问,多域之间如何互联,流量如何调度,拥塞问题如何解决?不同域之间我们采用了平面级full mesh、设备级partial mesh的互联方式,既保证了架构规范的标准和对称性,又做到了以灵活平滑的大规模scale out扩展。流量调度方面,控制器基于流量分析平台的数据输入,可实现域间的流量精细化调度以及平面间的流量非等价负载分担,满足不同类型业务需求的同时,有效提升全网的链路利用率。

3.2 智能化,保证网络高可用

集中调度

基于腾讯自主研发的CSPF算法,以集中控制的模式进行全网流量调度,已经做到实时的流量调度以及分钟级的流量拥塞控制,比过去完全依赖设备TE的效率提升5倍以上,骨干网链路的带宽利用率提升25%以上。

差异化服务

根据业务对网络质量的不同诉求,控制器定义不同的SLA等级,并在设备上创建与之对应的隧道;转发流量时联动各业务的服务标识,轻松将业务报文“装”到不同等级的隧道里,进而实现业务流量的差异化服务。在网络出现拥塞时,可保证核心业务优先转发,做到核心业务不绕路,低优先业务不丢包。

柔性可用

网络故障具有一定的突发性和不确定性,尤其现网承载流量的设备或链路出现突发性故障时,结果很可能是灾难级的;为最大化保证业务的高可用,B2网络提供了几个关键能力:

  • 控制系统的冗余性:控制器跨可用区多活且SET化部署,做到网络控制平面的高可靠;
  • 转发路径的冗余性:控制器预先为隧道计算和下发备份路径,当主路径出现故障时流量可在百毫秒自动切换至备路径继续转发,整个过程业务不感知;
  • 逃生通道:具备平面级和设备级的TE隧道一键逃生能力,当网络出现大量TE隧道故障或系统级故障时,能够在秒级让业务回到IP转发。

 3.3  自动化,告别人工变更

配置线上化,配置自动审计

底层配置通过转译层实现了CLI命令的原子化,而上层的配置设计实现了标准化、模型化、代码化,两者一拍即合。通过代码化的配置模型,加上转译层的鲁班模版,实时生成运营变更所需的动态变化配置,保证设备上的配置由配置模型直接生成;同时直接通过设备上的反译,将现网配置转义成代码化实例并在软件层实现配置的审计对账,双重保障确保了每一行配置与规划定义的一致,实现配置自动审计,解决了大规模网络中配置一致化的难题。

变更离线化+自动化,实现安全高效操作

控制器通过精准控制路由的撤销并逐步将业务流量“排干”的方式实现优雅隔离,确保业务对网络变更零感知;同时精准控制路由的灰度发布过程,逐步把业务流量“引回来”,大大减小了变更异常可能带来的影响。

在SDN+精细化控制能力、多平面的基础上,网络变更平台将多个系统平台串联起来,实现了从优雅隔离、灰度启用、业务恢复、状态检查、自动回滚等全流程自动化变更,可以做到一个变更窗口内安全的完成平面内所有设备升级,全网升级周期由原来的年记缩短至周记,架构迭代效率大幅提升。

故障自愈,实现极简运维

立体监控。基于管理面的fullmesh监控,通过控制器实现软件定义探测流、编排探测路由的方式覆盖到每一个网络平面、每一台设备甚至每一条链路,实现了端到端全方位的立体监控,当网络出现丢包或时延变大等异常时,立体监控会立刻感知并上报告警,实现秒级的故障发现与精准的故障定位;

故障自愈。控制器根据告警上报自动定位故障点,触发故障自愈操作,自动且优雅地隔离掉某个平面、某台设备或某条链路,实现故障自愈。为确保隔离动作安全有效,控制器通过自定义的逻辑判断,如判断剩余带宽容量、路由一致性、多点故障等,保证隔离不会带来其他影响或恶化。待立体监控判断故障彻底解除后,可自动解除隔离,恢复流量。

结语

        B2网络通过弹性灵活的扩展能力满足海量的业务需求,并构建了完善的自动化运营能力,但是在不断的迭代优化过程中,我们意识到商用交换机系统逐渐成了“阻碍”B2网络快速演进的瓶颈。

        过去几年腾讯在骨干网领域通过深度自研和架构的不断迭代,已经实现了网络控制面和管理面的全面自研。后续将逐步把自研交换机在骨干网上进行试点,构建管理面、控制面、转发面的端到端全系统自研。

欢迎关注公众帐号“鹅厂网事”,我们给你提供最新的行业动态信息、腾讯网络最接地气的干货分享。

注1:凡注明来自“鹅厂网事”的文字和图片等作品,版权均属于“深圳市腾讯计算机系统有限公司”所有,未经官方授权,不得使用,如有违反,一经查实,将保留追究权利;

注2:本文图片部分来自互联网,如涉及相关版权问题,请联系sandyshuang@tencent.com;

/

/

鹅厂网事/

分享鹅厂网络的那些事

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鹅厂网事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档