CDN淺談

   好久沒有寫過文章了,文筆總結都有點生疏了,工作這麼長時間了,想想這一年好像沒啥成果,簡單寫寫我對CDN的一些瞭解吧,CDN大家可能都瞭解,有描述不當的地方大家多多包涵,多多提出批評意見,感謝理解。

   首先說說什麼是CDN,當然百度百科上也有,我就大概簡述一下而已,CDN(content delivery network)即內容分發式網絡,其基本的思想無異於加快網站訪問速度,規避網絡傳輸瓶頸環節,解決南北互聯互通問題和各isp之間的網絡傳輸問題等。

   1、我們爲什麼使用CDN?

   我們爲什麼使用CDN呢?是錢多沒地用嗎?當然不是,前面也說過CDN的基本思想,這裏展開贅述一下;

   (1)、首要的就是解決南北互聯互通問題

    大家都知道中國的互聯網現狀是什麼樣的,聯通、電信分庭抗禮,中間還有移動、鐵通、長城寬帶、教育網等小isp的摻和,這直接導致了幾方諸侯的廝殺攻伐,譬如公網鏈路之間跨運營商延遲高、丟包、網絡不通等問題,直接影響的是我們廣大的終端網民以及網站的體驗等;

   (2)、解決網站高流量、大併發時的部分問題

    我們都知道任何一臺物理設備的處理能力都是有限的,當網站突發的流量增大,併發增多時,很可能現有的基礎網絡架構支撐不住突發式的上量,直接導致網站無法打開,訪問速度變慢,影響用戶體驗。

    如果我們考慮增加過多的設備和帶寬來應對突發情況時,往往冗餘設備和帶寬在閒時處於閒置狀態造成資源的浪費,或者說突發流量過高,突發的帶寬費用遠遠大於使用CDN的價格了,這個時候就體現出CDN的好處了,即使偶爾突發性的上量,我們也不必要過於擔心,因爲我們的靜態文件等已經緩存到了CDN節點上,我們現有的架構能夠相對輕鬆的來完成突發情況下的動態數據請求處理,而突發的帶寬上漲也直接作用於了CDN上,我們網站出口帶寬相對來說也基本處於能夠支撐狀態;

   (3)、提升訪問速度

    使用CDN最重要的其中一點就是提升網站的訪問速度,試想當你打開一個網站花費了10秒鐘的時間時,你還想在次訪問嗎?可能10秒鐘還在忍受範圍內,假如說20秒呢?你等得及嗎?在試想你的網站打開速度慢,訪問速度慢,你的競爭對手網站無論打開速度還是訪問速度來看都要比你的體驗好,你認爲這種情況下你的網站流量還會一直保持不下嗎?

   CDN大家都知道會緩存內容,然後分發給終端網民,這樣終端網民無論從物理距離上還是跨運營商情況上來看都有了一個很好的解決方案,排除一些因素的干擾,理論上來說加速之後一定會比源站直接服務效果要好。

   (4)、提高網站的可用性

    使用CDN之後可以提高網站的整體可用性以及訪問效果,用戶體驗,靜態到CDN,這個時候源站服務器就會更加的輕載,節省更多的資源來處理其它非緩存的動態情況,減少磁盤、數據庫等I/O,當出現***時還可以阻擋一部分***產生的資源浪費,避免源站直接遭受影響,減小故障影響,這個相信大家都比較清楚,不需要多說,當然大量的ddos到來時CDN幫不幫你扛就是另一回事了,這個問題需要考慮的因素就更多了,不祥談。

   (5)、降低整體運營成本

    我們都知道一線城市的機房資源相對二線城市來說是比較貴的,尤其是BGP資源,基本在400左右M/月,網站訪問大的情況下,帶寬成本也是很高的,而自建CDN的話成本投入更高,一般企業也是沒有這個預算來做這事的,當然對於非互聯網類型的公司來說就更難了,這也是爲什麼淘寶、京東等電商類公司在有自建CDN的情況下還使用第三方CDN提供商來服務了,總體來看有效減少了運營成本,不需要選點、買帶寬、買服務器、請運維維護、招研發二次開發,總結來說就是省時省力省心。

   爲什麼使用CDN,基本上就是以上幾點了,當然扛***我就不拿來單獨說了,沒什麼意義,小量的***還好說,大量***比較嚴重的時候就不好說了...

   CDN適用的場合?

   直接說就是適用任何有需要的網站,不管互聯網還是非互聯網企業,只要有自己的網站,只要想加速,只要有需求,只要有預算,就都適用。

   CDN的組成部分?

   簡單的說就是CDN由終端網民、DNS、緩存服務器、源站幾部分組成,當然詳細的這裏就先不贅述了,以後有時間在分開來寫吧。

   常見的加速手段?

   1、網絡層面來看,構建自己的網絡架構,好比構建出來一個高架橋,用來解決互聯互通問題,譬如使用BGP、雙通節點、***隧道、物理直連線路等

   2、系統層面,優化內核參數,開發自己獨有的內核版本或者說定製化內核,修改tcp/ip算法,優化tcp/ip協議等

   3、應用層方面,二次開發DNS、squid、haproxy、nginx等,提高應用程序的性能,處理能力,緩存命中率,定製化需求,tcp的複用,連接池的使用等等。

   4、架構方面,這個就不多贅述了,架構上都是根據自身場景來設計的,常見的CDN架構簡單的就是上下層結構了,squid自身的集羣功能很少用,這種架構不用多說吧,想想就知道爲啥了。

   國內CDN廠商?

   這個相比了解CDN的都知道,國內廠商也就那麼幾家,藍汛、網宿、帝聯、快網等,總體來說CDN市場被藍汛和網宿各佔40%(當然這個數據我是沒有統計的,沒有權威性,只不過是從側面瞭解到的)吧,剩下的由其它CDN廠商瓜分了,隱隱感覺網宿有超過藍汛的趨勢...

   第三方即時監測?

   這個第三方監測的也不過就那麼幾家,大家可能多少也聽過,基調、博瑞、gomez、ip-label等。

   暫時就想到這麼多,等後面文章在談談其它的吧,我在想想寫點什麼,大家有啥問題想了解的也可以說出來,我儘量寫寫看。

   計劃後面寫寫CDN的原理啦,squid和http相關的文章之類的,感覺沒啥會的東西,一問三不知的,基本沒什麼好寫的,CDN詳細的內部架構我就不寫了,東西很少,大家可以瞭解下SDN,未來的CDN發展趨勢逐漸向移動終端開始轉移了,PC端發展了這麼多年基本技術都差不多了。

   先這樣吧~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章