在互联网行业,一个公司可能同时在很多不同的领域做各种尝试。想让做的每件事情都极其成功,似乎不太可能,只要这些事情中一件事情成功,就足以带起整个公司的发展。成立 19 年的腾讯,以最新 4 万亿的市值,印证了这一说法。在腾讯,既有微信这样极其成功的产品,也有更多鲜为人知的技术尝试。这些尝试里,如果能够推动一件关键事情的爆发,那就足够有意义。
正如腾讯前不久代理的“吃鸡游戏”,一时火爆朋友圈,在这背后,有一项看似及其微小但至关重要的技术,支撑了千万人同时在线的无卡顿不宕机,这就是腾讯云最新发布的 Supermind 智能网络技术,今天我们就来聊一聊腾讯云智能网络加速的那些事儿。
腾讯云网络技术变迁史
网络拥堵甚至中断是所有互联网企业十分头疼的问题。腾讯云从 13 年开始建立云网络体系,在技术发展的洪流下,一路摸爬滚打探索出了一条属于自己的网络技术优化与创新之路。建立至今,腾讯云的网络架构一共经历了三次重大的更新和迭代:
- 2013 年,腾讯云通过基础网络、弹性公网 IP、内 / 外网负载均衡、安全组等技术构建了第一代云网络雏形。这其中,基础网络,用于存储之间的流通;内 / 外网负载均衡,保证网络的高可用性;弹性公网 IP,帮助云主机访问 Internet;最后,安全组,用以保证用户数据安全。就这样,第一代能够实现基本传输功能的网络雏形诞生;
- 2015 年,混合云概念的提出和发展,原有网络体系已不足以支撑用户对私有云的需求,腾讯云采用 overlay 网络模式,发布了 VPC、VPN 专线、弹性网卡、弹性扩容为主导的第二代网络架构。新的网络架构里,用户可以自定义 IP,与其他租户进行逻辑上的网络隔离。同时腾讯云接入 VPN 专线,帮助用户在云上和数据中心建立混合云连接。这是网络技术迈向云端的一大步;
- 2017 年,VR、AR 等场景对网络传输速度和性能提出了更高要求。腾讯云从云主机和负载均衡两方面着手,推出了 Supermind 智能网络加速技术。云主机方面,将物理网卡升级为 25Gbps bonding 架构,利用智能网卡 SDN 模块的网络动作层(fastpath)和策略层(slowpath)分离,来提升网络带宽吞吐量和网络包转发能力;负载均衡方面,支持 quic 网络传输协议,quic 网络传输协议改进了 TCP 协议的功能,重构了 TLS 协议,可大幅提高页面的加载进度,有效降低网络延时造成的体验不佳的问题。据了解,这也是国内首家支持 quic 协议的落地案例。
纵观腾讯云网络技术的发展历程,每一次的更新与迭代,都是以用户需求为主导,通过对当下最新趋势和技术的捕捉和结合,完成了网络性能的进阶与蜕变。
Supermind 智能网络加速是如何实现的?
一个网络请求的漫漫之旅
在聊网络加速之前,我们先来看看网络请求是如何进行的。下图是一个手机请求信息通过云服务商最终到达服务器的路径图。首先,手机通过 4G 或者 wifi 连接到运营商的网络里,当用户使用手机或者电脑发送一条指令时,信息通过路由器再进行调制解调器最后发送给运营商,运营商收到信息后,将网络访问请求发送给游戏服务器,服务器根据接手到指令进行相关操作处理。
在这个过程里,网络请求经过的路径是比较长的,比如用户在北京,服务器在上海,那么,这条请求需要穿越千山万水,跨越无数路径来到腾讯的服务器,而网络拥堵或者调制解调器等任何一个环节出现问题,都可能导致网络包请求失败。
Supermind 智能网络加速基本原理
面对网络常常出现的拥堵或者请求中断等问题,Supermind 智能网络采用的解决办法是“IP 发布控制 + 云内骨干网 +BGP 互联”的方案,利用跨地域网络调度,避开网络拥堵。具体过程为:通过开放 anycast 路由策略,用户和云端的网络访问请求就近接入腾讯云 POP 点,再通过 Supermind 全球骨干网直达访问服务器所在地实现网络加速。
在这里,采用专线有几点好处:1) 减少数据包在公网上的传输路径, 避免公网的波动对质量的影响;2) 公网故障 BGP 自动切换路由, 在容灾方面天然具有优势;3) 腾讯骨干网可以提供时延更低,稳定性更高的网络。如此,能极大程度的避开网络拥堵造成的网络包请求失败。
以云为中心的网络架构核心优势
吃鸡游戏的火爆除了游戏本身的吸引力之外,全球同服是其中重要的一个关键点。而要实现全球同服,除了服务器本身,还需要全球互连互通节点网和调度控制的能力,才能完成网络调度和加速。腾讯云 BGP 网络上有 15 年的研发运营经验,在面临国内交叉复杂的网络环境中,修炼出一身基于 SDN 的跨地域网络调度能力,保障了包括微信、QQ 在内的亿万用户良好的互联网通信顺畅。具体而言,以云为中心的网络架构核心优势包括以下三点:
1)近 100 路运营商聚合,全球同服。腾讯云拥有 Tb 级的 BGP 网络带宽,在全球聚合了近 100 路运营商接入资源。在国内,用户只用集中维护一套集群,然后 IP/LB 以跨地域绑定方式,即可覆盖全国用户,实现 真正意义的全网同服;
2)全球 Tb 级骨干承载,多节点互连互通。Tb 级骨干承载网,连通了在全球的各大 BGP 网络出口,单地域故障时可以自动进行流量切换。即当网络发生拥堵时,可以通过更改 IP 的发布地,让流量躲开拥堵地区,实现网络效果优化。基于同样的原则可以以最优路径返回,快速响应 client 端;
3)多维网络监控模型,全局网络监控告警。一方面,采用面向全球的网络拨测和自动化告警系统,从网络层面感知网络运营情况;另一方面,通过自研产品统计上报网络连接质量的统计信息,快速定向判断全球网络点对点的网络质量,先于网络层感知网络异常,快速定位网络问题。
以某一广州游戏公司为例,backend 服务集群在广州,但又希望全国的用户能接入。这就同时需要全局漂移 IP,作为访问的唯一入口。在没有网络跨地域调度和就近接入服务的条件下,用户只能区分多个外网 IP 方式以及寄望于运营商链路质量。这种做法容易导致网络卡顿,在服务商 BGP 网络异常的情况下,亦无法及时发现解决问题,用户会因为体验问题而流失。
接入 Supermind 智能网络后,用户只用集中维护一套集群,IP/LB 以跨地域绑定方式即可覆盖全国用户。同时,腾讯云 Tb 级骨干承载网能够帮助入口调度躲避拥堵,清除冗余路径,解决网络卡顿问题。
Supermind 智能网络性能优化实践经验谈
网络加速的实现原理说起来简单,具体到落地实施,却是一件庞大而复杂的事情。比如如何提前预测流量峰值,规避网络拥堵?如何快速发现网络异常,定位故障节点?海量网络数据的前提下,如何保障用户信息安全?这些都是让开发者和运维人员十分头疼的问题。
在解决方案上,Supermind 采用人工智能的方式,实现网络规划、建设以及运维的全流程。它覆盖规划、资源管理、网络监控、故障定位、故障排除、安全防护等能力,形成了从网络系统设计、管理、运营、优化、安全等方面的智能闭环,并在网络速度、性能和安全上做了系列优化实践。
风险资源提前扩容,智能管理网络拓扑
风险资源提前预测扩容相对容易实现,具体做法是将几万条网络链路的历史使用数据导入到 Supermind 数据智能分析系统里面,这样人工智能就可以依据历史的数据思考哪些地方可能会出现一些变化。基于这样预测,就可以提前和合作运营商发起网络的扩容申请,保障网络的畅通无阻。
如一天之中,哪个时间段会比其他时间段产生更高的一个流量?这个流量峰值和谷值会达到一个什么样的比例?一周之内,工作日和非工作日几万条链路,哪些链路工作日更多?哪些链路非工作日更多?这些都可以通过以往的历史数据统计分析出一个大概规律和结论,然后基于此结论提前扩容用以规避风险。
再说网络拓扑管理,对网络结点而言,完全一一互联是非常困难的事情,如上图所示的网络拓扑图,A 和 C 之间的流量很少,这两点之间通常无法直接建一条连通线,需要通过其他节点传输。如 A 和 C 之间的流量可能会分到 A、D、C,也可能分到 A、B、C,这种绕行情况导致的网络拥堵就有两种选择:一种是在原有的链路上直接扩容,另外一种方法是建立一条新的链路。我们需要通过计算找到最优路径,当几万条数据需要同时做选择时,显然传统的 BGP 选路策略无法适应和支持基于网络通信质量来进行出口优化。
Supermind 网络的 SDN 控制器自学习算法,根据监控反馈的链路质量,通过 AI 算法计算,以时延和丢包为主要约束条件,支持譬如 ISP 优先、本地优先、区域优先、AS PATH 最短优先等最优出口选择。在几十上百个出口、几万条可选路径的情况下,人工把所有的可能路径遍历研究一遍,在最短时间内计算全局最优的出口,下发路由策略。
快速发现网络异常,秒级定位故障节点
传统的网络故障如网络链路中断时,一般的人工排查流程是要查看同时段关联告警以及机房质量,获取端到端拓扑,查看设备 syslog、流量以及是否丢错包,并进行流统测试,对链路、设备进行隔离,整个一圈走下来,一个成熟的网络工程师至少需要 30 分钟才有可能定位出这个网络故障的源问题发生点。
Supermind 采用 SDN 转控分离解决方案,将复杂的协议与计算诉求放在上层的服务器资源中进行,底层设备仅做转发操作。将路径选择、IP 发布的算法统一收归到全局唯一的控制器,推进简化设备的使用,借助多层异常告警收敛聚合算法定位故障,输出聚合精简后的告警信息。据悉,通过 AI 提供定位建议,可以将故障定位时间缩短到了 5 分钟以内,平局处理时间降低 75%,人工识别告警到处理完成控制在 20 分钟以内,整体系统 SLA 提高了 20%。
一般问题自动处理,重大故障专业建议
故障发现之后,就要对故障进行处理。系统会首先对网络故障进行策略的分级,比较传统的、一般型的网络故障,AI 会根据预先设定的策略进行自动化的执行,如面对外网问题,可以采用 DSN 调度,BGP 调度或者 DDoS 封堵等方法来解决问题;如果是面对内网的决策,可以通过弹性扩容,Qos 保障,断口隔离,切换路径等实现自愈。程序员只需提前设定好故障处理系统,智能网络则可通过处理故障。
现有的 AI 故障自愈系统大多是基于人的理解设定,无法完全理解网络底层的架构,也就是说并不是所有的问题都能采用人工智能的技术解决,在出现重大的故障时,AI 可以适当给建议,由运维工程师集中解决的。经过这样智能改造之后,现在腾讯云 85% 的故障是不需要人为介入的,总的故障处理时间降低了 60%。当然我们也难以保证,未来的某一天 AI 对网络的技术理解比人的理解更加深入的时候,可能整个环节就不需要人工的参与了。
智能识别恶意攻击,保障用户网络安全
除了刚才说的在网络资源管理、网络排障、网络故障发现以外,网络安全上也起到了越来越重要。传统的黑客在攻击一个目标的时候,是通过手动的方式,点对点进行攻击的。这种方式已经无法应对新的时代快速发展的对效率的要求,现在多数黑客通过 AI 扫描,窥探互联网上哪些数据库可能会有高危的端口,哪些平台有哪些漏洞,扫描信息后将不同数据库进行一个拼接,窃取用户数据。
防护黑客智能攻击需要智能的手段,腾讯云 Supermind 网络采用 AI 模式拆解、综合性信息防护、语义分析与诈骗防护提示、舆情分析 + 关键时间点防护、反机器人模拟人脸、指纹、声纹、反系统性 ddos 攻击、反 AI 爆破的密码定义及校验等功能。
写在最后
网络是用户使用云服务时最为关注的技术点之一。不管是之前震撼整个游戏圈的“王者荣耀”,还是如今一直霸榜搜索热门的“绝地求生:大逃杀”,腾讯产品的火爆,都离不开其背后的底层技术支持。Supermind 智能网络技术的出现,不仅是当今用户对网络速度、性能等体验极致化要求的集中体现,也在一定程度上反映了国内 IAAS 公有云厂商逐渐从 IDC 内部走向全网覆盖,以及网络管理 AI 化的趋势和潮流。
评论