張基恒,李大中,張呈宇,魏進武
(1.中國聯合網絡通信有限公司研究院,北京 100032;2.中國聯合網絡通信有限公司信息化事業部,北京 100032)
DC/OS關鍵技術與應用場景
張基恒1,李大中2,張呈宇1,魏進武1
(1.中國聯合網絡通信有限公司研究院,北京 100032;2.中國聯合網絡通信有限公司信息化事業部,北京 100032)
首先對數據中心操作系統內的主要技術,包括Mesos、Yarn、Kubernetes和容器進行了闡述。根據國內外電信運營商的現狀和面臨的問題,提出了一種解決方案,并對技術實現及選型建議進行了討論。最后對電信運營商應用DC/OS關鍵技術的案例進行了簡要介紹。
數據中心操作系統;資源調度;開源
隨著越來越多的平臺、架構、系統、組件和工具等通過開源社區、小微型初創項目而衍生,不再由IT或互聯網巨頭獨自壟斷,這為IT領域各項技術的快速、活躍發展提供了良好的溫床,開源技術的迅速發展、活躍的社區力量,使得一些理念如DC/OS(數據中心操作系統)以及技術如Mesos、Kubernetes和容器等應運而生,并廣泛地得到了實驗和迭代改進。
DC/OS問世之前,如谷歌(Google)等互聯網企業就內部資源調度和分配、負載,已逐步展開了探索,形成了一些如Borg等的生產化項目。而在2014年,由Mesosphere實現了第一個可進行統一調度所有數據中心及云資源的軟件堆棧,并稱為DC/OS。目前已投入實際生產使用的DC/ OS包括Google的Borg/Omega系統和推特(Twitter)、蘋果(Apple)、網飛(Netflix)等公司基于Mesos構建的系統。而在2016年4月,Mesosphere將自己的DC/OS代碼進行了開源,其中包含超過30項組件技術,最為典型的有Apache Mesos與Marathon。下文將對可用于DC/OS構建的開源技術包括Mesos、Yarn、Kubernetes和Docker進行簡要闡述。
2.1 Mesos
Mesos是開源資源統一管理和調度平臺,其實現邏輯如圖1所示,由美國加州大學伯克利分校AMPLab開發,后應用于Twitter、Apple、Netflix等企業。其亮點在于兩層調度的架構可以做到“大集群”、減小“中心節點”的壓力以及在同一個集群中可接入多種應用、框架,提高分布式集群的利用率。
由于Mesos上的元數據可通過各個計算節點重新注冊而進行重構,因此可通過Zookeeper解決單點故障問題。輕量級的Mesos架構包括以下4個組件。
(1)Mesos管理節點
系統的核心,負責管理接入Mesos的各個框架和計算節點,并將計算節點上的資源按某種策略(默認使用DRF(dominant resource fairness,主導資源公平)算法)分配給不同的框架。
(2)Mesos計算節點
接收并執行來自管理節點的命令、管理節點上的任務并為各個任務分配資源。
(3)框架
計算框架,以注冊的方式接入Mesos以便其進行統一管理和資源分配。
(4)執行器
主要用于啟動內部任務。
2.2 Yarn
Yarn是新的Hadoop MapReduce框架,實現思路如圖2所示。其主要為了解決Hadoop1.0擴展性較差、不支持多計算框架的問題,本質是一個資源管理架構。Yarn減小了JobTracker的資源消耗,并且讓監測每一個工作子任務狀態的程序更安全、更分布式化;對于資源的表示以內存為單位,較舊版本更合理。其亮點在于可以更快地進行MapReduce計算,實現對多架構的支持以及架構升級的簡便性。
較1代MapReduce的設計思路,Yarn將JobTracker兩個主要的功能,即資源管理和任務調度/監控,分解為獨立組件資源管理器和應用管理節點。資源管理器全局管理所有應用程序計算資源的分配,每一個應用的應用管理節點負責相應的調度和協調。
2.3 Kubernetes
Kubernetes是Google多年大規模容器管理技術的開源版本,其實現思路如圖3所示。其亮點在于具有容器編排能力、相對輕量級及易于管理運行Docker的容器。Kubernetes使用Docker對程序進行包裝、實例化、運行,并以集群的方式運行、管理跨機器的容器,同時解決了Docker跨機器容器之間的通信問題。
Kubernetes框架包含以下組件。

圖1 Mesos實現思路

圖2 Yarn實現思路

圖3 Kubernetes實現思路
·Kubernetes管理節點:管理整個系統。
·Kubernetes API服務器:系統入口,封裝了核心對象的操作。
·Kubernetes調度器:負責集群資源調度,為新建的Pod分配機器。
·Kubernete節點:運行節點,用于運行管理業務的容器。
·Kuberlet:負責管控容器,從服務器接收命令。
·Kubernetes代理:負責為Pod創建代理服務。
·Docker:Kubernetes節點是容器運行節點,需要運行Docker服務。
首先,Kubecfg將請求如創建Pod等,發送給Kubernetes應用客戶端,并由其將該請求發送給API服務器。API服務器根據請求類型(如創建Pod時存儲類型是pods)并依此選擇何種REST存儲API對請求作出處理。REST存儲API對請求做相應的處理,并將處理結果存入高可用鍵值存儲系統(ETCD)中,在API服務器響應Kubecfg的請求后,調度器會根據Kubernetes應用客戶端獲取集群中運行的Pod及從屬節點的信息。依據從Kubernetes應用客戶端獲取的信息,調度器將未分發的Pod分發到可用的從屬節點上。
2.4 Docker
Docker是一個開源的應用容器引擎,為開發者提供一個可將應用及依賴包打包至一個可移植的容器環境中,并發布到任意流行的 Linux機器上。容器采用沙箱機制,容器間不存在接口。其亮點在于快速便捷的單次構建+導出運行模式及愈加豐富的生態系統。
Docker采用C/S模式,使用遠程API來管理和創建Docker容器。Docker容器通過Docker鏡像來創建。容器與鏡像的關系類似于面向對象編程中的對象與類。Docker采用C/S架構Docker Daemon作為服務端接受來自客戶的請求,并處理這些請求(創建、運行、分發容器)。客戶端和服務端既可以運行在一個機器上,也可通過Socket或者RESTful API來進行通信。Docker Daemon一般在宿主主機后臺運行,等待接收來自客戶端的消息。Docker客戶端則為用戶提供一系列可執行命令,用戶用這些命令實現跟Docker Daemon交互。
3.1 現狀與問題
云計算、大數據相關技術的普及推進了企業云化的建設和發展。雖然大部分國內外電信運營商已實現了IaaS資源池化和部分PaaS及應用資源池化,能夠滿足生產供給和部署。但大部分運營商的數據中心采用分隔式集群實現思路,包括以開源Yarn或定制版大數據資源調度,承載數據類作業的集群以及數據庫、緩存集群等;缺乏迫切資源的跨域調度能力;同時目前的運營系統還存在的資源運行不均衡、時段運行不均衡等問題,具體包括:
·應用難以實現靈活、快速地部署,應用系統的開發過程從開發到生產有不同的部署環境,對應的實現代碼也面臨著不同環境的開發和部署;
·系統彈性伸縮能力不足,擴縮容需經過較多環節,無法實現快速、自動的伸縮,同時會造成資源的浪費;
·現有資源利用率在15%左右,無法充分實現資源的有效利用;
·應用系統仍舊面臨“煙囪式”的建設等現實問題,應用與平臺緊耦合,高可用、有效監控、智能運維難以標準化。
鑒于此,電信運營商需設計、研發一種架構,以解決資源調度等現實問題并提供微服務化的實現環境。
3.2 功能結構
一種可滿足電信運營商需求的DC/OS的功能實現如圖4所示,分為4部分內容,分別是業務調度層、應用服務層、資源管理層以及自動化運營工具。
業務調度層的主要功能包括集群管理、服務接入、服務命名、服務發現、服務目錄管理、負載均衡、服務訪問控制等。
應用服務層主要負責容器集群的管理和大數據集群的管理。
資源管理層的主要功能包括底層計算資源的管理以及對其上注冊的任務的管理。
自動化運營工具包括監控和多租戶管理兩大功能,其中監控又細分為對資源、服務、容器、集群的監控。
3.3 技術實現框架
為實現如圖4所示的功能架構,需要引入資源調度技術、容器技術等,在技術路線選擇上,則以社區領域的開源技術為基礎形成自有版本,并兼顧開源社區本身的發展。一種較為適合運營商的DC/OS技術架構如圖5所示。

圖4 總體功能架構
3.3.1 Mesos版本選型
開源DC/OS和商用DC/OS對比見表1。
選型建議:可使用開源技術和自行研發結合方式實現,其中對資源的統一管理和調度采用開源的Mesos或者開源的DC/OS來支撐,從對比來看開源DC/OS與 ApahceMesos核心模塊功能一致,開源DC/OS增加了如框架的自動安裝部署和門戶等附加功能。
3.3.2 Kubernetes和Marathon框架整合
Kubernetes和Marathon對比見表2。
選型建議:Kubernetes和Marathon各有優點,且各自都有固定的生態圈,因此目前階段無法選定對容器的編排和調度管理采用拿一個開源工具,因此在DC/OS平臺需要長期跟蹤和集成兩個容器編排工具。

圖5 DC/OS技術實現框架

表1 開源DC/OS和商用DC/OS對比

表2 Kubernetes和Marathon對比
3.3.3 對大數據服務框架的集成和封裝
通過Myriad實現大數據服務框架的集成。
與DC/OS相關的Mesos、容器等技術在電信運營商領域獲得了廣泛的探索、研發與實踐。
4.1 浙江移動DC/OS實現“雙11”1折充值秒殺
中國移動以開源技術Mesos、Marathon、Docker、HA代理為引擎,在其上完成了自有數據中心操作系統DC/OS平臺的設計、測試驗證,平臺采用93個主機節點,其中平臺部分由5個節點構成Mesos管理節點集群,8個節點構成HA代理集群,計算節點由80個Mesos計算節點組成。為驗證其對業務的承載能力,中國移動選取浙江移動手機營業廳作為試點,將其手機營業廳系統遷移到DC/OS平臺上,用于重點解決秒殺場景。并在2015年11月11日,推出手機營業廳充值1折秒殺的活動,借以實驗和測試平臺對其業務的支撐。在當晚8點,DC/OS平臺充分展現了其在應對業務高峰時的能力優勢,順利通過“雙11”考驗。
數據顯示,“雙11”活動期間,浙江移動手機營業廳系統承受的并發數峰值接近6萬次/s,后臺服務調用成功率均在99.95%以上,成為浙江移動首個在單日實現10億級PV的業務系統,其平臺CPU利用率從資源池的10%提高到40%~50%。
隨后,中國移動陸續將CRM核心業務逐步遷移,在2016年4月底DC/OS已成功承載其16套應用系統,涵蓋CRM營業廳、手機營業廳等多套核心系統。
4.2 Verizon的DC/OS支撐自有系統和應用
Verizon公司作為國際電信運營商巨頭之一,不僅重視電信運營商基礎業務如語音及數據服務,同時也提供面向用戶的應用托管業務以及Verizon內部服務如云服務、用戶托管應用等。而這些年OTT的興起,令傳統通信業務逐漸減少,也令Verizon公司對其他非電信業務更加重視。但其傳統的電信業數據中心架構仍是集群化的、計算資源孤島式的,無法實現應用的自動化部署、擴縮容,因此需要一種較有限的集群管理工具,并可以實現隔離、灰度升級、打包、資源彈性分配等能力。
鑒于此,在2013年,Verizon為改變計算和存儲資源的低利用率和隨之而來的運營低效率問題,開始選擇Docker容器技術以及用來管理Docker容器及服務器集群的Mesos技術重構其基礎設施架構,以支撐Verizon網絡上數以萬計的工作任務。2014年底,Verizon建立了一種以Linux為核心,由遍布數據中心的普通服務器構成的集群。在應用了新技術后,在硬件資源和應用部署兩方面均有有效的提升。具體如圖6所示。
(1)硬件資源
·資源利用率提升:其數據中心的資源利用率由最初的10%~20%提高到50%以上。
·提升集群使用有效性:參考集群的歷史數據,哪些應用上云或者從云上下線了,從而將硬件采購做得更合理。

圖6 Verizon傳統/容器化數據中心效率
·減少硬件資源規劃計劃:閑置的集群資源可提供給新業務,因此無需為新業務規劃預期規模所使用的資源;進一步可根據所有應用的運營情況來增加硬件投入,按季度擴展集群規模。這種方法還可以使計劃更具體和有效。
(2)時間成本
·應用快速部署:支持在 72 s內部署 50 000個Docker容器,應用集群部署與過往相比提高了一個數量級。
·開發成本降低:無需關注機柜和硬件環境,應用實現短平快的開發。
Verizon計劃在其Mesos集群上運行一些服務,第一批將被遷移到Mesos集群上的服務包括無線網絡支撐系統和一些移動應用的后臺以及FiOS網絡支撐系統 (光纖到戶)。Verizon還計劃將其Hadoop和Spark分析任務從它們的專屬集群上遷移到Mesos集群。其最終目標是希望該集群可達到如互聯網巨頭般的由廉價、單一的硬件設備組成的數據中心。
未來電信行業將會是一個IT、CT融合,電信運營商互聯網化的趨勢,IT所占比重會越來越大,電信行業的盈利模式也會從傳統的提供通道到提供IT資源、提供服務的方向轉變。近幾年隨著大數據、云計算、容器化、微服務、平臺戰略等新技術和新概念的層出不窮和快速發展,在業務支撐、架構能力、平臺擴展性等方面對舊有的煙囪式建設的業務支撐系統提出了巨大的挑戰。因此對現有業務和設備進行容器化改造,對數據中心乃至全網IT系統進行DC/OS改造,則成了一個必然的選擇。
目前,DC/OS相關技術已在部分運營商有成功使用的案例,證明相關技術在運營商的業務和網絡中具有不可忽視的作用,同時運營商也需從自身定位和轉型戰略的視角來看待DC/OS的發展,并選擇自身合適的業務分步進行改造和遷移。
[1]HINDMAN B,KONWINSKI A,ZAHARIA M,et al.Mesos: aplatform for fine-grained resource sharing in the data center[C]// The 8th USENIX Conference on Networked Systems Design and Implementation,March 30-April 1,2011,Boston,MA,USA. New York:ACM Press,2011:429-483.
[2]VAVILAPALLI V K,MURTHY A C,DOUGLAS C,et al. Apache Hadoop YARN:yet another resource negotiator[C]// Symposium on Cloud Computing,May 27-June 1,2013,Valencia, Spain.New York:ACM Press,2013:1-16.
[3]BERNSTEIN D.Containers and cloud:from LXC to Docker to Kubernetes[J].IEEE Cloud Computing,2014,1(3):81-84.
[4]MERKEL D.Docker:lightweight Linux containers for consistent development and deployment[J].Linux Journal,2014(239).
[5]程夢瑤.王璞:定義下一代DCOS[J].軟件和集成電路,2016(4): 84-86. CHENG M Y.WANG P:define the next-generation DCOS[J]. Software and Integrated Circuit,2016(4):84-86.
[6]張基恒,魏進武.電信運營商私有云適應性分析 [J].移動通信,2015(13):5-11. ZHANG J H,WEI J W.Analysis on private cloud adaptability for telecom operators[J].Mobile Communications,2015(13): 5-11.

張基恒(1990-),女,中國聯合網絡通信有限公司研究院工程師,主要從事大數據、IT架構方面的研究工作。

李大中(1976-),男,中國聯合網絡通信有限公司信息化事業部工程師,主要從事大數據架構規劃、數據安全訪問控制、大數據能力開放的設計和研究工作。

張呈宇(1988-),男,中國聯合網絡通信有限公司研究院工程師,主要從事虛擬化技術、云計算IaaS、容器技術、數據中心操作系統方面的研究工作。

魏進武(1978-),男,博士,中國聯合網絡通信有限公司研究院軟件與系統實驗室主任、副教授,負責和參與了國家“863”計劃重大項目5項、國家科技重大專項課題2項,負責中國聯通研發項目50余項,主要從事大數據、云計算以及電信IT系統等的設計及研發工作。
Key technologies and application scenario of DC/OS
ZHANG Jiheng1,LI Dazhong2,ZHANG Chengyu1,WEI Jinwu1
1.China Unicom Research Institute,Beijing 100032,China 2.China Unicom Group Information Division,Beijing 100032,China
Firstly,critical technologies in data center operating system (DC/OS),including Mesos,Yarn, Kubernetes and Docker were presented.Based on the current situations and problems that both domestic and foreign telecom operators faced,a simple resolution was proposed and technical realization as well as the selection of techniques were discussed.At last,several cases of DC/OS application for telecom operator were introduced.
DC/OS,resource allocation,open source
TP316
A
10.11959/j.issn.1000-0801.2016313
2016-11-02;
2016-12-12