1. 程式人生 > >也許是史上最全的一次CDN詳解

也許是史上最全的一次CDN詳解

CDN

全稱:Content Delivery Network或Content Ddistribute Network,即內容分發網路


<img src="https://pic2.zhimg.com/v2-5521af4d1343371f4e9dc58cbb8ee9d4_b.jpg" data-rawwidth="900" data-rawheight="600" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic2.zhimg.com/v2-5521af4d1343371f4e9dc58cbb8ee9d4_r.jpg">


基本思路

儘可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。通過在網路各處放置節點伺服器所構成的在現有的網際網路基礎之上的一層智慧虛擬網路,CDN系統能夠實時地根據網路流量和各節點的連線、負載狀況以及到使用者的距離和響應時間等綜合資訊將使用者的請求重新導向離使用者最近的服務節點上。


目的

解決因分佈、頻寬、伺服器效能帶來的訪問延遲問題,適用於站點加速、點播、直播等場景。使使用者可就近取得所需內容,解決 Internet網路擁擠的狀況,提高使用者訪問網站的響應速度和成功率。

控制時延無疑是現代資訊科技的重要指標,CDN的意圖就是儘可能的減少資源在轉發、傳輸、鏈路抖動等情況下順利保障資訊的連貫性。


優勢:

如果你在經營一家網站,那你應該知道幾點因素是你制勝的關鍵:

  1. 內容有吸引力
  2. 訪問速度快
  3. 支援頻繁的使用者互動
  4. 可以在各處瀏覽無障礙
<img src="https://pic3.zhimg.com/v2-9a48fbe074fde911d6cb38b5457c1204_b.jpg" data-rawwidth="640" data-rawheight="375" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic3.zhimg.com/v2-9a48fbe074fde911d6cb38b5457c1204_r.jpg">


另外:你的網站必須能在複雜的網路環境下執行,考慮到全球的使用者訪問體驗。你的網站也會隨著使用越來越多的物件(如圖片、幀、CSS及APIs)和形形色色的動作(分享、跟蹤)而系統逐漸龐大。所以,系統變慢帶來使用者的流失。

Google及其它網站的研究表明,一個網站每慢一秒鐘,就會丟失許多訪客,甚至這些訪客永遠不會再次光顧這些網站。可以想像,如果網站是你的盈利渠道或是品牌視窗,那麼網站速度慢將是一個致命的打擊。

這就是你使用CDN的第一個也是最重要的原因:加速網站的訪問

除此之外,CDN還有一些作用:

  • 1. 為了實現跨運營商、跨地域的全網覆蓋

互聯不互通、區域ISP地域侷限、出口頻寬受限制等種種因素都造成了網站的區域性無法訪問。CDN加速可以覆蓋全球的線路,通過和運營商合作,部署IDC資源,在全國骨幹節點商,合理部署CDN邊緣分發儲存節點,充分利用頻寬資源,平衡源站流量。

  • 2. 為了保障你的網站安全

CDN的負載均衡和分散式儲存技術,可以加強網站的可靠性,相當無無形中給你的網站添加了一把保護傘,應對絕大部分的網際網路攻擊事件。防攻擊系統也能避免網站遭到惡意攻擊。

  • 3. 為了異地備援

當某個伺服器發生意外故障時,系統將會呼叫其他臨近的健康伺服器節點進行服務,進而提供接近100%的可靠性,這就讓你的網站可以做到永不宕機。

  • 4. 為了節約成本投入

使用CDN加速可以實現網站的全國鋪設,你根據不用考慮購買伺服器與後續的託管運維,伺服器之間映象同步,也不用為了管理維護技術人員而煩惱,節省了人力、精力和財力。

  • 5. 為了讓你更專注業務本身

CDN加速廠商一般都會提供一站式服務,業務不僅限於CDN,還有配套的雲端儲存、大資料服務、視訊雲服務等,而且一般會提供7x24運維監控支援,保證網路隨時暢通,你可以放心使用。並且將更多的精力投入到發展自身的核心業務之上。

引入一個詞:控制時延

無疑是現代資訊科技的重要指標,CDN的意圖就是儘可能的減少資源在轉發、傳輸、鏈路抖動等情況下順利保障資訊的連貫性

根據論文《WAITING TIMES IN QUALITY OF EXPERIENCE FOR WEB BASED SERVICES》中提出的: 其指出基於人腦在等待不同時長的資訊時,產生的不同意識行為,進而對資訊獲取產生的差別感官體驗。

<img src="https://pic4.zhimg.com/v2-4742d592efff599944a987b74aad5fce_b.jpg" data-rawwidth="482" data-rawheight="300" class="origin_image zh-lightbox-thumb" width="482" data-original="https://pic4.zhimg.com/v2-4742d592efff599944a987b74aad5fce_r.jpg">


感知的持續時間 VS 客觀持續時間

根據研究發現:當人們獲得Voice這類聲音訊息時,好感度隨時間流逝下降的最為迅速,僅需16分鐘“評估意見等級”下降了70%,可見音像資源受緩衝時間的影響可見一斑

<img src="https://pic2.zhimg.com/v2-eef8ab6cda50ccd34af59322f8dc2909_b.jpg" data-rawwidth="600" data-rawheight="495" class="origin_image zh-lightbox-thumb" width="600" data-original="https://pic2.zhimg.com/v2-eef8ab6cda50ccd34af59322f8dc2909_r.jpg">


✫0.1 s: 使用者幾乎感覺不到系統是否不連貫性。

✫1.0 s: 使用者明顯注意到時延的發生,但是在該時間內思維依然是連貫的。

✫10 s: 超過該時間的時延會使使用者失去等待意願。 控制時延無疑是現代資訊科技的重要指標,CDN的意圖就是儘可能的減少資源在轉發、傳輸、鏈路抖動等情況下順利保障資訊的連貫性。

通俗點說就是在網速一定的前提下,CDN就像網路中快遞員小哥

<img src="https://pic3.zhimg.com/v2-b0133eed1c7b2fd40a98356737107086_b.gif" data-rawwidth="600" data-rawheight="424" data-thumbnail="https://pic3.zhimg.com/v2-b0133eed1c7b2fd40a98356737107086_b.jpg" class="origin_image zh-lightbox-thumb" width="600" data-original="https://pic3.zhimg.com/v2-b0133eed1c7b2fd40a98356737107086_r.jpg">




<img src="https://pic4.zhimg.com/v2-c15d6d3cd74dfef3d732b224998da823_b.jpg" data-rawwidth="600" data-rawheight="400" class="origin_image zh-lightbox-thumb" width="600" data-original="https://pic4.zhimg.com/v2-c15d6d3cd74dfef3d732b224998da823_r.jpg">


  • 而且CDN這個快遞員很是聰明 TA不是在用蠻力瞎跑、亂撞
  • TA還承建了很多家快遞點,就近快遞(快取)
  • TA善於優化快遞路徑(排程) 還會對包裹進行更合理的重新打包(協議優化)

無論使用者在世界任何角落,只要連線網路,CDN服務就如同把源站搬到使用者面前一樣,整個世界,觸手可及!

CDN就是扮演者護航者和加速者的角色,更快準狠的觸發資訊和觸達每一個使用者,帶來更為極致的使用體驗。

基礎架構:最簡單的CDN網路由一個DNS伺服器和幾臺快取伺服器組成:

  1. 當用戶點選網站頁面上的內容URL,經過本地DNS系統解析,DNS系統會最終將域名的解析權交給CNAME指向的CDN專用DNS伺服器。
  2. CDN的DNS伺服器將CDN的全域性負載均衡裝置IP地址返回使用者。
  3. 使用者向CDN的全域性負載均衡裝置發起內容URL訪問請求。
  4. CDN全域性負載均衡裝置根據使用者IP地址,以及使用者請求的內容URL,選擇一臺使用者所屬區域的區域負載均衡裝置,告訴使用者向這臺裝置發起請求。
  5. 區域負載均衡裝置會為使用者選擇一臺合適的快取伺服器提供服務,選擇的依據包括:根據使用者IP地址,判斷哪一臺伺服器距使用者最近;根據使用者所請求的URL中攜帶的內容名稱,判斷哪一臺伺服器上有使用者所需內容;查詢各個伺服器當前的負載情況,判斷哪一臺伺服器尚有服務能力。基於以上這些條件的綜合分析之後,區域負載均衡裝置會向全域性負載均衡裝置返回一臺快取伺服器的IP地址。
  6. 全域性負載均衡裝置把伺服器的IP地址返回給使用者。
  7. 使用者向快取伺服器發起請求,快取伺服器響應使用者請求,將使用者所需內容傳送到使用者終端。如果這臺快取伺服器上並沒有使用者想要的內容,而區域均衡裝置依然將它分配給了使用者,那麼這臺伺服器就要向它的上一級快取伺服器請求內容,直至追溯到網站的源伺服器將內容拉到本地。
<img src="https://pic3.zhimg.com/v2-5793aec83fc645e002a1cd70ab7209a3_b.jpg" data-rawwidth="600" data-rawheight="344" class="origin_image zh-lightbox-thumb" width="600" data-original="https://pic3.zhimg.com/v2-5793aec83fc645e002a1cd70ab7209a3_r.jpg">


服務模式:

簡單地說,CDN是一個經策略性部署的整體系統,包括分散式儲存、負載均衡、網路請求的重定向和內容管理4個要件,而內容管理和全域性的網路流量管理(Traffic Management)是CDN的核心所在。

通過使用者就近性和伺服器負載的判斷,CDN確保內容以一種極為高效的方式為使用者的請求提供服務。

舉例說明:

國內訪問量較高的網站、直播、視訊平臺,均使用CDN網路加速技術,雖然網站的訪問巨大,但無論在什麼地方訪問都會感覺速度很快。而一般的網站如果伺服器在網通,電信使用者訪問很慢,如果伺服器在電信,網通使用者訪問又很慢。

通過在現有的Internet中增加一層新的網路架構,將網站的內容釋出到最接近使用者的cache伺服器內,通過DNS負載均衡的技術,判斷使用者來源就近訪問cache伺服器取得所需的內容,解決Internet網路擁塞狀況,提高使用者訪問網站的響應速度,如同提供了多個分佈在各地的加速器,以達到快速、可冗餘的為多個網站加速的目的。

CDN服務最初用於確保快速可靠地分發靜態內容,這些內容可以快取,最適合在網速龐大的網路中儲存和分發,該網路在幾十多個國家的十幾個網路中的覆蓋CDN網路伺服器。由於動態內容必須通過網際網路來傳輸,因此要提供快速的網路體驗。如今的CDN可謂是大檔案、小檔案、點播、直播、動靜皆宜!


<img src="https://pic3.zhimg.com/v2-9b12ed731f01f8425c688bb13e0d913e_b.jpg" data-rawwidth="640" data-rawheight="427" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic3.zhimg.com/v2-9b12ed731f01f8425c688bb13e0d913e_r.jpg">


主要特點:

1、本地Cache加速,提高了企業站點(尤其含有大量圖片和靜態頁面站點)的訪問速度,並大大提高以上性質站點的穩定性

2、映象服務消除了不同運營商之間互聯的瓶頸造成的影響,實現了跨運營商的網路加速,保證不同網路中的使用者都能得到良好的訪問質量。

3、遠端加速 遠端訪問使用者根據DNS負載均衡技術 智慧自動選擇Cache伺服器,選擇最快的Cache伺服器,加快遠端訪問的速度

4、頻寬優化 自動生成伺服器的遠端Mirror(映象)cache伺服器,遠端使用者訪問時從cache伺服器上讀取資料,減少遠端訪問的頻寬、分擔網路流量、減輕原站點WEB伺服器負載等功能。

5、叢集抗攻擊 廣泛分佈的CDN節點加上節點之間的智慧冗餘機制,可以有效地預防黑客入侵以及降低各種D.D.o.S攻擊對網站的影響,同時保證較好的服務質量 。


關鍵技術:


<img src="https://pic4.zhimg.com/v2-eaf80abf6a52913375d2ade0dde79ed0_b.jpg" data-rawwidth="640" data-rawheight="467" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic4.zhimg.com/v2-eaf80abf6a52913375d2ade0dde79ed0_r.jpg">

內容釋出:它藉助於建立索引、快取、流分裂、組播(Multicast)等技術

內容路由:它是整體性的網路負載均衡技術,通過內容路由器中的重定向(DNS)機制,在多個遠端POP上均衡使用者的請求,以使使用者請求得到最近內容源的響應;

內容交換:它根據內容的可用性、伺服器的可用性以及使用者的背景,在POP的快取伺服器上,利用應用層交換、流分裂、重定向(ICP、WCCP)等技術,智慧地平衡負載流量;

效能管理:它通過內部和外部監控系統,獲取網路部件的狀況資訊,測量內容釋出的端到端效能(如包丟失、延時、平均頻寬、啟動時間、幀速率等),保證網路處於最佳的執行狀態。


適用範圍:

<img src="https://pic1.zhimg.com/v2-3cb264b4b37a79bdcd27afcbdf34b0e8_b.jpg" data-rawwidth="640" data-rawheight="269" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic1.zhimg.com/v2-3cb264b4b37a79bdcd27afcbdf34b0e8_r.jpg">

一般來說以資訊、內容等為主的網站,具有一定訪問體量的網站

例如資訊網站、政府機構網站、行業平臺網站、商城等以動態內容為主的網站

例如論壇、部落格、交友、SNS、網路遊戲、搜尋/查詢、金融等。提供http下載的網站

例如軟體開發商、內容服務提供商、網路遊戲執行商、原始碼下載等有大量流媒體點播應用的網站

例如:擁有視訊點播平臺的電信運營商、內容服務提供商、體育頻道、寬頻頻道、線上教育、視訊部落格等


Q & A

1.CDN加速是對網站所在伺服器加速,還是對其域名加速?

CDN是隻對網站的某一個具體的域名加速。如果同一個網站有多個域名,則訪客訪問加入CDN的域名獲得加速效果,訪問未加入CDN的域名,或者直接訪問IP地址,則無法獲得CDN效果。

2.CDN和映象站點比較有何優勢?  

CDN對網站的訪客完全透明,不需要訪客手動選擇要訪問的映象站點,保證了網站對訪客的友好性。  
CDN對每個節點都有可用性檢查,不合格的節點會第一時間剔出,從而保證了極高的可用率,而映象站點無法實現這一點。  
CDN部署簡單,對原站基本不做任何改動即可生效。

3.CDN和雙線機房相比有何優勢?

常見的雙線機房只能解決網通和電信互相訪問慢的問題,其它ISP(譬如教育網,移動網,鐵通)互通的問題還是沒得到解決。  
而CDN是訪問者就近取資料,而CDN的節點遍佈各ISP,從而保證了網站到任意ISP的訪問速度。另外CDN因為其流量分流到各節點的原理,天然獲得抵抗網路攻擊的能力。

4.CDN使用後,原來的網站是否需要做修改,做什麼修改?

一般而言,網站無需任何修改即可使用CDN獲得加速效果。只是對需要判斷訪客IP程式,才需要做少量修改。

5.為什麼我的網站更新後,通過CDN後看到網頁還是舊網頁,如何解決?  

由於CDN採用各節點快取的機制,網站的靜態網頁和圖片修改後,如果CDN快取沒有做相應更新,則看到的還是舊的網頁。
為了解決這個問題,CDN管理面板中提供了URL推送服務,來通知CDN各節點重新整理自己的快取。  
在URL推送位址列中,輸入具體的網址或者圖片地址,則各節點中的快取內容即被統一刪除,並且當即生效。  
如果需要推送的網址和圖片太多,可以選擇目錄推送,輸入 kkk.com/news 即可以對網站下news目錄下所有網頁和圖片進行了重新整理。

6.能不能讓CDN不快取某些即時性要求很高的網頁和圖片?

只需要使用動態頁面,asp,php,jsp等動態技術做成的頁面不被CDN快取,無需每次都要重新整理。或者採用一個網站兩個域名,一個啟用CDN,另外一個域名不用CDN,對即時性要求高的頁面和圖片放在不用CDN的域名下。

7.網站新增了不少網頁和圖片,這些需要使用URL推送嗎?  

後來增加的網頁和圖片,不需要使用URL推送,因為它們本來就不存在快取中。

8.網站用CDN後,有些地區反映無法訪問了,怎麼辦?

CDN啟用後,訪客不能訪問網站有很多種可能,可能是CDN的問題,也可能是源站點出現故障或者源站點被關閉,還可能是訪客自己所在的網路出現問題,甚至我們實際故障排除中,還出現過客戶自己計算機中毒,導致無法訪問網站。  
客戶報告故障時,可隨時聯絡我們24小時技術部進行處理。

9.哪些情況不適用於CDN?

<img src="https://pic1.zhimg.com/v2-3cb264b4b37a79bdcd27afcbdf34b0e8_b.jpg" data-rawwidth="640" data-rawheight="269" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic1.zhimg.com/v2-3cb264b4b37a79bdcd27afcbdf34b0e8_r.jpg">

備註:此類極端狀況不建議您使用CDN服務