為什么需要使用及如何使用CDN
當(dāng)今世界,對所有人而言,網(wǎng)站必須具有一切功能:網(wǎng)站必須有吸引力、速度快、有靈活性及可移動性,甚至必須要能夠不斷變化。此外,還必須支持頻繁的會話、支持各種瀏覽器、智能手機、平板電腦以及其它用戶可能會用到的設(shè)備。
網(wǎng)站必須能夠在復(fù)雜的網(wǎng)絡(luò)環(huán)境下運行,比如中國、亞洲、中東等網(wǎng)絡(luò)連接很差的區(qū)域或國家,這些地方不僅地理位置分散,距離遙遠(yuǎn)而且網(wǎng)絡(luò)多樣化。更不必說,對于移動站點或應(yīng)用程序而言,不僅有線連接如DSL或電纜線甚至無線連接如GPRS、EDGE、3G 及現(xiàn)在的LTE等,都必須有很高的連接性能,然而即使是這些提供連接服務(wù)的供應(yīng)商都可能不會有很好的網(wǎng)絡(luò)連接。
此外,站點使用越來越多的對象,如圖片、幀、CSS及APIs,比如AJAX,以及遠(yuǎn)程調(diào)用,比如從Facebook調(diào)用到Google,甚至使用各種各樣的共享、跟蹤及附加值系統(tǒng)等。
難怪,系統(tǒng)變得越來越慢,用戶只訪問能夠最快打開、性能最好的網(wǎng)站。Google及其它網(wǎng)站的研究表明,一個網(wǎng)站每慢一秒鐘,就會丟失許多訪客,甚至這些訪客永遠(yuǎn)不會再次光顧這些網(wǎng)站。
輸入CDN或是內(nèi)容分發(fā)網(wǎng)絡(luò),你就會搜索到國際公司如Akamai及Limelight,及中國公司如ChinaCache及ChinaNetCenter,他們可以幫助用戶提高網(wǎng)站瀏覽性能,如瀏覽互聯(lián)網(wǎng)站、網(wǎng)絡(luò)游戲網(wǎng)站及應(yīng)用程序。
CDN支持許多種服務(wù),最常用的服務(wù)有:
下載 – 下載服務(wù)是CDN提供的最簡單的服務(wù),通常是一些終端用戶,如網(wǎng)游用戶、軟件用戶、程序開發(fā)員及要下載大量文件的用戶會使用到。通過使用CDN,人們便無需使用高帶寬連接到昂貴的數(shù)據(jù)中心,并且通過CDN節(jié)點,這些文件會放到離終端用戶更近的地方。
靜態(tài)文件/圖片 – CDN最常用的用途是用來給終端用戶發(fā)布靜態(tài)文件,如圖片、java腳本、css文件等。通常這些類型的文件很少變更,即便有變更,也是少量的,所以,把文件發(fā)布并存放到離終端用戶比較近的地方會極大地提高網(wǎng)站速度,在地理位置分散或連接性能很差的地方,網(wǎng)站速度提高會顯得更加明顯。請注意,該服務(wù)僅僅用于處理靜態(tài)文件,如主要的網(wǎng)站頁面,所有動態(tài)內(nèi)容,都是由主網(wǎng)站服務(wù)器提供。這通常是分開處理的,通過不同的子域名進行處理,如images.mydomain.com,與www.是分開的。
WSA – 即整體網(wǎng)站加速,正變得越來越流行。從名稱便可知道,它是用來加速整個網(wǎng)站的,包括所有的靜態(tài)的東西及動態(tài)的東西,如網(wǎng)頁、購物車及推薦信息等。基本情況是,終端用戶只連接到CDN,CDN連接到網(wǎng)站,然后緩存所有的東西,CDN代表用戶向?qū)嶓w的網(wǎng)站后臺發(fā)送請求,獲取動態(tài)數(shù)據(jù)。
當(dāng)然,CDN只能改善一部分內(nèi)容的訪問速度,因為其它的內(nèi)容,如采購歷史、產(chǎn)品庫存等必須直接從后臺網(wǎng)站獲得。對于連接性很差的網(wǎng)絡(luò),如移動網(wǎng)絡(luò)以及復(fù)雜的難以將靜態(tài)內(nèi)容從靜態(tài)CDN分離出來的網(wǎng)站來說,WSA尤為好用。注意,為確保WSA成功,謹(jǐn)慎的配置及緩存控制頭信息是非常重要的,因為CDN需要知道要緩存哪些東西,以及哪些東西是要傳遞到后臺的。
流媒體內(nèi)容- 媒體類網(wǎng)站使用越來越多的流媒體內(nèi)容,如視頻,包括來自于其它網(wǎng)站(如Netflix、Hulu、或Youtube及中國的Tudou/Youku)的實際的電視節(jié)目、影片等。對于這些內(nèi)容而言,CDN提供特別的下載服務(wù),通常稱之為點播或Vod,可以處理并控制所有視頻,包括快進/后退視頻,可以訪問經(jīng)過授權(quán)的內(nèi)容,提供各種跟蹤服務(wù)等。對于這些服務(wù)而言,視頻通常是加載到CDN,并且通過特定的URL直接提供視頻。此外,一些CDN還提供現(xiàn)場流體內(nèi)容,如,體育或其它事件等實時播放,進行現(xiàn)場內(nèi)容直播。
其它- CDN有許多其它功能及服務(wù),以滿足特殊需求,如電商、預(yù)加載、網(wǎng)游、動態(tài)加速、安全及DRM控制等。此外,還提供特殊的滿足地理要求或網(wǎng)絡(luò)要求(如中國移動或CERNET)的特別服務(wù)。
CDN還有一個服務(wù)容易被人忽略,就是安全服務(wù)。例如,許多CDN可提供防DDoS攻擊服務(wù),由于它們比任何一個網(wǎng)站的帶寬都大,而且分散,所以能夠經(jīng)受住此類攻擊。此外,一些專門的CDN如,CloudFlare 及 AnQuanBao 也提供像防火墻一樣的應(yīng)用程序,如防止SQL注入攻擊、XSS攻擊及其它防攻擊手段以保護后臺站點。
另一個特別的主要服務(wù)就是“內(nèi)容感知”網(wǎng)絡(luò)服務(wù)。這是一種新新服務(wù),是通過CDN系統(tǒng)的更智能化管理的內(nèi)容,可以給不同用戶,如移動或DSL或辦公室用戶等提供不同的優(yōu)化過的內(nèi)容。它可以對內(nèi)容進行處理,以便提供給不同設(shè)備,也可以對內(nèi)容進行優(yōu)化,以便將最重要的內(nèi)容優(yōu)先下載下來,使用戶獲得最佳體驗。它們還會判斷在哪個地方存放哪些內(nèi)容,總之,該系統(tǒng)能夠使網(wǎng)站在復(fù)雜的互聯(lián)網(wǎng)環(huán)境下有良好的性能表現(xiàn)。
最后,有些CDN還提供全球服務(wù),幫助客戶開拓新區(qū)域或國際區(qū)域,如中國、拉美或國外其它地區(qū)。對于全球品牌而言,這種服務(wù)非常重要,對于想要獲得國際客戶的中國公司而言,這種服務(wù)也非常重要。這種全球或局部CDN幫助人們在無需數(shù)據(jù)中心及特別帶寬等情形下,便可獲得龐大的用戶群。
根據(jù)您的需求及站點架構(gòu),使用CDN是非常容易的。對于靜態(tài)/圖片CDN而言,關(guān)鍵的一點在于能夠?qū)㈧o態(tài)內(nèi)容或圖片分離到特定的域名,然后存放到同一服務(wù)器上不同的虛擬機上。
要想使用好CDN,最關(guān)鍵的一點還在于能夠有良好的緩存控制。這樣,CDN能夠知道緩存哪些對象以及要緩存多長時間。理想的情況是,像圖片這些東西基本很少發(fā)生變化,若有更新的話,應(yīng)該將文件名/URL更改掉并且HTML變更到指向新的對象。有時候,要進行這些更改并不容易,因為必須在源主機進行更新,這就要求短時間的(1個小時或1天)緩存這些東西,或者使這些在CDN緩存中失效。
對于任何網(wǎng)站而言,最好的做法也許是將兩種方法結(jié)合使用,也就是使用CDN來處理靜態(tài)HTML頁面,使用AJAX處理動態(tài)數(shù)據(jù)。這樣便可以從后臺系統(tǒng)提供服務(wù)數(shù)據(jù),給用戶快速提供動態(tài)數(shù)據(jù),使用戶有良好的體驗。
監(jiān)控 – 要想很好地跟蹤CDN的運行情況,就必須使用監(jiān)控工具,如Gomez、ip-label或Network Bench。它們可以幫助您監(jiān)控CDN的實際性能,這一點可以從不同的網(wǎng)絡(luò)及終端用戶的使用情況中得到證實。并且,這樣做有助于識別并發(fā)現(xiàn)問題,確保CDN服務(wù)能按照所期望的運作。
總之,幾乎每個人都應(yīng)該使用CDN,尤其是現(xiàn)在的世界生活節(jié)奏快、充滿活力、要求又很苛刻,所以人們更應(yīng)當(dāng)使用CDN。