HTTP/3落地Pinterest

Posted LiveVideoStack_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP/3落地Pinterest相关的知识,希望对你有一定的参考价值。

 点击上方“LiveVideoStack”关注我们

▲扫描图中二维码或点击阅读原文

了解音视频技术大会更多信息

编者按:HTTP/3正在不断获得新的应用部署,也有越来越多的案例证明了HTTP/3对流媒体应用的价值。随着生态逐步完善,HTTP/3份额会进一步提升。本文来自Pinterest技术博客,LiveVideoStack已获中文授权,感谢Liang Ma对本文的审校。

原文 https://medium.com/pinterest-engineering/pinterest-is-now-on-http-3-608fb5581094

文 / Liang Ma, Scott Beardsley, Haowei Yuan

译 / 核子可乐

技术审校 / Liang Ma

图一:Pinterest的HTTP/3架构

现在,HTTP/3已经在Pinterest落地。我们在多CDN边缘网络上为主要Pinterest产品环境启用了HTTP/3,同时完成了对客户端应用程序的网络技术栈升级,确保能够支持新协议。本次升级是为了紧跟行业趋势,确保以更快、更可靠的网络基础改善Pinterest的用户体验和业务指标。

相关背景

对Pinterest用户而言,网络性能(如延迟、吞吐量等)无疑是决定使用体验的关键要素。

2021年,Pinterest开始考虑采用HTTP/3(即QUIC),并逐步向流量/CDN乃至客户端应用普及。我们在整个2022年开展了相关研究,并成功实现了初步目标(这项工作在2023年及之后还将继续进行)。

术语

  • HTTP/3: 下一代HTTP协议,目前已经趋于稳定并由IETF工作小组负责收尾。

  • QUIC: 由Chromium/谷歌为HTTP over UDP而开发;项目随后被提交至IEFT进行标准化(即HTTP/3)。

落地HTTP/3意义何在?

HTTP/3是一种现代HTTP协议,相较于上代HTTP/2具备一系列优势,包括但不限于:

  • 与HTTP/2相比,不存在TCP队头阻塞问题;

  • 可跨IP地址实现连接迁移,有益于移动用例;

  • 能够更改/调整丢失检测与拥塞控制;

  • 缩短连接时间(0-RTT,而HTTP/2仍需要TCP三向握手);

  • 对于图像下载、视频流传输等体量较大的有效载荷用例,可提供更高的执行效率。

这些优势与Pinterest用例显然高度契合——实现更快的连接建立速度(首请求首字节时间)、更好的拥塞控制(我们掌握着大体量媒体)、保证多路复用时不存在TCP队头阻塞(同时多次下载),并可在Pinterest用户的设备网络/IP变更时继续处理in-flight请求。这样,当用户在Pinterest上挥洒灵感之时,他们将获得更快、更可靠的使用体验。

在Pinterest落地HTTP/3

策略

安全和指标永远第一。尽管Pinterest强调速度的重要性,但更重要的是要以妥帖恰当的方式采用HTTP/3。首先,我们升级了客户端网络技术栈,并为每种流量类型(包括图像和视频)创建了端到端A/B测试。之后,我们又开展广泛实验,最终才真正在CDN和客户端启用HTTP/3。

挑战

将我们的CDN和客户端应用转向HTTP/3其实并不简单,下面来看几个主要原因:

  • 对于Web应用程序,部分浏览器已经能够支持HTTP/3或QUIC。但这些浏览器在使用HTTP/3时仍可能存在兼容性问题,也许会影响到Pinterest的Web应用。

  • 新的ios版本(从iOS 15开始)已经提供对QUIC的早期支持,除非我们在服务器端禁用QUIC,否则无法通过代码对此进行控制。

  • 我们的各家CDN供应商在对HTTP/3的支持方面存在进度差异。当我们通过CDN逐渐启用HTTP/3时,Pinterest的多CDN边缘网络在很长一段时间内只能部分支持HTTP/3,导致流量在不同CDN间切换时难以保障其可靠性和性能。

解决思路

  • 首先,我们创建了A/B域级(CDN)测试,并在测试中克隆了一个域以启用HTTP/3,全面验证了已认证的客户端(包括Web)。例如:在图像HTTP/3验证计划中,我们使用i2.pinimg.com来验证http/3上的图像流量。

  • 对于多CDN问题,我们选择了相对较短的ALT-SVC TTL(生存时间)以贴近DNS记录TTL,并尝试在各CDN上配置相同的协议设定。

  • 开展广泛测试,通过各种最常用的浏览器对跨CDN HTTP/3行为进行验证。

  • 在A/B测试通过之后,我们开始在生产中启用HTTP/3(各CDN逐一启用),之后客户端应用程序使用功能标记通过兼容的网络客户端来控制HTTP/3。这样不仅安全性更高,也能对指标进行收集和比较。

落地现状

我们已经在关键流量类型上启用了HTTP/3,并升级/利用移动客户端的网络堆栈以采用HTTP/3。

流量:Pinterest多CDN边缘网络上的各主要生产域均已启用HTTP/3。

客户端:

  • Web在可兼容的浏览器和流量上直接受益于HTTP/3;

  • iOS——图像/API流量目前由Cronet和HTTP/3共同提供。目前,70%的iOS图像流量经由HTTP/3传递。

  • iOS的原生网络技术栈,能够在我们的流量端启用后使用HTTP/3协议。苹果原生网络栈的HTTP/3采用率一直保持着稳定增长。我们也从收集的Video指标中发现该在采用HTTP/3(通过AVPlaer)后相关指标得到了显著改善。

  • android Video性能通过Exoplayer+Cronet使用HTTP/3。

展示

我们的分析表明,HTTP/3(和Cronet)切实改进了各项核心网络指标(往返延迟与可靠性)。这种延迟/吞吐量层面的改进,对于大型媒体功能(例如视频、图像等)至关重要。更快、更可靠的网络也有助于拉升用户的参与度指标。

视频指标

视频GVV(视频良好观看率)细分(iOS:苹果网络+HTTP/3):

视频GVV细分(Android:Exoplayer + Cronet + HTTP/3):

图二:HTTP3对视频启动延迟的直接影响

参与度指标(iOS): HTTP/3的直接影响

图三:HTTP3对用户参与度的影响

网络指标

  • 往返延迟 (ms):

图四:网络请求的往返延迟,蓝色为使用HTTP/3前,红色为使用后

备注:

(1)测量的是从客户端测量,即从请求发出到收到响应的时间;

(2)苹果原生网络(HTTP/2)指标的来源为2022年第三季度某一周内的网络日志;Cronet(已启用HTTP/3)指标的来源为2023年第一季度某一周内的网络日志。

  • 网络可靠性指标也有相应提升。

未来计划

我们将继续向HTTP/3投入以扩大收益,包括:

  • 增加HTTP/3的覆盖范围,探索Android上的其他网络技术栈;

  • 进一步提高HTTP/3采用率,设定更大的max-age值;

  • 尝试各种拥塞控制算法;

  • 探索实现0-RTT连接。

以上是关于HTTP/3落地Pinterest的主要内容,如果未能解决你的问题,请参考以下文章

为啥Underlay才是容器网络的最佳落地选择

干货 | 博云基于OVS自研容器网络插件在金融企业的落地实践

(转)重磅无监督学习生成式对抗网络突破,OpenAI 5大项目落地

第1课 VMware的NSX全面落地软件定义网络SDN

应用为王的Web 3.0时代,章鱼网络能否推动应用链落地潮?

安全中间件适配中心正式落地国家网络安全人才与创新基地