4月,谷歌推出了Media CDN 服务,这是一个使用与 YouTube 相同的基础设施来交付内容的平台,旨在为广大客户提供全方位的自动化内容交付体验、让服务内容更加靠近于终端用户。Media CDN 加入了 谷歌 的 Web 和 API 加速 CDN 产品组合,相比于其他的CDN,谷歌声称Media CDN 具有独特之处,例如为个人用户和网络条件量身定制的交付协议以及“行业领先”的卸载率。
谷歌副总裁 Shailesh Shukla 在一篇博文中写道:“通过多层缓存,我们最大限度地减少了对源站的调用——即使是不常访问的内容。这减轻了内容来源的性能或容量压力并节省了成本。”
谷歌Media CDN让CDN市场又起波澜。那么,什么是CDN?为什么需要CDN?CDN如何工作?CDN有哪些产业生态呢?本文将带您一一了解。
CDN是什么?
CDN依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,缓解互联网网络堵塞,提高互联网业务响应速度,改善用户业务体验。
用户在上网的时候可以不用直接访问源站,而是访问离他最近的一个 CDN 节点,该节点缓存了源站内容的代理服务器。如下图所示:
CDN的概念其实和物流服务中的本地仓库有点相似。我们在浏览一个页面的时候,会向服务器请求很多的网络资源,包括各种图片、声音、影片、文字等信息。
就像天猫超市会把货物提前存储在各地的本地仓库来减少物流时间一样,网站也可以预先把内容分发至全国各地的加速节点。这样就可以避免网络拥堵、地域、运营商等因素带来的访问延迟问题,有效提升下载速度、降低响应时间。
MarketsandMarkets 预测,全球CDN市场规模将从 2022 年的 192 亿美元增长到 2027 年的 345 亿美元,在预测期内的复合年增长率 (CAGR) 为 12.5%。
CDN的组成
一般来讲,CDN网络主要由中心节点和边缘节点两部分构成。
中心节点
中心节点包括CDN网管中心和全局负载均衡DNS重定向解析系统,负责整个CDN网络的分发及管理。
边缘节点
CDN边缘节点主要指异地分发节点,由负载均衡设备、高速缓存服务器两部分组成。
负载均衡设备负责每个节点中各个高速缓存服务器(Cache)的负载均衡,保证节点的工作效率,同时还负责收集节点与周围环境的信息,保持与全局负载均衡DNS的通信,实现整个系统的负载均衡。
高速缓存服务器负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中高速缓存服务器就像网站的原始服务器一样,响应终端用户的请求。因其距离用户更近,故响应时间才更快。
中心节点就像仓配网络中负责货物调配的总仓,而边缘节点就是负责存储货物的各个城市的本地仓库。
为什么需要 CDN?
互联网在传送丰富的 Web 内容时,往往会造成网络拥塞,而从集中在某个地点的服务器将内容交付给每一位用户需要花费的时间太过漫长,CDN 服务应运而生。
CDN 平衡了整体流量,就像交通疏导一样。如果我们要从 A 点出发去B 点,在没有其他车辆的情况下,会有一条最快的路线,但如果这条路线变得拥堵,那么就需要将车流分散到多条不同的路线上。通过合理的负载平衡和充分利用所有资源,大家就都不会在路上浪费时间。
我们可以看下不使用CDN和使用CDN时的不同工作模式。
不使用CDN
当用户访问网站时,会建立一个类似于下图的连接。网站名称使用本地 DNS 或 LDNS解析为 IP 地址。如果 DNS 或 LDNS 无法解析 IP 地址,它会递归地请求上游 DNS 服务器进行解析。最终,请求可能被传递到承载该区域的权威DNS服务器。这个DNS服务器解析地址并将其返回给用户。
然后用户的浏览器直接连接到源服务器并下载网站内容,每个后续请求都由源服务器直接处理。当其他用户尝试访问同一站点,将会经历同样的流程。如果源服务器离用户很远,响应时间将会有明显的延迟,用户体验比较糟糕。
使用CDN
在使用 CDN 的情况下,过程会略有不同。当LDNS 收到用户发起的 DNS 请求时,它会将请求转发到 CDN 的 DNS 服务器之一。这些服务器是全球负载均衡基础设施(GSLB)的一部分。GSLB 可提供负载均衡功能,从宏观角度衡量整个网络情况,并跟踪所有可用资源及其性能的信息。有了这些信息,GSLB 会使用性能最佳的边缘节点(通常在用户附近)解析 DNS 请求。
DNS解析完成后,用户向边缘节点发起请求。当边缘节点收到请求时,GSLB 服务器会帮助边缘服务器按照最佳路由将请求转发到初始服务器。然后,边缘服务器获取所请求的数据,将其传递给请求它的最终用户,并将该数据存储在本地。所有后续的用户请求都将从本地数据集处理,而无需再次查询源服务器。
CDN如何工作?
CDN主要做了两件事,一是让用户访问最近的节点,二是从缓存或者源站获取资源。
为了提高速度和连接性,CDN 会将服务器放置在不同网络之间的交换点。
这些互联网交换点(IXP)是不同互联网提供商进行连接的主要位置,以便彼此提供对不同网络流量的访问。通过连接到这些高速且互连的IXP,CDN 提供商可以减少高速数据传输中的成本和传输时间。
除了在 IXP 中放置服务器,CDN 还对标准客户端/服务器数据传输进行了诸多优化。
CDN 缓存
CDN 缓存是CDN正常工作的关键部分。CDN会将第一次交付给用户的文件副本存储起来,并重用于后续请求。在 CDN 中,边缘服务器是缓存数据的地方。
CDN 缓存大致按照以下步骤工作:
- 最终用户首次在网页上请求静态资产。
- 资产从源服务器检索,并在交付后存储在靠近最终用户的 PoP 边缘缓存服务器中。
- 当同一用户下一次请求相同的资产时,该请求不会被发送到源服务器。请求会从 PoP 服务器转到缓存文件,以查看存储的资产是否仍然可用并将它们交付给用户。如果它们不可用或缓存服务器尚未缓存资产,则再次将请求发送到源服务器。
一旦用户的静态资产缓存在特定位置的CDN 服务器上,所有后续网站访问者对静态资产的请求都将从这些边缘服务器传递,从而减少源负载并提高可扩展性。
CDN和游戏加速器有什么区别?
从效果上来看,无论是CDN还是游戏加速器,都是让网络访问变快,但从原理上它们还是有区别的。
游戏加速器是针对个人用户快速、安全连接服务器的一种服务。它使用的是 VPN(虚拟专用网络)技术,通过虚拟专用网络将电信加速到网通,或将网通加速到电信等等,为玩家提供优质的网络加速服务。
如上图所示,如果不使用加速器,用户是通过运营商直接访问游戏服务器,登录游戏加速器以后,玩家的网游数据转入游戏加速器专属传输网络中,这个网络是经过优化、只传网游数据,从而在用户和服务器之间建立了“绿色通道”,保障了数据传输的优先性与稳定性,能够有效解决游戏下载开启时存在的延时高、登录难、易掉线等问题。
CDN的本质上是将媒体资源等内容缓存到距离用户更近的服务器,从而让用户进行共享资源,实现缩减站点间的响应时间等需求,而网游加速器的本质则是通过建立高带宽机房,架设多节点服务器来为用户进行加速。
CDN和边缘计算有什么区别?
边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。边缘计算在本地对数据进行分类,将部分数据放在本地处理,从而减少了到中央存储库的回程流量,可以加快资料的处理与传送速度,减少延迟。
边缘计算和CDN的共同点就是要求传输能力,要尽可能接近数据产生的地方。CDN需要传输和存储大量内容数据,而边缘计算恰好可以提供存储服务,那么对于两者来说部署方式类似,都是接近网络边缘,带宽线路可以复用。
CDN与边缘计算的区别在于CDN概念中的边缘是借助缓存数据,提高节点传输数据的能力,侧重点在于传输能力。边缘计算实际上是利用靠近数据源的边缘地带来进行数据计算分类,边缘计算的侧重点在于计算能力。
CDN市场
CDN行业主要分为传统CDN服务商、云CDN服务商、电信运营商,此外还有视频企业自建CDN平台、创新型P2P等。
但目前,在各大云厂商和创新型专业CDN服务商的挤压下,传统CDN企业发展愈加艰难:
- 在过去的五年里,传统的 CDN 逐渐转向基于云的 CDN。
- 由于竞争激烈,供应商面临的定价压力越来越大。
- 随着服务提供商网络上数据使用量的迅速增加,大公司更愿意为消费者建立自己的CDN,而不是将其外包。
2019年,传统CDN巨头网宿市场占有率为28.4%,而阿里云以30.6%的市场占有率成为中国CDN市场第一大厂商。
国外CDN市场基本以Akamai、Amazon、Azure、CloudFlare以及Fastly等企业为主导。
谷歌此次推出的Media CDN也是想要增加其在CDN市场的竞争力。数据显示,在 CDN 服务市场上,谷歌还只是大池塘里的一条小鱼。
Gartner的高级研究主管Eric Schmitt表示:Media CDN将为谷歌大幅度加强它在流媒体视频和Web广告中的主导地位奠定基础。若这一预测成为现实,那 Media CDN 或将给迄今一直难以盈利的谷歌云部门提供有力的营收支撑。