天天看點

雲時代——面向使用者體驗的CDN

cdn源于上世紀末,主要目的是解決使用者的網絡問題,通過把内容分存在全球各地,縮短使用者檢視對象的延遲,提高使用者通路網站的響應速度與網站的可用性。但随着雲計算的快速興起,使用者需求越來越多,不僅需要網絡分發速度快,還需要計算資源、存儲資源、資料分析能力,以及音視訊編解碼、轉碼需求、以及圖檔視訊的鑒黃操作等,是以傳統模式并不能完全滿足現有的需求。當cdn和雲結合在一起,就可實作從content到cloud的變革,就可以為使用者包裝出功能更豐富、性能更好,而且成本更低的産品。由此我們相信,雲cdn将會占據更多的市場。使用者需要cdn,而不止于cdn,本文主要分享阿裡雲cdn如何做好使用者體驗。

經過十年技術沉澱、資源積累,阿裡雲cdn目前服務客戶數突破10萬之多,國内處于領先地位。在基礎設施方面,阿裡雲cdn擁有超過500個節點數,12tb的儲備量,400gb大節點,全萬兆網卡,骨幹網全覆寫,還有bgp網絡作為補充,行業内唯一一個使用ssd硬碟的cdn服務商,ssd的上下差距非常大,是以在i/o性能方面會比友商好得多;一周時間即可上線tb的帶寬資源,滿足使用者的突發帶寬需求,全球覆寫6大洲、30多個國家,滿足淘寶海外使用者的通路需求。

決定使用者體驗的核心因素為:響應快,下載下傳快,服務穩。下文會從三個次元依次介紹。

<b>系統的整體架構</b><b></b>

雲時代——面向使用者體驗的CDN

<b>圖</b><b>一</b><b> 系統整體架構圖</b>

整體架構主要有三個部分:一是排程系統,即自主研發的自動化排程系統;二是節點系統,分成面向使用者接入的l1cache和作為二級緩存的l2cache,當内容緩存在l1cache,則l1可以傳回,若l1cache沒有,則l2cache傳回,l2cache沒有,則使用者資料中心傳回,但絕大部分的流量都不會傳回到使用者資料中心;三是管理中心,包括監控系統,内容管理,配置管理和計費系統。其中,與使用者強相關的是節點系統,因為所有的請求都會通過節點系統響應;再一個是監控系統和排程系統,因為需要監控和排程來選擇離使用者最近的節點,讓使用者有更好的網絡品質,并在系統出現問題時,能夠更快的發現、診斷、做出切換及解決問題。

<b>響應時間</b><b></b>

首先就是響應時間,響應時間最關鍵的在于節點系統的響應快不快,整個節點系統的架構圖如下:

雲時代——面向使用者體驗的CDN

<b>圖二 節點系統架構圖</b>

節點系統中,lvs做4層負載均衡,tengine做7層負載均衡,swift做緩存伺服器。其中,lvs的創始人章文嵩博士就是淘寶cdn的創始人,對其非常了解;tengine是由阿裡雲cdn團隊維護的nginx開源分支,是中國用的最多的開源軟體之一;swift是由阿裡雲完全自主研發。是以,節點系統完全自主可控。重點介紹具有核心競争力的swift軟體架構。

雲時代——面向使用者體驗的CDN

<b>圖三 </b><b>swif</b><b>t軟體架構</b>

swift的軟體架構,即pass架構,有以下幾個特點,并行、異步、可擴充、簡單(parallel, asynchronous, scalability, simple),因為架構好,同時利用了各種高端技術,例如epoll、aio,以及我們自行設計的三級緩存的替換算法,請求内部的多路複用等。經測試,swift性能是開源軟體的2.5倍。

雲時代——面向使用者體驗的CDN

<b>圖四 性能比較</b>

以上是測試資料,針對實際使用者通路的線上資料,統計了所有的使用者請求,相同一台機器,swift的qps比開源軟體高,性能比開源軟體好,cpu和ioutil使用率比開源軟體低,能夠均衡使用cpu多核處理能力,高效合理地使用和控制記憶體,擁有最大化硬碟iops和吞吐。其中,使用者通路響應時間,一個請求大概在2毫秒左右(包括回源),是以實際不到1毫秒,是以響應時間幾乎完全無感覺。

雲時代——面向使用者體驗的CDN

<b>圖五 </b><b>t</b><b>engine毫秒級的響應時間</b>

<b>下載下傳速度</b><b></b>

其實,響應時間在業内差別僅為幾毫秒,最大的差別在于下載下傳。一個應用的下載下傳速度由三件事情決定,一是應用特性,例如網頁、視訊、無線app,是否有多路複用技術,應用并發多少個連接配接下載下傳等等。二是網絡品質,比如内網環境帶寬足夠大,不丢包,延時小,下載下傳速度一定快。跨營運商的網絡,時延大,丢包率高,性能肯定差;三是tcp優化,tcp優化是在相同網絡品質下,讓使用者的下載下傳速度更快;

要提升網絡品質,首先要知道目前的網絡品質是怎麼樣的,傳統的做法主要有三種,一個是用戶端監控,一個是對local dns的主動探測,還有一個是節點間互探;但是這些監控方式普遍存在的問題是監測的覆寫面不夠廣導緻資料的準确性和精度都不夠,這直接會影響我們的決策準确性和實時性;阿裡雲cdn搭建的一套基于業務的實時的網絡的品質監控系統,隻要使用者通路到節點,我們就可以知道每一個使用者通路節點的網絡品質,包括下載下傳時間、下載下傳速度、建連時間、丢包率和往返時延等等;據說所知,這應該是全球唯一一套能采集全量真實使用者通路的網絡品質的系統。

有了這份資料,我就可以知道,不同節點覆寫同一個地域的網絡品質是怎麼樣的,在此基礎上我們就可以知道,任何一個地區用哪些節點覆寫是最合适的,這樣我們就可以實作最優的節點覆寫;另外,基于某個地域的網絡品質和網絡服務品質曆史資料,我們就可以知道我們服務的目前情況怎麼樣,有沒有網絡抖動和異常, 我們内部稱之為基于趨勢的網絡抖動發現機制;

是以,隻要使用者能夠通路到我們的節點,相關的網絡問題都可以被及時調整和發現;對于那些使用者通路不可達的問題,我們有一套主動的網絡探測系統,通過海量使用者的通路和節點間的互探能夠快速發現不可達的情況, 進而實作整個網絡的品質優化的閉環。在網絡品質相同情況下,tcp協定決定了下載下傳速度,這是因為發送端的發送速度是和擁塞控制算法有關的,而下載下傳速度和擁塞視窗緊密相關,是以在相同網絡情況下,使用者通路并不完全一樣。

我們做tcp優化的思路主要是兩條,第一:把協定自身的性能做到極緻,尤其是在可靠傳輸機制這塊;第二,我們稱之為端到端的qos,就是要根據不同應用的qos要求為他定制針對性的擁塞控制算法,進而讓服務品質更好:

•基于時間序的丢包發現機制 

•主動的丢包發現機制 

•自适應的初始視窗 

•更激進的擁塞避免算法 

•更小的連接配接逾時時間  

tcp優化效果如圖所示:

雲時代——面向使用者體驗的CDN

<b>圖六 tcp優化效果對比</b>

阿裡雲cdn為每個域名定制相應算法,例如點播、直播、圖檔或大容量下載下傳。每個應用都有自己的服務品質的标準,比如說視訊業務,并不一定下載下傳速度達到10,20,幾百就是速度快,隻要比碼流速度快就可以了。以上是兩張線上資料,左圖淘寶圖檔,兩台機器在相同網絡下同時運作得到的資料,優化之後的評價時間能降到20%多;右圖是去年用戶端的資料,可以看到,藍色方框内的時間點突然下降,因為做了tcp優化。

<b>服務穩定</b> 

穩定的服務背後,最重要的是快速的發現和定位問題,并做出及時的動作,保證服務不受到影響;

傳統發現問題的方法是通過檢視機器使用率、io、cpu、磁盤等硬體判斷系統是否正常工作、通過軟體的相關名額判斷軟體是不是正常工作,通過抽樣的探測發現服務是不是異常;但是這些手段都不能保證我們能夠能夠及時的發現問題,比如說一個域名的某個url通路正常,不等于所有url通路都是ok的;那麼怎麼才能判斷我們的服務是正常的呢?實際上,服務品質是檢驗系統是否正常工作的唯一标準。現在阿裡雲cdn會采集所有使用者的通路情況,包括每個使用者下載下傳檔案所用時間,伺服器響應時間,http code,回源時間等等資訊;并實時的彙總成分鐘粒度的資料,這樣我們就可以的清楚了解每個節點、每個域名的服務品質,這樣我們就可以清晰的知道服務有沒有問題,

再通過自動化排程系統,從衆多資料中快速發現并解決問題,這是排程系統的架構圖如下:

雲時代——面向使用者體驗的CDN

<b>圖七 排程系統架構圖</b>

由此,可以保證快速感覺、發現并且自動化處理問題,進而保證給使用者穩定的服務。

下面為阿裡雲産品和高使用者體驗cdn整合在一起的方案,首先是視訊,依賴于視訊雲的轉碼,編解碼,鑒黃,存儲能力等;還有網絡上的高使用者體驗,包括軟體定義專線、上傳加速、tcp優化技術等,能夠做到流暢的98%,碼率比其他使用者低30%,成本降低了30%,使用者收看延時2秒,1秒時間打開并播放直播流。

雲時代——面向使用者體驗的CDN

<b>圖八 一站式視訊雲服務</b>

接下來阿裡雲即将推出來的動态加速,基于軟體定義專線、tcp協定棧優化、動态路由、私有協定等,網站加速比bgp網絡好40%。還會推出移動解決方案:基于手機淘寶做了大量的網絡的優化工作,包括sdk、多路複用、動态選路、速度探測、自動探測技術等。

本文根據阿裡雲cdn事業部專家劉泓昊(天瀾)在5月17日舉辦的2016雲栖大會·武漢峰會上《雲時代——面向使用者體驗的cdn》演講整理而成。

繼續閱讀