链家网的网站开发费用大概多少钱,如何用php做网站管理系统,外贸网站建设费用多少,上海企业查询系统简介#xff1a; CDN除了加速外#xff0c;不断被赋予更多价值。在阿里云CDN推出的《极速奔跑吧 2021》首场直播中#xff0c;阿里云架构师和产品经理不仅对近期阿里云发布的CDN产品最佳实践图进行了详细解读#xff0c;还对CDN产品和客户的场景如何更高效地匹配、形成最优… 简介 CDN除了加速外不断被赋予更多价值。在阿里云CDN推出的《极速奔跑吧 2021》首场直播中阿里云架构师和产品经理不仅对近期阿里云发布的CDN产品最佳实践图进行了详细解读还对CDN产品和客户的场景如何更高效地匹配、形成最优方案进行了分享希望基于阿里巴巴及成功客户经验的分享为客户2021年的企业数字化升级之路加码提速。本文整理自《边缘创新技术和落地实践》议题介绍了边缘程序ER、QUIC这2个创新技术在前端渲染、小程序、短视频以及动态加速场景中的应用落地实践。 CDN除了加速外不断被赋予更多价值。在阿里云CDN推出的《极速奔跑吧 2021》首场直播中阿里云架构师和产品经理不仅对近期阿里云发布的CDN产品最佳实践图进行了详细解读还对CDN产品和客户的场景如何更高效地匹配、形成最优方案进行了分享希望基于阿里巴巴及成功客户经验的分享为客户2021年的企业数字化升级之路加码提速。
本文整理自《边缘创新技术和落地实践》议题介绍了边缘程序ER、QUIC这2个创新技术在前端渲染、小程序、短视频以及动态加速场景中的应用落地实践。
分享嘉宾阿里云产品经理陈章炜负责阿里云CDN边缘Serverless轻量计算产品、QUIC协议、CDN配置可编程等创新产品的孵化。
一、技术背景
1、边缘程序ER
边缘程序ER是在1月6日的阿里云CDN年度产品升级发布会中着重推出和介绍的创新产品它的原理是在CDN边缘节点上运行计算服务用户将javascript代码上传、部署至ER即可在全球的CDN边缘节点上运行相当于用户在全球拥有了大量微型服务器可以就近地处理客户端的计算请求。 过去传统CDN的缓存分发能力是将静态文件就近发送给客户端而现在阿里云CDN正在尝试让用户的后端计算服务下沉到CDN边缘节点让计算能更靠近客户端拿到更低延迟。同时由于CDN本身是一个巨大的弹性网络用户不用像购买服务器一样去关心算力资源和扩缩容CDN边缘节点网络可以很从容地弹性伸缩帮助用户应对每一次突发的业务。 2、QUIC协议 / HTTP3.0
阿里云CDN接入层支持3~7层、标准、私有等多种协议的接入可以满足大部分场景的加速QUIC就是其中一个协议。
QUIC是2013年由Google 发起的虽然已经发起很多年了但是真正的大规模商用阿里云CDN是走得比较靠前的。QUIC基于UDP协议在UDP的基础上实现了一套TCPTLSHTTP/2所有用TCP能传输的数据都可以用QUIC传输并且QUIC如他的名字一样传输速度更快仅仅只是替换客户端请求的协议就能够提升大约10%的访问速度在弱网环境下甚至能够提升20%这种改造带来的收益是非常可观的所以现在很多客户已经在使用阿里云CDN的QUIC协议进行加速了。
二、应用场景
1、边缘程序ER在电商前端渲染场景下的实践
电商前端渲染这个场景有什么特点 第一个特点是电商的页面数以亿计而且请求的量级非常地大。这些页面的内容大部分都是静态的不会频繁变化的。因此电商页面是天然必须运行在CDN上的依托CDN缓存分发的能力来降低源站服务器的压力。 第二个特点是页面元素非常多包括大量的图片文字元素将这些元素渲染成最终在手机上显示的页面。
常规情况下有2种渲染技术如上图右侧中所示一种是csr客户端渲染由客户端去发起把整个异步的请求去拿到动静态的数据最后回到客户端生成动静态数据然后把这些动静态的数据渲染成最终的1个HTML的结果这种渲染技术的缺点是客户端压力大、请求多延迟不可控。另一种是ssr服务端渲染当客户端发起一次请求由服务器端去做这些动静态资源的拉取和渲染最终给客户端返回1个HTML的文件由客户端去做加载。这种渲染技术下首先客户需要有专门服务器集群去做SSR成本比较高另外服务器需要接受来自客户端的渲染请求压力也比较大而且客户端发起请求之后需要等待时间也就是白屏时间将会影响客户端的用户体验。而电商恰恰对页面加载的延迟是很敏感的用户同样停留的时间加载速度快意味着用户能看到更多的商品更有可能成单相反如果加载很慢还可能造成买家用户的流失。
当阿里云CDN支持在边缘节点运行计算服务后就出现了新的渲染架构ESR 在边缘节点做前端页面渲染。这样既不用吃客户端性能也不用到很远的中心服务器去做集中的渲染看下图示意图 页面渲染的代码部署到ER客户端请求到达ER后ER会生成DOM结构并开始拉取源数据进行渲染而其中大部分的源数据都是静态文件例如图片文件这些静态文件就缓存在CDN上可以直接从CDN缓存读取不用发起网络请求。只有少部分例如页面上的粉丝数量、商品价格等少量数据需要实时的发起请求回源获取。边缘渲染完成后直接给客户端返回一个最终的HTML文件客户端只要做加载即可。另外边缘完成渲染后的HTML文件也可以直接缓存到CDN上让一段时间内的请求可以准时地复用这个页面结果减少不必要的重复渲染进一步降低客户端的白屏时间。
2020年双十一手机淘宝首次在阿里云CDN的边缘程序ER中进行主播详情页面的渲染计算客户端的图文页面请求直接在边缘节点完成渲染无需回源页面整体加载时间降低60%。同时ER引擎渲染后的页面结果可以直接缓存在CDN中 减少了每次回源的重复计算 整体复用率达到40%~60%。在降低客户端延迟为用户带去更顺畅的购物体验的同时在边缘直接完成渲染计算还节约了中心源站的算力。
2、边缘程序ER在小程序场景下的实践
小程序是近年很热门的一种轻应用形态相比原生开发的方式小程序有很多优点比如跨平台、免下载、随开随用、体积小等特点对于一般的小型服务完全够用了。目前在淘宝店铺、支付宝应用里都可以看到小程序的身影。 小程序是高度模块化/插件化1个小程序由多个json文件模块组成模板信息、版本信息、灰度配置信息、客户端信息、验签信息、安全策略等大部分的模块更新频率低呈静态化的特点少部分模块或个性化插件的实时性高需要动态回源获取。
基于小程序的这些特点边缘程序ER能帮助他做哪些优化 如上图所示以店铺小程序为例左侧是常规的小程序服务架构 客户端请求由中心服务器做小程序组装将各个模块组装成1个店铺框架后返回给客户端。
但是如刚才提到的这些模块其实也能细分成静态化的更新频率低的通用模板以及实时性高的个性化模块等。如果能在边缘根据客户端请求携带的用户信息做模块的精准区分静态化的文件直接从CDN缓存读取少部分的个性化模块、安全策略等高实时性模块等再异步回源拉取可以减少大量网络请求。CDN缓存加上少量网络请求后组装成店铺模板返回给客户端同时对组装完成的店铺模板文件也可以缓存在CDN缓存节点供一段时间内的同类请求复用减少重复的组装提高客户端加载小程序的加载速度。
小结一下直接在CDN边缘节点做计算的优势有很多。比如电商页面、小程序这种访问量非常大所以业务本身其实就会用CDN。而在经过CDN的时候增加一些判断的逻辑和内容生成的逻辑其实对原本的业务的侵入性是很小的业务改造成本也很小。同时还能够有效的去减少回源的数据请求避免网络请求可能带来的网延迟的风险。 同时由于边缘程序ER是直接跑在CDN边缘节点上的所以他就天然的具备所有CDN的优点。比如就近调度客户端的请求会就近的调度到离它最近、最优的节点进行计算处理。而且当一个区域的请求有突发时这些请求还会被自动调度到相对比较远但是有计算资源的节点进行处理。这种自动弹性调度的机制可以让客户无需担心业务的突发也不用冗余储备资源来应对整个资源的分配和扩容都由智能的CDN调度系统完成。
3、QUIC在短视频场景的应用
短视频这几年发展非常迅速已经基本成为了互联网流量增长的主要增长点。它具有两个特点第一短视频是纯静态的文件文件大、流量大所以短视频业务也是天然适合用CDN做分发。第二个特点是短视频大多是移动端的客户端、各类App应用移动端的网络环境更加复杂弱网环境很多这些场景下的卡顿率、失败率、首屏时间都会突增而短视频应用的用户体验是非常重要的卡顿和长时间的等待加载会打断用户的沉浸体验所以短视频应用追求的视频播放性能指标比一般的加速业务要更多更细化。 在这种追求极致的场景下如果换一个协议就能使传输速度有百分十几二十的提升短视频类客户是非常愿意尝试的。目前阿里云CDN支持在客户端到L1的这段链路中开启QUIC协议传输QUIC带来了非常多的新特性例如0-RTT的建连直接节省了TCP的3次握手和TLS握手这几个来回的RTT视频首屏可以秒开。第二QUIC支持连接迁移手机在切换请求不会断连视频的加载和播放不会被打断让用户的观看不会被打断。第三QUIC把拥塞算法从内核移到了应用层这使得阿里云CDN可以按月甚至按周根据客户的业务特点去升级拥塞算法帮助客户拿到更好的收益。第四TCP有队头阻塞的问题1个连接里的多个stream里只要有1个stream丢包就必须等待这个stream包重传后续的包即使已经被接收端接收了也无法被读取而QUIC没有这个问题在弱网环境可以减少了大量的重传减少卡顿和失败。
从阿里云CDN服务短视频场景的实践数据来看接入QUIC后卡顿、首屏、下载速度都有明显提升。
4、QUIC在动态加速场景的应用
动态加速大家应该比较熟悉了比如短视频是纯静态文件可以直接缓存到CDN节点上而应用里很多数据都是实时获取的例如账号密码、版本更新、数据库中的读写操作的API访问等这些数据都是实时变化的动态请求无法缓存在CDN上这时就需要请求源站获取。
在访问源站的网络链路里动态加速就是做智能选路它会实时探测网络的质量并最终规划出最优、延迟最低的回源路线。 一般使用动态加速的业务都是对延迟敏感度极高追求高性能。在回源这段链路里有智能选路了那接入层到客户端这段链路能否再优化呢
答案是可以。平台可以使用一些私有协议进一步提高传输效率而QUIC是一个标准化的协议可以让很多研发能力不是很强的平台也能够借助很多标准和开源的方案接入让客户端到边缘节点这段链路用QUIC高速传输。另外一般会建议客户在端上做TCP和UDP的竞速逻辑端上探测2种协议的传输速度在弱网的时候用QUIC协议保证高可用性网络好的时候用TCP最终拿到一个平衡的最低延迟的收益。 从阿里云CDN动态加速场景的实践数据看动态加速再接入QUIC后动态请求总耗时降低29%静态请求总耗时降低34%。
三、未来展望
阿里云CDN边缘程序ER目前支持代码包2MB以下的JavaScript代码部署正在努力支持更多的语言和环境例如使用Wasm技术让C、 C、 Rust、Go的程序也能够部署到ER上降低后端各种语言下沉到边缘的难度。在应用场景上边缘程序ER目前在前端场景得到了较好的落地和实践但我们认为边缘轻量计算平台的用武之地还有很多例如站点托管、API网关、IoT数据清洗聚合、Abtest等这块也是期待更多的客户接入后和我们一起探索。
关于QUIC协议目前阿里云CDN线上的QUIC已经有了Tbps级别的大流量验证并且为客户带来了明显的延迟收益。另外阿里云CDN也在关注兼容IETF标准的QUICIETF目前已经是第34个草案了预计将在未来的几个月内定稿。此外像多路径QUIC也是重点研究方向实际应用的场景例如移动端App手机App有wifi、移动网络双通道有了多路径QUIC后当单边信号强度很弱时就可以通过另一边通道进行补偿最终实现平衡稳定的网络传输。在应用场景上阿里云CDN的QUIC正在逐步扩展到直播直播对卡顿、弱网可用性的要求甚至比短视频更高对直播推流拉流的QUIC协议支持和调优也是未来一段时间内的投入方向。
作者樰篱
原文链接
本文为阿里云原创内容未经允许不得转载