2017年4月12-13日,2017亞太CDN峰會在北京隆重召開,大會由亞太CDN領(lǐng)袖峰會、國際CDN論壇、電視新媒體CDN論壇、視頻云論壇、未來網(wǎng)絡(luò)論壇、C未來視頻峰會、亞太CDN展覽會等7大部分組成。在13日下午的視頻云論壇上,高升控股華東研發(fā)主管陳一駿作了題為《高升CDN平臺的容器化分享》主題報告。
圖為:高升控股華東研發(fā)主管陳一駿
陳一駿的演講主要圍繞容器化對于CDN方面的落地問題,在當(dāng)下這樣一個CDN環(huán)境下,量大且業(yè)務(wù)復(fù)雜,所有的CDN行業(yè)從業(yè)者需要做出的內(nèi)容和改動屬于近幾年來探索過程中十分艱難的部分。容器化本身是一個好現(xiàn)象,它可以將所有CDN紛繁復(fù)雜的業(yè)務(wù)以一個比較標準的方式去部署、實現(xiàn)、落地,容器化的相關(guān)技術(shù)也能夠提升CDN相關(guān)的服務(wù)質(zhì)量。
CDN發(fā)展歷程回顧
在談到容器化之前,陳一駿先談到了CDN的發(fā)展歷程以及高升科技為什么在CDN3.0的時候嘗試使用容器化。CDN最早出現(xiàn)的時候只是為了解決緩存,將網(wǎng)站頁面上緩存在各個就近的節(jié)點上的內(nèi)容減少,使用戶訪問網(wǎng)站的等待時間減少,提高網(wǎng)站的響應(yīng),隨機才開發(fā)了網(wǎng)頁的加速。在CDN2.0時代,由于互聯(lián)網(wǎng)的整體發(fā)展,互聯(lián)網(wǎng)上內(nèi)容開始逐漸豐富,因此整個CDN都開始嘗試進行各個內(nèi)容方向的緩存、加速和視頻轉(zhuǎn)碼、解碼各方面的努力。從2014年開始,經(jīng)過2015年2016年直到現(xiàn)在,CDN出現(xiàn)了爆炸式的增長。
最后一個階段的CDN是云時代CDN,需要面臨的最大的問題是流量指數(shù)增長和基礎(chǔ)設(shè)施階梯增長的矛盾。近兩年,流媒體的直播成為行業(yè)爆點,整個CDN將近90%的流量都是和流媒體相關(guān),整個互聯(lián)網(wǎng)流量從有云時代的網(wǎng)絡(luò)爆發(fā)開始不論是直播、點播、叫車業(yè)務(wù)等等和2014年相比是一個長足式的爆發(fā)。然而流量太多之后,所有舊有時代的技術(shù)都已經(jīng)落后了。在面對大流量、大業(yè)務(wù)時,與之而來就是開發(fā)大量設(shè)備,Docker和容器化應(yīng)運而生。此時Docker和容器化主要面對的問題有四個:1、流量突發(fā)式的爆發(fā),2、安全的防護問題。3、響應(yīng)和延遲的不穩(wěn)定。4、量變引起的質(zhì)變。
高升之于CDN3.0的解決方案
高升在現(xiàn)在的環(huán)境下有300多個CDN節(jié)點,3000+的帶寬,以及大量的服務(wù)器。高升的VPN業(yè)務(wù)有將近90個以上的虛擬專用網(wǎng)節(jié)點,IDC有超過200家IDC的星級機房,還有覆蓋北美、南亞、歐洲和澳洲相關(guān)的國際CDN的業(yè)務(wù)。
陳一駿談到容器技術(shù)并不是比較新鮮的概念,反而Docker是比較晚出現(xiàn)的容器技術(shù)的解決方案。Docker出現(xiàn)以后做了兩個突出貢獻:一是它提供了準化的容器的解決方案,二是它在2015、2016年和各大公司協(xié)商了兩個標準化。
容器為什么能減低運維?陳一駿解釋說因為容器化是云計算世界中的“集裝箱”。集裝箱在海運或者貨運中起到了非常重要的作用,高升容器化對于業(yè)務(wù)的部署跟裝卸貨是一樣的概念,容器技術(shù)的好處是將所有的業(yè)務(wù)應(yīng)用軟件打造成一個個的集裝箱,這樣系統(tǒng)效率會大幅度提升,整體運維會下降,地球上任何一個地方會快速的到達和快速的部署、落地。
容器化帶來的優(yōu)勢是其以及其配套的一整套的編排環(huán)境和相關(guān)自動化流程的軟件帶來的。第一容器化可以自動化部署,第二可以持續(xù)敏捷的進行開發(fā)和持續(xù)集成,第三是因為容器化本身的標準化,它的架構(gòu)天然傾向于分布式架構(gòu),整體資源出現(xiàn)問題時候的自動調(diào)度和恢復(fù)都非常的方便;最后也是CDN比較常用的問題,因為容器化是標準化的東西,它可以將不同的業(yè)務(wù)部署在同一臺服務(wù)器上而不用擔(dān)心互相干擾或者污染,對于資源復(fù)用也很有用。
容器化特質(zhì)是將這些業(yè)務(wù)可以打成鏡象,并且以環(huán)境變量的形式輸出出去,通過環(huán)境變量進行快速部署。其次是日志業(yè)務(wù),這涉及到了大數(shù)據(jù)開發(fā)對于容器化如何結(jié)合分布式存儲等等方面的工作。最后是計費,計費和日志系統(tǒng)息息相關(guān)。
整個容器化分為四大的組件,最底層的就是Docker。它提供簡單想標準、提供容器化,資源隔離復(fù)用保持整體環(huán)境在業(yè)務(wù)上的統(tǒng)一。在Docker使用過程中會體驗數(shù)據(jù)存儲、檢索、消息隊列等基礎(chǔ)功能,然后是編排軟件(mesos),主要解決資源的分布式條度問題。
由于此次陳一駿的演講主題是“落地”,所以演講中他分享了幾個落地組件的方案。在此前編排過程中,高升在mesos、swarm、kubernetes中選擇,最終選擇了mesos,swarm一直在測試中。舍棄kubernetes的原因是雖然它的活躍度很高,整個軟件在大發(fā)展,但是在資源調(diào)度的一些概念或者封裝上比較封閉,并不適合高升業(yè)務(wù)的二次開發(fā)。mesos本身只提供調(diào)度的算法或者調(diào)度的方案,在mesos上面,用戶要自己寫框架或者使用一些已有的框架,比較開放也比較成熟。
高升的容器化主要分為三個部分:
1、mesos的管理中心。mesos的master cluster管理中心有十幾臺機器保證運作,將近三個大的mesos集群,每個至少保證三臺。還使用了馬拉松自有的框架來進行業(yè)務(wù)調(diào)度,在馬拉松的基礎(chǔ)上拋棄了馬拉松自己寫了一些關(guān)于資源的復(fù)用或者調(diào)動的小框架組件,整體的馬拉松又有一些需求的組件,考慮到后續(xù)還有業(yè)務(wù)本身(因為不僅僅PKV的是要給容器服務(wù),還要跟容器配合),所以高升還做了etcd級的cluster,方便CT業(yè)務(wù)本身。
容器業(yè)務(wù)本身使用它,在這當(dāng)中也開發(fā)了管理界面直接對配置管理中心做更改。高升自己有一套CI和CD系統(tǒng)將代碼自動成鏡像,通過分支進行,不同的分支會打成不同相應(yīng)的鏡像存儲到Docker的鏡像倉庫中。最后mesos的slave cluster接受mesos master的調(diào)度來接受整體的架構(gòu)。
2、配置管理。除了服務(wù)器,其他業(yè)務(wù)包括容器調(diào)度本身的信息全部寫在配置管理器,用戶業(yè)務(wù)使用的時候會分門別類的尋找相關(guān)的業(yè)務(wù)配置,最后通過環(huán)境變量或者業(yè)務(wù)本身的接口調(diào)用傳遞到業(yè)務(wù)本身。因為Docker本身是無狀態(tài)的,推行無狀態(tài)標準化,所以最好有界面能夠給開發(fā)或者極少量的運維人員上線進行維護。
3、服務(wù)復(fù)用。Docker在高升的CDN使用不僅僅是持續(xù)集成提高開發(fā)迭代速度或者配置管理,統(tǒng)一配置將CDN中各種各樣的任務(wù)比如直播、點播、轉(zhuǎn)碼都部署在各地的服務(wù)器上,更多的是做一個服務(wù)的復(fù)用。兩大主要業(yè)務(wù)復(fù)用:首先是直播業(yè)務(wù),直播和點播業(yè)務(wù)有一點區(qū)別,雖然都與轉(zhuǎn)碼相關(guān),但是直播業(yè)務(wù)本身的時效性對內(nèi)存有比較高的需求。第二是點播內(nèi)容,高升嘗試把點播和緩存部署在一臺機器上,在后臺的業(yè)務(wù)中JSLB包括IP探索的一些小軟件也可能單獨構(gòu)建成復(fù)用框架。
除了服務(wù)復(fù)用以外CDN本身業(yè)務(wù)的特殊性對網(wǎng)絡(luò)帶寬的需求也是非常大的。SDN定義網(wǎng)絡(luò)本身因為容器業(yè)務(wù)的遷移和漂流,對網(wǎng)絡(luò)消耗是很大的。目前大部分是用直聯(lián)的網(wǎng)絡(luò),但是對于個別業(yè)務(wù)特別是包含和客戶相關(guān)的定義的調(diào)度,比如統(tǒng)一IP之類的業(yè)務(wù)則需要SDN網(wǎng)絡(luò)支持。在這一方面,高升的落地方案嘗試過包括基于Docker的第三方的網(wǎng)絡(luò)插件,Docker自帶的網(wǎng)絡(luò)方案等。
由于不同的人、不同的業(yè)務(wù)對CDN的網(wǎng)絡(luò)解決方案的需求都不一樣,總體來說虛擬網(wǎng)絡(luò)或者軟件定義的網(wǎng)絡(luò)分為兩個方向隧道技術(shù)、封裝技術(shù)。在整個容器落地之后,
容器化技術(shù)算是整個產(chǎn)品線或者是整個集團產(chǎn)品線的潤滑劑和紐帶,一旦容器技術(shù)應(yīng)用,之后所有的業(yè)務(wù)本身都有標準的部署平臺可以將APM、虛擬專用網(wǎng)進行整合,并且對于用戶來說可以通過容器化下發(fā)容器自定義調(diào)度節(jié)點。
責(zé)任編輯:方珍