写点什么

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

  • 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:494824

评论

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

从系统架构分析安全问题及应对措施

京东科技开发者

网络安全 安全 系统架构 信息安全 ssl

资深技术笔译总结的这7条建议,看完提PR效率倍增

OpenHarmony开发者

OpenHarmony

嗖的一下就码出一个CLI

蛋先生DX

typescript 前端 命令行 cli 代码生成

BI 报表正逐渐成为技术债,真的吗?

Kyligence

数据分析 指标管理 BI 报表

《小米创业思考》之三:互联网七字诀

郭明

读书笔记

数据中台改名DaaS平台?究竟什么是数据即服务(DaaS)?

雨果

DaaS数据即服务

数据库的视图怎么用?

阿柠xn

MySQL 运维 视图 数据库· 9月月更

自适应熔断原理分析与源码解读

万俊峰Kevin

Go golang 熔断 go-zero 限流熔断

LeetCode-14. 最长公共前缀(java)

bug菌

9月日更 Leet Code 9月月更

技术解读:Dragonfly 基于 P2P 的智能镜像加速系统 | 龙蜥技术

OpenAnolis小助手

开源 dragonfly p2p 龙蜥技术 镜像加速

消除 JavaScript 的一些“异味”

掘金安东尼

JavaScript 前端 9月月更

美团前端一面常见面试题

beifeng1996

JavaScript 前端

Spring5源码14-SpringMVC-HandlerMapping

Java快了!

springmvc

LeetCode-20. 有效的括号(java)

bug菌

9月日更 Leet Code 9月月更

云图说丨初识分布式消息服务Kafka版

华为云开发者联盟

云计算 企业号九月金秋榜

我用WireShark结合一款神器成功绘画出入侵者的地图!

wljslmz

Wireshark 9月月更

喜提“双黄蛋” | 旺链科技亮相2022世界人工智能大会

旺链科技

区块链 产业区块链 企业号九月金秋榜 人工智能大会

Karmada v1.3:更优雅 更精准 更高效

华为云开发者联盟

容器 云原生 后端 华为云 企业号九月金秋榜

遥居前列!华为云GaussDB再获行业权威验证

华为云开发者联盟

数据库 后端 华为云 企业号九月金秋榜

SPL工业智能:发现时序数据的异常

石臻臻的杂货铺

SPL 9月月更

Hugging Face:成为机器学习界的“GitHub”

OneFlow

神经网络 机器学习

Spring 源码阅读 29:基于 XML 配置初始化 Spring 上下文过程总结(10+详细流程图)

Java快了!

xml

关于Java 同步工具和组合类的线程安全性分析

Java快了!

java;

如何重新评估未完成的工作

ShineScrum

Scrum 敏捷 DoD 未完成的工作

看得懂又好看的数学书,万人亲测的硬核教程!

博文视点Broadview

Java基础——编码命名规范

守夜人st

java; 编程语言‘ 9月月更

天翼云加码边缘计算,让普惠算力触手可及!

天翼云开发者社区

第二届SmartNIC&DPU技术创新峰会即将开幕,速来围观

天翼云开发者社区

【FAQ】接入华为应用内支付服务常见问题解答

HarmonyOS SDK

New Wireless Technologies to Help Meet Aviation Demands IPQ6018/IPQ6000/IPQ6010/Wallys

wallys-wifi6

IPQ6010 ipq6018 IPQ6000

保利威重磅开启「828 B2B企业节 · 专场峰会 」!

科技怪咖

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