【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

架构视角解读网络加速 :基于公有云的方案已经过时了?

  • 2021-11-02
  • 本文字数:3677 字

    阅读完需:约 12 分钟

架构视角解读网络加速 :基于公有云的方案已经过时了?

GA(Global Accelerator)全球加速,是个让人觉得“既熟悉又陌生”的行业。

 

“熟悉”是指,GA 不是个新词汇,你几乎能在所有公有云厂商的产品介绍下,看见 GA 这项服务。做出海、游戏类业务的人都太熟悉 GA 了,没有它 ,基本的网络连通都将成为问题。

 

“陌生”则是说,即便在疫情的催化下,GA 行业依然很少出现在开发者社区的主流视野中。在疫情爆发的这两年间,我们频繁谈起数字化转型、智能数据平台、RTC,可就是很少谈起 GA。

 

为何会出现这样古怪的情况呢?有一种可能是:虽然 GA 服务非常关键,但它属于基础设施,在技术层面暂时没有太多的想象空间,缺少跨越式发展,因而讨论热度较低。

 

前不久,声网发布了 FPA 全链路加速产品,乍一看与 GA 相仿,又存在截然不同的技术特征,格外让人好奇。因此,InfoQ 特别采访了 FPA 的产品负责人施政与声网基础平台技术负责人王浩宇,希望能在架构和产品的视角对 FPA 进行解读,从中寻找关于全球加速服务的新的启发。

 

为何“最后一公里”问题无人问津?

 

要更好地理解声网 FPA ,首先要了解 GA 的工作原理。简单来说,GA 服务一般由公有云厂商提供,会为用户分配少数接入 IP,保证用户就近接入公有云加速网络,再通过各个节点间的加速链路,配合动态的调度策略,实现传输层的网络加速。

 

GA 加速方案是开创性的,它将单一用户纳入公有云庞大的基础设施资源里,进行跨地域跨运营商加速,并以云的方式,自底向上融合了多种加速技术,包括 CDN、专线网络。而在此前,无论是 CDN 加速方案还是专线加速方案,彼此都是孤立存在的,而且都是主要在物理层面使劲,忽略了软件层面,显得有点粗犷。

 

但 GA 加速方案也不是完美的,它存在许多天然劣势,其中之一便是“最后一公里”问题:以 IP 协议接入加速网络,意味着在接入前,没有端侧 QoS 保障。具体来说,如果用户如果通过 Wi-Fi 接入,将面临 Wi-Fi 设备性能差异、信道竞争等多种问题;如果通过 4G、5G 信号接入,则会因环境不同,造成信号强度不同,出现网络性能波动。

 

声网 FPA 的一个重要技术特点便是解决终端接入问题,而这种解决方案主要是通过在终端、服务端集成 FPA SDK 来实现的。通过 SDK, FPA 构建了一种覆盖任意端到任意端的全链路加速通道,这也是 FPA(Full-Path Accelerator)名字的来源。SDK 集成后,从端侧到骨干网,弱网对抗、智能接入、自主决策、冗余接入等多种技术方案都可以发挥作用,这是该种方案为用户体验带来的最直观的改善。

 

弱网对抗不必多说,这是所有视频会议、RTC 行业从业者都必须解决且保持长期关注的问题。智能接入、自主决策是指 SDK 会向调度中心请求一份路由列表,已获知最近入口,并根据路由列表自主决策在何处接入,避免与调度中心反复通信增加延迟。

 

冗余接入是指 SDK 会和多个入口建立连接,传输相同的数据包,保证高可用,减少重传延迟。

 

听起来,集成 SDK 对整体加速性能的提升,还是非常有益处的。但此前,无论是 CDN 服务提供商,还是 GA 服务提供商,都无法提供成熟的 SDK 集成服务。不是大家不想,而是因为不能。

 

FPA 产品负责人施政说:“因为大家一直以来提供的都是一种标准的 web 服务。在这个场景下,对开发者或者对于用户来讲,端侧集成是不能接受的。”

 

“但在声网的实时互动领域,”他补充道,“开发者已经接受了声网使用 SDK 的方式作为他们的开发组件。”

 

情况也确实如此,SDK 一直是声网长期以来的主要服务模式。2020 年 10 月, 声网 Agora 创始人兼 CEO 赵斌在RTE大会上宣布,客户主动调用 API 次数突破 100 亿次/日。而声网最新的财报也显示,截至 2021 年 6 月 30 日,声网全球注册应用超 33.7 万个。这些无疑都是非常惊人的数据。

 

SDK 集成的方案对业务的侵入性很强。如果 SDK 不稳定,且业务模块没有做好边界测试和限制,相关故障很容易殃及整个系统。且与云服务不同,SDK 的代码是暴露的,当系统故障时,可能会让问题变得更复杂。

 

但任何方案都有两面性,SDK 方案的问题,同样也促使声网在软件研发层面,构建出了自身的技术壁垒——

 

“声网 SDK 的崩溃率是 0.5 ‱(万分之零点五),在行业内是最低的,没有经过洗礼是达不到这种程度的。”施政说。

一个“异类”:基于 SD-RTN™ 的骨干网传输优化

 

除了端侧的覆盖问题,FPA 在骨干网层面的加速策略,也与传统 GA 服务完全不同。

 

FPA 的骨干网加速能力是基于声网 SD-RTN™ 构建的。SD-RTN™ 在架构层面分为三层:

 

第一层:数据层。数据层负责数据的实时传输和转发,并负责将当前的状态数据上报给控制层。

 

第二层:控制层。控制层类似一个网络操作系统,完成的是传统 Internet 的工作,包括寻址、计算并下发路由地址、控制传输的拓扑结构等。

 

第三层:应用层。应用层面向业务逻辑,同时会针对实时音视频场景做特别的优化。比如更改关键帧的处理策略、进行协议适配等。

 

这样的架构在 2019 年具备雏形,于 2020 - 2021 的两年间逐渐成熟。与传统的专线网络不同,SD-RTN™构建在公共互联网上,使数据中心、企业内部以外的任何用户的终端都可以访问,对硬件的依赖很小;另外,SD-RTN™的数据中心分布在全球数百个节点,保证了通讯的舒畅。同时,声网也在探索自建机房,以此解决复杂的运营商问题,更好的控制成本。

 

SD-RTN™ 无论在 RTC 领域还是在网络加速领域,都算的上是一个“异类”。发展至今,业内最主流的网络加速和低延时解决方案,还是基于 CDN 构建的,与 SD-RTN™ 在架构设计上几乎背道而驰。

 

作为历史悠久的内容分发解决方案,CDN 采用多级缓存的机制,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。更为重要的一点是,运行在 CDN 之上的传输协议,大多基于 TCP。

 

而 SD-RTN™ 在建立之初就把传输层协议确定为 UDP,以规避 TCP 因握手、超时重传机制带来的高延迟。同时 SD-RTN™ 在对缓存的控制非常谨慎。用声网基础平台技术负责人王浩宇的话说,就是“如何用最小的缓存去实现最优的效果”。

 

他也补充道:“FPA 很难对数据做缓存,这个跟 CDN 做静态加速完全是不一样的效果。你会发现有的时候缓存没啥用,比如最近有一个从 CDN 切到声网的用户,应用场景是上传课件,上课马上就要用。他们发现,基于 CDN 的加速效果很差。”

 

“为什么呢?”他说,“因为要建立缓存,其实需要付出很大的代价,而且如果没有一些预热,可能这个缓存的效果根本就不尽如人意。CDN 分发非常便宜,但它有使用前提,就是你一定得高频击中缓存,否则效果不好。”

 

当然,SD-RTN™ 和 CDN 在资源侧没有隔阂,声网的思路是基于用户需求,定向的增加某个地区的节点覆盖。

 

究竟 CDN 和 SD-RTN™ 哪种方案效果更好?这里不好下定论,CDN 也在不断针对低延时场景进行优化。但从新东方、陌陌等企业的实际使用效果来看,SD-RTN™ 确实能够解决问题,并且在架构设计和未来扩展层面,可能更适合实时互动场景。

自研 AUT 协议:传输层的优化更有想象空间


声网 FPA 的另一个技术特点在于其自研的 AUT 协议,架构示意如下:



在发布会上,声网也发布了,AUT 协议和以 TCP 为代表的公共协议,在三种情况下的抗弱网效果数据。实验方法是发送 1000 个消息数据并记录其到达时间,实验结果如下图。



可以看出,对比 TCP 类公共协议,AUT 协议在限速和丢包场景中,平均消息到达延迟分别下降 53% 和 67% ,在同时限速与丢包的极端场景下,平均消息延迟下降 55%。数据表现非常不错。

 

AUT 协议的开放,同时给 FPA 带来了另一个与传统 GA 方案不同的特性。GA 虽然是基于公有云进行链路加速的,但所涉及的一般不止是“一朵云”或一个运营商,跨云、跨运营商是常见场景,这依赖于 BGP Anycast (边界网关协议 + 泛播),也往往导致加速效果出现大幅波动。

 

而 FPA 运行在 SD-RTN™ 之上,首先避免了多云场景。更重要的是 AUT 是传输层协议,优化空间大于基于 IP 协议通信的 GA 服务。王浩宇在采访中说:

 

“我们相信这样是对开发者最友好,对于整个网络传输过程来说,也是最可控的形式。我们通过端到端的传输能控制如何组包、协议怎么重传、怎么做编码侧地优化,以及协议里怎么做连接的关闭和迁移,这些全都是我们可以去深入优化的细节。”

无止境的质量问题

 

关于未来的产品迭代方向,王浩宇认为还有大量的工作需要做:

 

“从产品视角来看,我们还是专注于开发者,思考能不能在更多的场景下,提供更易用的方法,比如代码集成就可以获得 FPA 的各项能力。另外从质量上来讲,如何在各种网络异常出现的情况下,还能保证用户业务得到简单处理?包括资源布局、资源上的补充和替换,都是我们需要继续加强的。”

 

5G 和云游戏也是一个场景上的挑战。云游戏要求延时在 5ms 以内,在网络条件差的情况下,如何实现这个目标?王浩宇说,这是声网愿意集中精力长期投入的事情。

 

同时,声网也并不认为现在推出网络加速服务“为时已晚”。产品负责人施政说:

 

“以前大家总觉得,在网络层做好管道,让管道尽量靠近用户就够了,但从开发者的视角来看,真的是这样吗?开发者面对的端到端保障问题,有没有人帮他解决?”

 

“质量这个事情是无止境的。”

2021-11-02 13:494309

评论

发布
暂无评论
发现更多内容

从零到一手写迷你版Vue

helloworld1024fd

JavaScript

一步步实现React-Hooks核心原理

helloworld1024fd

JavaScript

React高级特性之Render Props

夏天的味道123

React

云图说丨什么是应用身份管理服务OneAccess

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜

PAI-Diffusion模型来了!阿里云机器学习团队带您徜徉中文艺术海洋

阿里云大数据AI技术

机器学习 算法 图文生成 12 月 PK 榜

react-Suspense工作原理分析

夏天的味道123

React

圆桌实录 | 为什么不约而同选择了大 Kernel

MegEngineBot

深度学习 开源 MegEngine 大 Kernel

Webpack配置实战

Geek_02d948

webpack

react的jsx语法是怎样解析的

夏天的味道123

React

【敏捷研发系列】前端DevOps流水线实践

京东科技开发者

敏捷 前端 软件开发 运维‘ #DevOps

Vue实战必会的几个技巧

yyds2026

Vue

Vue响应式系统原理并实现一个双向绑定

yyds2026

Vue

Webpack构建速度优化

Geek_02d948

webpack

vue为何不允许子组件修改父组件prop传值

达摩

Vue 数据流向

react进阶用法完全指南

xiaofeng

React

软件测试 | Github 必会高频基础命令与 IDE 的 Git 集成

测试人

GitHub 软件测试 自动化测试 测试开发

Webpack最佳实践

Geek_02d948

webpack

前端vue面试题(持续更新中)

bb_xiaxia1998

Vue

产品待办列表梳理(PBR)是什么?

ShineScrum捷行

Scrum 敏捷 产品待办列表 Scrum event

前端二面常见手写面试题(必备)

helloworld1024fd

JavaScript

使用全彩LED显示屏时的安全要点

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

react组件深度解读

xiaofeng

React

阿里云携手百奥利盟发布云上精准医疗与创新生物药数字化解决方案,助力行业数字化转型

云布道师

阿里云

纯函数

达摩

js 纯函数

link和import的区别

达摩

redux原理是什么

xiaofeng

React

kubernetes 1.26发布,这十项新特性值得关注!

BoCloud博云

Kubernetes 云原生

浅谈字节码增强技术系列1-字节码增强概览

京东科技开发者

Java、 aop 字节码 字节码增强

前端高频手写面试题总结

helloworld1024fd

JavaScript

世界杯火爆进行,中科极光真激光电视解锁缤纷观赛季

硬科技星球

Vue响应式依赖收集原理分析-vue高级必备

yyds2026

Vue

架构视角解读网络加速 :基于公有云的方案已经过时了?_架构_王一鹏_InfoQ精选文章