當今世界,對全部人而言,網站必須具備一切功能:網站必須有吸引力、速度快、有靈活性及可移動性,甚至必需要可以不斷變化。此外,還必須支持頻繁的會話、支持各類瀏覽器、智能手機、平板電腦以及其它用戶可能會用到的設備。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 本博客英文原文請點擊查看)