從起步到爆發,UPYUN云CDN架構演進之路

jopen 9年前發布 | 19K 次閱讀 架構
 

云CDN,是一種依托強大云計算平臺而構建的先進的流量分配網絡,可有效解決 Internet網絡擁擠的狀況,提高用戶訪問網站等應用服務的響應速度,使內容傳輸的更快速更穩定,同時提高服務可用性,并改善互聯網上的服務質量。如 今,CDN已經成為目前構成互聯網基礎的環節之一。移動互聯網也讓它的角色變得更為重要。它所帶來的加速效果,在今天以速度構成的用戶體驗中,可以說直接 影響著企業的用戶認同度,速度慢則會導致用戶的流失。而在對UPYUN(又拍云)來說,CDN能做的遠不止加速這么簡單。CDN與云的結合使得CDN能夠 提供更加豐富的服務,它為企業帶來的功能也更具價值,UPYUN把這種全新的服務定義為新一代的CDN加速服務。

2010年之前,中國移動的網絡基礎設施還未大規模興起,中國聯通和中國電信的節點基本上可以覆蓋到全國的用戶,區區的60個節點基本上就可以做 到全國覆蓋了。從2010年開始,中國移動的網絡基礎設施開始實現大規模覆蓋,用戶數量有了大規模的增長,因此網絡加速需求開始呈現逐年旺盛的態勢。然而 傳統的CDN服務2000年誕生開始,直到2010年,技術并沒有得到很大的提升。由于當時CDN服務無法滿足UPYUN大部分的工作需求,因此 UPYUN開始思考并著手構建自己的云CDN服務。在2015年之前,UPYUN對外宣稱的品牌形象始終停留在提供“存儲”服務的階段,一直到2015 年,UPYUN才將自己對外的品牌形象設為“云服務”,其主打產品為“云CDN”服務。UPYUN的云CDN系統早在2010年就開始研發,一直到 2015年,總共經歷了4年的研發周期。在這四年期間,基本上每年都會有一次技術上的迭代。

2010年,起步階段:

2010年,UPYUN的云CDN節點數量只有35個,處于剛剛起步的階段,基本和業內持平。前端的邊緣節點使用LVS來進行負載均衡,下面每一 個節點布設5-10臺服務器,服務器應用系統采用Nginx和ATS系統。由于對于一個CDN系統來說,無法避免的兩個功能是流量統計和內容規則的推送與 配置,因此早在2010年開始UPYUN就針對Nginx系統進行了大量的設計開發:使用C Modules去做業務功能的插入。

從起步到爆發,UPYUN云CDN架構演進之路

圖1.2010年,UPYUN云CDN架構(源自UPYUN 黃慧攀)

從整體架構的角度來看,從2010年起,UPYUN就開始使用三層架構:

1. 邊緣層,包括40個節點左右。

2. 中轉層,包括4個節點。中轉層不僅使得前端用戶在回源時便于尋找更優的路線到達源站進行內容的拉取;同時還便于合并節點與路線,無需每個邊緣節點都直接回歸源站,從而避免源站的帶寬堵塞;并且隨著節點規模增大,中轉節點可幫助源站分擔壓力,利于源站壓力的縮減。

3. 數據中心層,該層使用Nginx和ATS應用系統,并向下連接UPYUN云存儲系統。因此,整個的數據緩存有三層:數據中心緩存,中轉層緩存以及邊緣層緩存。

2013年,基礎建設階段:

2013年,UPYUN由原來的C Modules改為使用Lua來開發業務模塊,并在系統中引入Redis集群來開發整個公網的Push推送規則,所有的用戶規則配置都集中在用戶中心里 面,并通過Redis將所有規則推送至邊緣層,邊緣層的每個節點只需到Redis中心獲取域名的訪問規則即可,無需通過Nginx與數據中心進行任何交 互。

從起步到爆發,UPYUN云CDN架構演進之路

圖2.2013年,UPYUN云CDN架構(源自UPYUN 黃慧攀)

2013年,UPYUN的主要工作都放在了原有的系統完全改進:即用Lua Modules去改寫整個C Modules。這件事成功地使得UPYUN面對大量客戶化定制需求時,能將原有一個月的開發調試周期縮短為只有一周,系統部署也變得簡單靈活了。

2013年,UPYUN不僅在軟件方面有一個大的飛躍,在硬件方面也由原有的40個邊緣節點增加為60個節點,中轉節點也由原有的4個增加為8個,數據中心由原有的1個變為了2個。

2014年,爆發階段:

2014年對于UPYUN來說是業務大規模拓展與增強的一年。其中主要增強的是整個系統中的中轉節點這一層。由于在第一代云CDN系統和第二代云 CDN系統中,所需面對的只有云存儲系統一個,但在2014年,UPYUN開始嘗試向外延更更多的云CDN服務,這勢必需要連接到客戶的源上,并進一步連 接到原系統的Lua上去,所以UPYUN研發團隊在中轉層中多添加了一層”Nginx + Lua Modules”邏輯控制,這樣做的目的主要是為了判斷其域名對應的是客戶的源還是UPYUN的數據中心。當然在其中還會涉及很多功能細節:例如多源站可 以支持熱備、云群負載以及多個線路的優化等功能。其中多線路優化是指支持判斷不同的邊緣節點以及所連接的中轉節點之間究竟是什么線路,客戶源站是什么類型 的運營商(電信、聯通還是移動),甚至可以將客戶源站配置為海外源站。總而言之,UPYUN會根據客戶源站的情況進行特殊路由的設置,只需用戶進行自主選 擇即可,該功能將于2015年12月對外發布。

從起步到爆發,UPYUN云CDN架構演進之路

圖3.2014年,UPYUN云CDN架構(源自UPYUN 黃慧攀)

2014年也是UPYUN的云CDN在基礎設施上爆發的年份。截止于2014年,云CDN的邊緣節點達到了130個,中轉節點達到了16個,這130個邊緣節點所能夠提供的帶寬能夠達到1T,即物理服務器的網絡處理能力可以達到1T的帶寬。

2015 年,國際化推進階段:

2015年,整個UPYUN云CDN的基礎研發已經達到了穩定成熟的狀態,并逐步開始進行國際化推進。一方面,UPYUN公司將工作重心放在了大 客戶的定制開發和客戶對接的工作上來;另一方面, UPYUN正式開始為國際網絡加速進行鋪設。首先第一站就打通了從香港到浙江的光纖鏈路,并成功地針對中國內地的客戶進行網絡加速。例如在2015年11 月由UPYUN承辦的兩場香港演唱會的大陸直播網絡加速服務,首先需要考慮的就是如何把香港的內容快速地推送到內地,目前可以做到僅僅30毫秒的延遲就能 將香港的內容推送到浙江的用戶源站。

從起步到爆發,UPYUN云CDN架構演進之路

圖4 .2015 年,UPYUN云CDN架構(源自UPYUN 黃慧攀)

隨著香港的光纖鏈路的成功建立,接下來UPYUN又著手建立歐美的核心節點,一個節點位于美國的洛杉磯,另一個位于法國,這三個國際節點的落地基 本形成了UPYUN云CDN的國際加速骨干網絡。與此同時,UPYUN還準備于2016年在三個國際節點的基礎上完成節點星形網絡的擴張。迄今為止臺灣和 新加坡節點建設均已取得不小的進展,而這兩個地區正是以香港核心節點為基礎的;美國也鋪設了3個邊緣節點,這3個邊緣節點將首先通過美國骨干節點,再與中 國大陸取得通信;歐洲節點擴張工作也將于明年初啟動。迄今為止,UPYUN已經擁有7個國際加速節點,3個國際骨干節點。

2016 年,第二次爆發階段:

2016年, UPYUN將此定義為第二次爆發階段。在這一年,UPYUN將會持續進行軟件層面建設,其中一個比較大的目標就是建立專屬的DNS調度系統。由于現階段的 DNS的主要目的為智能地區調度,該智能調度的技術架構需要進行一個二次鋪點的計劃——即在同一個省份或線路中會布設多個機房提供服務,為了兼顧到高效率 的負載均衡控制,UPYUN計劃于明年開發專屬的DNS系統。

從起步到爆發,UPYUN云CDN架構演進之路

圖5 .2016 年,UPYUN云CDN展望(源自UPYUN 黃慧攀)

關于DDoS/CC/WAF等安全防護方面,UPYUN也將會做更大的技術投入和資源投入。UPYUN的CTO黃慧攀稱,一旦用戶受到了大規模的 攻擊,UPYUN會有專人前去與客戶進行溝通,并在10到20分鐘內排查具體原因,受到攻擊的體量,幫助客戶判斷是否持續保障服務還是暫停服務。

結語:

從2010年到2015年,短短幾年間,UPYUN的云CDN產品經歷了從無到有、從小到大、直到邁向國際化舞臺的過程,離不開技術在背后的強力 支撐,以及整個團隊不斷總結、思考的態度以及探索的精神。UPYUN云CDN的技術架構演進之路,對于當今不斷創新、不斷轉型的互聯網行業也是很好的啟 示。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!