云上基础产品之内容分发网络
摘要
内容分发网络(CDN,Content Delivery Network)是云上一个标准的产品,它用部分在各地的节点对源站进行加速,本文介绍 CDN 的基本概念,以及几家云的 CDN 产品。
CDN 的基本概念
CDN 是一个在云上出现很早的产品,也是一个比较基本的产品。它的基本原理是:云服务提供商的 CDN 节点分布于全国各地,可以靠近用户,因此可以对客户的源站进行加速。
CDN 对于一个基本互联网服务建设,并不是必需的,它带来的是成本、性能方面的优化。
CDN 几个基本概念是:
源站:用于加速的对象,可以是对象存储、动态网站;
缓存:用于暂存源站的内容,CDN 加速的原理是将源站内容放在 Cache 集群里面缓存
回源:当不能或者不需要缓存的时候,CDN 访问源站重拿内容
配置域名:代表用户访问的域名,通过域名和 DNS 可以找到就近的 CDN 节点;
CDN 虽然名叫内容分发网络,但是它本质上与存储类的产品更近,这是因为它属于一种通过 Cache 集群提高性能、降低成本的方式。
从云服务提供商的角度,CDN 不仅仅可以对本云的内容进行加速,对不同云的内容进行加速,其中的区别仅仅是源站设置的内容。
从客户的角度,CDN 可以对静态内容加速,也可以对动态内容加速(缓存影响时效性),也可以对全站进行加速。
在实际应用中,CDN 与静态内容、动态内容的关系是:
CDN 对静态内容加速理所当然,静态的站点本身可以完全都走 CDN,缓存时间也可以很长;
CDN 如果对动态内容进行加速,会牺牲一些时效性,与缓存时间设置有关;
CND 也常常不对动态内容进行加速,动态内容直接对外;
下面是华为云对于 CDN 的网站加速图,客户、终端用户、源站是 CDN 需要交互的三个方面,它本身相当于一个黑盒。
CDN 的使用场景
华为云的 CDN 场景
华为云的 CDN 场景已经比较全面,这里仅仅是应用的场景,但从中也可以看出 CDN 内部工作的细节。
https://www.huaweicloud.com/product/cdn.html
华为云的网站加速场景中,用户进行配置、Cache 集群与源站交互、用户与 CDN 对外的接口来进行交互。这里面的 CDN 是一个抽象的概念,实际上它是一个分布在各地的网络。
CDN 网站加速的对象,可以是一个静态的对象存储,也可以是动态的网站(以 LB 对外)。根据此处的描述,动态的内容默认是不缓存。
华为云的 CDN 点播加速场景,此处的源站本身一般就是在对象存储里面的东西。从实际的运行来看,如果此处没有 CDN 加速,直接用对象存储对外,不仅速度慢,而且成本也会高很多。使用了 CDN 之后,还可以的访问配置一些访问限制,用以完成版权控制类的工作。
金山云的 CDN 场景
金山云的 CDN 场景也比较基础,体现了 CDN 原本的运行原理。
https://www.ksyun.com/post/product/CDN.html
金山云的 KCDN 静态加速服务应用架构是一个只对静态内容进行加速的场景,此处的后端是对象存储,其实也就是代表了一个对象存储的后端。
金山云的 KCDN 直播加速服务应用架构是面对直播的架构,此处的源站是一个内容源的综合服务集群。
腾讯云的 CDN 场景
腾讯云的 CDN 场景也是分成了网站加速、下载加速、音视频加速三个场景。
https://cloud.tencent.com/product/cdn
腾讯云的 CDN 网站加速架构场景比较典型:CDN 对静态内容进行加速。
阿里云的 CDN 场景
阿里云的 CDN 也分成了几种典型的场景。
https://www.aliyun.com/product/cdn
阿里云的 CDN 网站站点加速场景强调了调度中心的优化,此处的源站和 CDN 内部的结构都得到了简化。调度中心是一个比较智能的环境,它对 CDN 提供的是控制的输入。
CDN 的计费方式
云上 CDN 产品的计费理比较简单,也就是考虑带宽、流量的因素,实际上流量是带宽在时间维度的积分,还需要考虑峰值的情况。
华为云的 CDN 的计费分成基础费用、增值服务费用两个部分。
金山云的 CDN 计费分成两种方式:流量计费、峰值带宽计费。
腾讯云的 CDN 计费分成两种方式:它本身也是分成带宽计费、流量计费两个方面。
下面是阿里云的计费,这里面的规则更加复杂一些,除了带宽峰值、流量模式之外,还有增值服务。
评论