聊點硬核的-CDN對我的網路店頭有甚麼幫助?(上)
前言
想必您一定有轉車的經驗,想像一下這樣的轉乘情境,『您騎著自行車到了捷運站,搭上捷運到了火車站,在火車上坐了兩個小時後,搭上當地的客運遊覽車,半小時到站後招了台計程車,總算在一番波折後到達目的地了。』或許是為了與親人團聚、或許是親訪名勝美景,啟程的理由有很多,但目的地永遠只有一個;這是現實世界的鐵則,畢竟,你總不能把整顆阿里山神木搬到你家巷口吧。
在傳統的主從式架構中,資料內容的傳遞,就好比我們在現實世界中轉乘經驗;想像一下身處台灣的您,正透過瀏覽器存取著位於美國西岸網站中的內容,得先從你的房間到社區網路,轉到台灣的ISP機房,轉接至海底電纜開始跨境,天知道中間經過了多少交換機的跳接,才轉到美國西岸的伺服器機房。
但在網路世界中複製『內容的副本』,卻是完全可行,甚至儲存副本所需要的伺服器的空間成本,更遠低於傳輸同一份原始內容。於是乎,複製『內容的副本』讓世界各地的使用者能就近存取,這樣的概念便出現了;尤其隨著傳輸技術的進化,使用者們的耐性也越來愈低了,快-成了有心開拓電商通路的企業,共同追求的標準。
整個概念就圍著一個字-快
CDN全名Content Delivery Network,中文大多譯為『內容傳遞網路』;從上面的例子可以很容易地理解,整個概念就一個『快』字,所有的解決方案都圍繞著一個核心問題:『如何更快地把內容傳遞到網站另一頭的使用者電腦上』。
在以往的主從式架構中,網站管理者為了優化處理效能,當然可能啟用多個伺服器實體,以處理不同的需求,在電商這個題目中,極可能是將金流支付的同步/使用者下單/物流貨態追蹤…等日常作業,分為不同的伺服器群組執行運作,但即便是用分組的伺服器來優化效能,在地理上,這些伺服器多位於相同的機房;因此,當你的客戶來自地球上的另一端的時候,仍然無法避免上述例子的狀況。
於是乎:『何不在世界各地,建立網站的副本呢?』這樣的想法就產生了,其實概念十分簡單,我們甚至能用銀行總行與櫃員機的關係來理解CDN中根源伺服器與節點伺服器的關係。
問題來了:『一個網站上的內容,有哪些是可以被建立副本的?』這可多了去了:
- 字型檔案(尤其是在中文網站中為了美化視覺,被大量的使用,而且檔案通常還大的很)
- 瀏覽器端的程式腳本(最具代表性的就是java script這類的程式碼)
- 所有你看得到的圖片、音樂、影片等多媒體檔案
- 大量被傳遞的資料、表格等等
這些都是我們所謂的『內容』,在不同的業態領域中,只要牽扯到大量的資料交換,我們都能稱之為『內容』,甚至遊戲產業中常見的更新檔都能算是其中之一。
假設您的網站的閱眾/顧客來自世界各地,而我們能將網站的內容,在全球各地建立副本,依照客戶的所在地,找個最靠近的伺服器派送過去,如此透過CDN的來傳遞內容便能很大幅度地降低內容傳遞的時間。
有哪些優勢與評估點?
既然建立了這樣的網絡模型,用以傳輸大量的內容,對於網站業者來說有那些好處呢?
-
提升總乘載量
主從架構下,即便伺服器CPU提供10Gbps的運算能力,如果頻寬只能乘載100Mbps的流量,僅能提供50名在線人數(Concurrent users)正常運作,多出來的CPU運算能力也是浪費,假若我們透過CDN增加了100個節點伺服器,讓節點伺服器承擔較為大量的資料傳遞工作,而根源伺服器處理主要的運算(如訂單狀態的更新等),如此便能大幅提高同時在線人數,雖不見得是等比例上升,但對於系統整體同時可服務的客戶數量來說,可說是大幅度的提升了。
-
降低封包遺失率
我們都知道雞蛋不要放在同一個籃子的道理,在網路傳輸的過程中,交換機/線路/無線基地台等等,這些都是有可能出現封包遺漏的;但當我們將內容分散各地,建立副本的同時,即便其中一個節點伺服器出了問題,仍能就近從附近的伺服器調動資料副本,不再是主從架構下的單線傳輸,大大的降低了封包遺失的可能性,這個特性尤其是影片類服務的評估重點,畢竟串流影音的傳輸過程中,來個連線中斷,對任何使用者來說都是十分掃興的經驗。
-
快取與異地備援
既然建立了內容副本,接下來當然要評估如何儲存與做好版本管理,目前市面上較主流的CDN服務供應商,通常都各自有一套為內容建立快取以及版本控制的絕學,當然這是各有千秋,更深入的技術細節暫不在此文中比較,但對採用CDN服務的網站業主來說,除了快是第一要務之外,緊接著要考慮的便是保護資料與傳輸的安全性了。
目前市面上提供CDN服務的業者,大多是在該領域的龍頭型企業,如Amazon/阿里巴巴等,當我們更進一步比較各家長短時,我們有什麼參考的評估點呢?
-
節點數量多寡
看到這兒,相信聰明的您也看出來了,CDN是否能有效改善傳輸速度,很大一部分取決於節點的數量;這個數量基本上取決於需求範圍,以及各個服務供應商的硬體建置工程,而一般來說,服務範圍遍佈全球的電商業者,節點的數量甚至會來到5~6位數之譜。
另外值得一提的是,由於P2P技術的普及應用,為了極大化節點數量,甚至出現了將終端使用者也當作節點的網絡模型,舉個例子:像是線上遊戲的大型改版過程,更新檔案動輒10G以上,為了加速這樣的過程,你下載的內容,往往是從其他玩家電腦裡挖出來的;更進一步還衍生了新的商業模式,部分龍頭業者甚至提供獎勵給終端使用者,讓他們自願成為節點的一員,例如百度/阿里巴巴等,以累積點數的模式吸引並擴大節點的數量,看到這,是不是發現跟比特幣的挖礦模型有些雷同呢?
-
是否能依照應用情境動態調整
您一定對於影片分享平台的廣告有印象,觀賞正片之前的廣告實在是個揪心的過程,回想一下,我們遇過影片內容卡頓的狀況,但好像從來沒看過廣告卡頓的現象;畢竟對於分享平台來說,廣告主可是衣食父母,得罪不起,確保廣告被另一雙眼睛看到,可說是首要之務,這便是所謂的依照應用情境調整。
同樣都是影片內容,快取的機制不同,被分配的頻寬也不同,甚至連伺服器處理任務的優先順序也可以是不同的;在網路世界中的萬千服務型態,這只是其中一種情境,當然在您評估的過程中,還有更多的可能性,端看您的需求是否能被清楚的定義,而服務提供商能否支援了。
結語
相信本文已經讓您了解到CDN的運作原理與優勢了,假若讀者對於瀏覽器運作稍有了解,一定知道快取的概念,這項技術很大程度上能優化閱眾的等待時間;畢竟,網路傳遞再怎麼快,還是得透過線路傳輸;而快取的機制能為讓終端使用者直接跳過傳輸的過程,直接取用儲存於電腦/手機中的內容,讓人不禁想問:『我還需要這項技術來加持我的電商網站嗎?』。
請容我們賣個關子,下一篇,我們將回到電商這個題目上,聊聊身為一個電商業者在甚麼樣的業態下,可以讓CDN發揮最大的效益。
如果有您有更多疑問可以詢問我們,未來會撰寫更多電商網站相關文章,您想知道什麼嗎?歡迎在下方留言給我們。或追蹤我們的粉絲專頁,就不錯過最新文章喔!
-
內文屬性
心-★☆☆☆☆
作為心靈雞湯或強化動機的成分
技-★★☆☆☆
作為實務操作或技術支援的成分
體-★★★☆☆
內容知識深淺或閱讀艱澀的程度
相關文章:
在WordPress W3設定Amazon Cloudfront CDN快取,加快網站速度!
相關資料來源
- [WiKipedia] -Content Delivery Network
我要留言