TIDP-为用户提供最佳互联网访问质量
背景
作为国内服务用户数最多的互联网企业,腾讯不但有微信、QQ这样拥有10亿+用户的应用,还有腾讯云这样服务数十万企业和海量用户的平台。如何保障终端用户互联网访问质量的稳定,始终是网络运营所面对的最主要问题。
虽然腾讯的网络规模在互联网企业中首屈一指,但相比于运营商的网络规模和用户的分布广度,我们所占的比例还是非常有限,连所谓的“最后一公里”可能都达不到。如图一所示,互联网用户流量往往通过长达数千公里的运营商城域网、骨干网才能进入腾讯IDC机房。据统计,有超过95%影响用户访问质量的事件由运营商网络问题引起,尤其是运营商骨干网络异常,影响面通常非常之广,而这些异常腾讯无法管控甚至知情。如何利用腾讯内部可掌控的网络资源和网络技术来规避运营商故障的影响,保障用户的访问质量,是我们持续攻关的难点。
近年来,随着网络运营侧DevOps理念的持续贯彻,网络架构不断向SDN化演进,以及和运营商不断深入的合作,我们打造了腾讯互联网流量调度平台(Tencent Internet Dispatching Platform,简称TIDP),充分利用腾讯自身强大的骨干网和公网BGP出口,通过自动化互联网流量调度来不断优化用户访问质量,并取得了不错的效果。
图一. 互联网用户访问逻辑
支撑调度的网络资源
所有互联网流量调度能力首先离不开腾讯强大的基础网络资源。目前腾讯互联网交换平台(Tencent Internet eXchange,简称TIX)和全球超过200家运营商建立了多达数十T的互联带宽,在各个出口通过BGP协议将海量腾讯自有公网地址通告给各运营商,并接收各运营商网内路由和全球互联网路由。这样首先具备了通过在不同互联网出口调整路由收发策略改变互联网流量出入口的能力。其次,拥有TB级带宽,基于TE技术的数据中心互联网络(Data Center Interconnect,简称DCI) 将腾讯内部遍布全球的数据中心联通,保证了流经不同互联网出口的调度流量能够传送至各个数据中心,从而规避运营商网络异常对用户访问造成的影响。这样就可以大幅减轻业务应用做多地部署来容灾的压力,仅通过基础网络层面调整就全面保障了用户访问质量,有效降低了业务的成本。而很多中小型互联网厂家,均无法和运营商之间建立大规模的BGP连接,也没有足够的自有公网地址,内部骨干网络的覆盖和带宽亦不足,所以完全无法实现互联网流量的灵活调度。
出口整体调度
如图二所示,某个运营商(ISP1)内的所有用户访问腾讯某个园区(IDC A)的地址,都会就近走该园区的互联网出口(TIX A)出入。但当该区域的运营商网络出现异常时就会影响到用户的访问。初期遇到此类问题时,一般需要经验丰富的工程师登录设备手工修改TIX设备上收发路由的策略,调度访问流量从其他园区的互联网出口(TIX B)出入,并通过DCI网络回到业务所在园区(IDC A)来优化质量。
图二. 出口整体逻辑
但人工操作始终面临一个时效性问题,从发现异常、确认问题、升级专家到操作完成可能需要数十分钟时间,而人工对核心网络设备的大量策略修改也存在一些操作风险。为了将调度操作变得高效低风险,我们充分发挥运营的DevOps能力,将调度操作封装成网管工具,一线运营人员只需简单的挑选出口,一键即可完成调度,操作耗时可有效控制在3分钟内,同时后台命令下发也全面规避了人工操作风险。此自动化调度功能上线3年多来,完成出口调度近千次,从未发生操作引发的网络故障。
SDN精细化调度
目前少量大型互联网厂商,特别是云服务商,也通过各种方法实现了类似的出口调度功能,并作为规避运营商网络异常的重要手段。而我们在长期使用该功能的过程中,也逐渐发现了一些缺陷。例如将在地理分布较远的出口之间调度时,虽然恢复了部分区域用户的访问质量,但却导致其他区域的用户出现绕行等问题。同时随着腾讯出口流量越来越大,整体的调度会给运营商网络带来很大的流量压力,甚至出现新的流量拥塞问题。这就要求我们具备更精细化的调度能力减少调度操作带来的负面影响。
随着SDN在腾讯网内的全面落地,我们打造了一套基于ODL平台的控制系统用于精细化调度。如图三所示,该系统北向通过RESTful API接口和网管系统联通,接收网管下发的各种调度和控制信息,并反馈执行结果。南向和TIX设备建立BGP连接,通过BMP协议实时收集设备路由、标签信息,并按照运营商、省份(国内)、AS(海外)等不同纬度归类。根据不同的调度需求批量向TIX设备下发携带特定属性的路由信息。
图三. 调度控制器逻辑
如图四所示,当运营商个别省份访问腾讯的某个区域IDC机房出现异常时,可执行按省份精细化调度。控制器将会将该省份对应的数百甚至是数千个路由网段标记上特定标签和下一跳信息,下发给原区域TIX设备,同时调整该TIX设备的路由播布,使该省份用户访问腾讯网络的路径发生改变,从而规避运营商网络异常。同理,在海外区域,我们使用类似逻辑按照运营商AS号或者国家维度进行调度。调度过程中,海量路由的下发和撤销可以在毫秒级完成,大幅度缩小了故障影响时长。该功能上线一年多来,已成功进行调度数百次,整体有效率超过70%。
图四. 按省份调度示意
集中化调度平台(TIDP)
虽然调度执行看起来比较简单,但在实际运营过程中,需要考虑的问题远比单纯的操作本身复杂。如何及时、准确发现运营商网络的异常,如何根据故障范围选择合适的调度方式,如何根据出口质量和带宽选择最优的目标节点,如何收集异常信息给运营商报障,如何判断故障是否已经恢复等等,需要一套完善的流程和系统进行支撑。
为了解决以上问题,经过运营侧和网管开发团队的不断摸索,按照网络运营日常习惯整合了互联网质量探测、调度控制器、运营工单系统等功能,打造出专属集中化调度平台-TIDP。如图五所示,当系统探测到某区域外网质量异常后,会自动生成告警和工单推送给网络运营人员,同时计算出合理的调度方式和目标出口。运营人员进入系统后可以直观的看到各类质量和流量数据,确认无异常后按照系统推荐步骤点击按钮就可以完成整个调度流程,整个过程可在1、2分钟内完成。在特殊情况下,也可以由执行者根据综合考虑调整系统参数或者流程,做出更优选择。
图五. TIDP平台功能
展望
整体来看,腾讯互联网出口精细化调度能力和完善的调度系统在国内处于绝对的领先地位。但对比Google Espresso、Facebook Edge Fabric等业界标杆产品中的类似功能,我们尚有差距。随着腾讯网络的持续扩张以及用户对网络稳定性要求的不断提升,我们将持续在以下几个方面做出优化,不断提升网络调度能力。
◆ 质量探测:提升探测精度,尤其在海外区域;除去传统的ping、MTR等探测手段外,部署抓包分析等能力,快速发现异常。
◆ 路由分析:扩展路由信息收集渠道,整合运营商LookingGlass等平台信息提升全球互联网路由分析精度。
◆ 控制器分层:对控制器平台进行分级部署,提升平台稳定性和执行效率;园区级控制器可替代路由设备进行全量路由控制。
随着以上能力的不断加强,流量调度必将从现有的半自动化走向全自动化,也将从故障触发式走向持续调优式,即调度行为本身会消失,逐步融入到完全SDN化的TIX平台中,为广大互联网用户提供最优的访问体验!
"鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网络与服务器领域,规划、运营、研发、服务等层面的实战干货,期待与您的共同成长。
网络平台部以构建敏捷、弹性、低成本的业界领先海量互联网云计算基础网络服务平台为目标,为支撑腾讯公司业务持续发展,为业务建立竞争优势、构建行业健康生态而持续贡献价值!