当今世界,对全部人而言,网站必须具备一切功能:网站必须有吸引力、速度快、有灵活性及可移动性,甚至必需要可以不断变化。此外,还必须支持频繁的会话、支持各类浏览器、智能手机、平板电脑以及其它用户可能会用到的设备。css
网站必须可以在复杂的网络环境下运行,好比中国、亚洲、中东等网络链接不好的区域或国家,这些地方不只地理位置分散,距离遥远并且网络多样化。更没必要说,对于移动站点或应用程序而言,不只有线链接如DSL或电缆线甚至无线链接如GPRS、EDGE、3G 及如今的LTE等,都必须有很高的链接性能,然而即便是这些提供链接服务的供应商均可能不会有很好的网络链接。java
此外,站点使用愈来愈多的对象,如图片、帧、CSS及APIs,好比AJAX,以及远程调用,好比从Facebook调用到Google,甚至使用各类各样的共享、跟踪及附加值系统等。
难怪,系统变得愈来愈慢,用户只访问可以最快打开、性能最好的网站。Google及其它网站的研究代表,一个网站每慢一秒钟,就会丢失许多访客,甚至这些访客永远不会再次光顾这些网站。浏览器
输入CDN或是内容分发网络,你就会搜索到国际公司如Akamai及Limelight,及中国公司如ChinaCache及ChinaNetCenter,他们能够帮助用户提升网站浏览性能,如浏览互联网站、网络游戏网站及应用程序。缓存
CDN支持许多种服务,最经常使用的服务有:安全
下载 – 下载服务是CDN提供的最简单的服务,一般是一些终端用户,如网游用户、软件用户、程序开发员及要下载大量文件的用户会使用到。经过使用CDN,人们便无需使用高带宽链接到昂贵的数据中心,而且经过CDN节点,这些文件会放到离终端用户更近的地方。
静态文件/图片 – CDN最经常使用的用途是用来给终端用户发布静态文件,如图片、java脚本、css文件等。一般这些类型的文件不多变动,即使有变动,也是少许的,因此,把文件发布并存放到离终端用户比较近的地方会极大地提升网站速度,在地理位置分散或链接性能不好的地方,网站速度提升会显得更加明显。请注意,该服务仅仅用于处理静态文件,如主要的网站页面,全部动态内容,都是由主网站服务器提供。这一般是分开处理的,经过不一样的子域名进行处理,如p_w_picpaths.mydomain.com,与www.是分开的。服务器
WSA – 即总体网站加速,正变得愈来愈流行。从名称即可知道,它是用来加速整个网站的,包括全部的静态的东西及动态的东西,如网页、购物车及推荐信息等。基本状况是,终端用户只链接到CDN,CDN链接到网站,而后缓存全部的东西,CDN表明用户向实体的网站后台发送请求,获取动态数据。
固然,CDN只能改善一部份内容的访问速度,由于其它的内容,如采购历史、产品库存等必须直接从后台网站得到。对于链接性不好的网络,如移动网络以及复杂的难以将静态内容从静态CDN分离出来的网站来讲,WSA尤其好用。注意,为确保WSA成功,谨慎的配置及缓存控制头信息是很是重要的,由于CDN须要知道要缓存哪些东西,以及哪些东西是要传递到后台的。网络
流媒体内容- 媒体类网站使用愈来愈多的流媒体内容,如视频,包括来自于其它网站(如Netflix、Hulu、或Youtube及中国的Tudou/Youku)的实际的电视节目、影片等。对于这些内容而言,CDN提供特别的下载服务,一般称之为点播或Vod,能够处理并控制全部视频,包括快进/后退视频,能够访问通过受权的内容,提供各类跟踪服务等。对于这些服务而言,视频一般是加载到CDN,而且经过特定的URL直接提供视频。此外,一些CDN还提供现场流体内容,如,体育或其它事件等实时播放,进行现场内容直播。
其它- CDN有许多其它功能及服务,以知足特殊需求,如电商、预加载、网游、动态加速、安全及DRM控制等。此外,还提供特殊的知足地理要求或网络要求(如中国移动或CERNET)的特别服务。架构
CDN还有一个服务容易被人忽略,就是安全服务。例如,许多CDN可提供防DDoS***服务,因为它们比任何一个网站的带宽都大,并且分散,因此可以经受住此类***。此外,一些专门的CDN如,CloudFlare 及 AnQuanBao 也提供像防火墙同样的应用程序,如防止SQL注入***、XSS***及其它防***手段以保护后台站点。
另外一个特别的主要服务就是“内容感知”网络服务。这是一种新新服务,是经过CDN系统的更智能化管理的内容,能够给不一样用户,如移动或DSL或办公室用户等提供不一样的优化过的内容。它能够对内容进行处理,以便提供给不一样设备,也能够对内容进行优化,以便将最重要的内容优先下载下来,使用户得到最佳体验。它们还会判断在哪一个地方存放哪些内容,总之,该系统可以使网站在复杂的互联网环境下有良好的性能表现。并发
最后,有些CDN还提供全球服务,帮助客户开拓新区域或国际区域,如中国、拉美或国外其它地区。对于全球品牌而言,这种服务很是重要,对于想要得到国际客户的中国公司而言,这种服务也很是重要。这种全球或局部CDN帮助人们在无需数据中心及特别带宽等情形下,即可得到庞大的用户群。
根据您的需求及站点架构,使用CDN是很是容易的。对于静态/图片CDN而言,关键的一点在于可以将静态内容或图片分离到特定的域名,而后存放到同一服务器上不一样的虚拟机上。
要想使用好CDN,最关键的一点还在于可以有良好的缓存控制。这样,CDN可以知道缓存哪些对象以及要缓存多长时间。理想的状况是,像图片这些东西基本不多发生变化,如有更新的话,应该将文件名/URL更改掉而且HTML变动到指向新的对象。有时候,要进行这些更改并不容易,由于必须在源主机进行更新,这就要求短期的(1个小时或1天)缓存这些东西,或者使这些在CDN缓存中失效。dom
对于任何网站而言,最好的作法也许是将两种方法结合使用,也就是使用CDN来处理静态HTML页面,使用AJAX处理动态数据。这样即可以从后台系统提供服务数据,给用户快速提供动态数据,使用户有良好的体验。
监控 – 要想很好地跟踪CDN的运行状况,就必须使用监控工具,如Gomez、ip-label或Network Bench。它们能够帮助您监控CDN的实际性能,这一点能够从不一样的网络及终端用户的使用状况中获得证明。而且,这样作有助于识别并发现问题,确保CDN服务能按照所指望的运做。
总之,几乎每一个人都应该使用CDN,尤为是如今的世界生活节奏快、充满活力、要求又很苛刻,因此人们更应当使用CDN。
(Authored by Steve Mushero | ChinaNetCloud CEO & CTO 本博客英文原文请点击查看)