一分钟看懂CDN和对象存储之间的关系

米扑博客、米扑科技的其它产品,通常会将对象存储与CDN配合使用,为什么对象存储要和CDN配合使用呢,CDN和对象存储有什么关系?

对象存储的核心是存储,以及计算能力(图片处理),CDN的核心是分发,起到加速的作用,其本身不会给用户提供直接操作存储的入口,所以一般是两者配合使用。

现在小编为大家具体介绍一下对象存储和CDN和它们之间的关系。

 

对象存储:鱼与熊掌兼得的存储方式

对象存储将数据通道(需要访问的数据)和控制通路(元数据,即索引)分离,先根据索引(也就是元数据)找到数据存储的位置,进而通过底层的存储接口来访问数据。

通过这种方式,对象存储既有类似块存储的存取性能,也有类似文件存储的共享便利,可谓是鱼与熊掌兼得的存储方式。

对象存储主要用来存储图片、音频、视频等非结构化数据。

 

CDN:让数据离用户更近一点

CDN(Content Delivery Network)是内容分发网络,基本思路就是在网络各处部署服务节点,系统实时地根据网络流量、负载状况、服务节点到用户的响应时间等信息,自动将用户请求到导向离用户最近的节点上。

目的就是让用户就近取得数据,提高响应速度。

CDN节点解决了跨运营商和跨地域访问

 

CDN的关键技术

(1) 内容发布:借助于索引、缓存、流分裂、组播等技术,将内容发布或投递到距离用户最近的服务节点;

(2) 内容路由:整体性的网络负载均衡技术,通过内容路由器中的重定向机制,在多个服务节点上均衡用户的请求;

(3) 内容交换:根据内容、服务节点以及用户的信息,利用应用层交换、流分裂等技术,智能地平衡负载流量;

(4) 性能管理:通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能。

CDN本质上是一个分布式缓存系统,每个服务节点上都缓存了源站的一部分数据,也就是用户最近经常访问的数据。这样大部分用户请求其实都是在CDN边缘节点上完成,并没有达到源站,这样减少了响应时间,也减轻了源站的负担,可以实现高流量、大并发的网站访问。

CDN对动态资源是无效的,主要适合对静态资源的访问加速。比如一些网页内容需要数据查询才能获得,而每次要获得查询结果都要经过数据库的操作,再经过Web应用服务器的一些逻辑处理才能得到,这样就没法用CDN来加速。因为每次请求的数据都不一样,缓存过去访问过的数据没有意义。

随着点播、直播等视频类应用的红火,CDN又迎来了一个新的增长点。直播平台都需要CDN来加速视频播放,可以说直播提高了CDN服务商和网络主播的收入。

我们知道,对象存储里面存的就是一些图片、视频、文件等等,都是静态数据,正好适合用CDN做加速。我们要做的就是购买CDN服务,并把我们的静态数据URL添加到CDN的加速域名列表中。

CDN主要应用于站点加速,提高网站中静态数据的访问性能,比如图片、音频、视频、静态HTML网页等。网站静态数据以前一般是用文件存储的形式保存,现在则主要用对象存储。

以图片存储为例,简单说,对象存储是存图片的(很多时候也可以剪切、缩放、水印照片等),CDN是加速下载图片的

对象存储+CDN,已经成为互联网应用的一个必不可少的组成部分。

 

 

云存储和CDN的区别

云存储和CDN并不是谁取代谁的关系:

CDN(内容分发),关注于把内容放在离用户近的地方,让用户访问得更快一点,它只是一层内容的缓存,不保证永远存在CDN的服务器上,有可能会被更热的内容替换出去,下次再有访问时,需要回源站取;

云存储是在线存储,关注于数据的安全性和可随时存取,它保证数据有多份copy,能让随时随地通过网络存取,虽然有的云存储有一定的CDN特性,比如会存在于几个IDC,但它做不到象CDN那样分布广泛。

云存储强调存储,它会把网站上的图片等静态资源,或者APP的安装包等文件存放到服务商的云存储平台上,用户访问的时候再从服务商的云存储平台上去获取资源即可,它不包含云分发。

CDN包含两部分一部分是缓存(Cache)一部分是分发(Delivery)用户访问资源时是从就近的相同网络的缓存服务器上获取资源的。 作为一个业内人士我不能单纯的就说CDN比云存储好,或者云存储就比CDN好,这都不客观,其实是各有千秋,云存储对于小文件的加速还是比较有优势点,大文件的话出问题的概率就大了,谁比谁好还是要依据具体情况而定,通过测试的效果来说明问题,但是依据我的经验而言CDN的加速效果总体要比云存储好

 

一、CDN的应用场景

腾讯云CDN高级产品经理王琰介绍,腾讯云的CDN2.0目前主要涵盖以下五个应用场景:

网站静态文件加速:主要包括图片、CSS、JS等静态文件的加速,利用覆盖海内外的400多家自荐加速节点以及海外专线回源即可实现,提供源站存储和托管。(目前主要业务:泰康人寿、腾讯网)

全站加速:静态加速与动态加速结合,业务0改动地全面加速整个网站的访问速度,这有赖于智能路由调度。(目前主要业务:58同城、大众点评、QQ空间、朋友网)

下载服务:大文件下载,如游戏安装包和素材,APK更新等。(目前主要业务:刷机大师、应用宝、腾讯游戏)

图片服务:主要是针对UGC类社交图片应用场景,应用了裁剪、美化、人脸识别、压缩、多档尺寸和webp格式技术。(目前主要业务:魅族、天天P图、QQ空间相册)

流媒体:针对视频点播、视频直播、音视频通信、安防监控等内容,通过存储+转码的方式,放到CSDN边缘节点。(目前主要业务:CNTV、腾讯视频、QQ/微信语音通话)

 

二、云计算和CDN业务整合

云计算和CDN的三种发展趋势:1、云被CDN加速;2、CDN被云化;3、CDN被云融合

未来的网络的发展趋势:所有的存储、分发、加速、路由、处理都统一在“云计算+SDN(软件定义网络)”的架构中

业务整合:

1、调度系统的整合

将云计算整体业务资源调度系统和CDN的调度系统进行整合,将云计算的存储、网络、计算等资源向CDN边缘节点进行延伸,同时将CDN边缘节点的存储、网络和资源资源也纳入到整个云计算系统的调度范畴,实行全局资源规划调度和具体资源的本地调度相结合的调度策略,一方面不增加云计算调度系统的压力,而另外一方面在整个互联网域内进行资源调度的优化。

2、网络IO的优化和QoS保证

我们知道互联网是没有QOS保障的,一旦把CDN纳入整个云体系中,网络IO就会经过互联网。与原有的云计算中心网络是完全可控的内网不同,互联网是开放的,在这种开放的网络体现中如何保障传输的质量这是整合CDN时候需要考虑的问题。目前出现的SDN的概念其实就在试图解决这个问题,但是SDN的部署是需要时间和成本投入的,特别是对于原有网络投资保护的角度,如何能够用一种过度的方案解决这个问题就成为SDN发展的关键。目前业内通用的看法是用重叠网的概念来解决这个过度性问题。

3、网络功能虚拟化

如果要把整个CDN体现纳入到云体系中,需要解决的一个问题是对CDN进行云化,云化的目的除了解决资源调度粒度的问题,最大的问题是解决资源共享和业务灵活性的问题。为了满足各种不同业务的介入,CDN对于直接服务用户的边缘节点势必要能够灵活进行功能配置,而这种灵活的功能配置的速度肯定不能依赖投入打量的硬件成本,必须能够基于硬件资源共享的前提进行软件层面的配置,这要求将原有依赖特定硬件的功能进行完全软件话,但是还不能过多的降低系统的性能。目前业内有多种实现网络功能虚拟化的方案,那么最容易想到的就是采用云主机的方式,但是云主机因为要承担负载的计算和任务,因此整体管理的开销过大,不适合于这种进行简单高效处理的边缘网络功能;而另外一种建议是采用LXC(linux Containers),即linux容器的概念,目前中技术还有待在实践中检验其有效性。

4、商业模式的整合

目前云计算和CDN的计费都是单独进行的,一个基于硬件资源的使用来计费,而另外一个则基于流量进行计费,如果整合后还进行单独计费一方面会增加管理成本,另外一方面会降低用户体验。如何找到一种进行统一计量的模式可能还有待实践去检验。

 

 

参考推荐

备份本地文件上传到七牛云存储

备份本地文件上传到腾讯云对象存储

WordPress:采用七牛云CDN免费加速

国内免费云存储厂商对比