徐海勇,黃巖
?
基于PaaS技術的大數據云化平臺實踐
徐海勇,黃巖
(中國移動通信集團有限公司,北京 100032)
大數據平臺作為數據存儲、處理和服務的基礎平臺,需支撐內部和外部多種大數據應用的開發及運行。提出一種把PaaS(platform as a service,平臺即服務)技術應用到大數據平臺的方案,詳細描述了大數據PaaS云化平臺的架構體系以及分層調度、多租戶管理、Hadoop任務全局調度等關鍵技術方案。實踐證明,該平臺可以顯著提高大數據應用的開發效率,實現應用快速部署上線;同時,其良好的彈性伸縮能力可以有效地提高大數據應用系統資源的使用效率。
大數據;PaaS;Hadoop;YARN調度器;云服務
中國移動作為全球規模最大的運營商,擁有9億戶移動用戶資源,其用戶使用通信服務的過程中產生的海量數據,如用戶profile、通信話單、網絡信令、上網行為等,形成了寶貴的大數據資產。利用大數據技術挖掘海量數據背后隱藏的規律,可以有效地改善用戶業務質量,優化運營效率,促進產品創新,發揮巨大價值。隨著數據規模的急速增長,大數據平臺規模的逐漸擴大,應用需求日趨強烈,如何協同多家應用開發者在集中、安全、可靠的平臺上開發自己的應用,成為關注的焦點。目前,面臨以下挑戰。
首先,中國移動傳統的大數據平臺為總部—省級二級架構,數據呈現分散狀態,而全網類應用如金融客戶需要信用評估服務、政府部門需要全國人口統計服務等,都需要全網數據的支撐;其次,大數據應用上線時間長且重復開發,對于特定場景的大數據應用,如位置應用、精準營銷應用、信用評估應用等,缺乏統一業務開發平臺,導致存在各省份公司重復開發、重復運維的情況,浪費了投資,且技術力量分散,難以聚焦形成精品大數據應用;最后,現網中多個煙囪式的數據分析平臺存在數據和資源相互隔離、無法共享的問題,當突發數據處理任務時,即使其他平臺有大量閑置資源,也無法調配資源,造成業務阻塞。
隨著企業IT架構向云化轉型,IT資源逐步由共享資源池取代,同時應用的開發迭代周期從年變成周,需要給開發人員和管理人員提供支撐服務,這些需求引發了近年來PaaS(platform as a service)[1,2]技術的蓬勃發展。谷歌(Google)基于自己的Borg[3]平臺推出開源Kubernetes[4],為容器化Docker[5]的應用提供資源調度、部署運行、服務發現、擴容縮容等整套功能,實現大規模CloudNative[6]應用的集中管理。隨著大數據技術應用廣泛和日趨成熟,開源軟件在資源和任務調度、多租戶管理、自動運維等方面已經取得眾多成果,如Hadoop[7]2.0重構MapReduce框架,以YARN[8]作為通用的資源調度層,支持MapReduce、Spark、Storm、MPI[9-11]等更多編程框架,實現了不同類型的數據處理任務共享底層集群資源。
本文提出了一種大數據平臺云化解決方案:基于PaaS的理念和技術實現大數據平臺云化服務,將大數據平臺的數據采集、分析、處理及展現能力作為PaaS能力對外開放。同時,面向大數據業務開發者,提供開發環境和作業執行環境,使開發者可以使用PaaS中各種資源、開發工具、軟件中間件等能力,PaaS的彈性伸縮及大數據平臺處理能力的結合,實現資源效率和開發效率最大化的目標。
基于PaaS技術的大數據云化平臺功能涵蓋集中數據平臺、應用開發平臺、數據服務平臺三大功能,具體如下。
? ? 集中數據平臺,匯聚中國移動網絡域(O域)、業務支撐域(B域)、管理域(M域)、專業公司及外部引入數據,定義統一的數據模型,形成數據的匯聚及全網服務。
? ? 應用開發平臺,提供數據分析常用的開發工具、軟件中間件、任務部署工具等開發環境,業務開發者在平臺上在線選擇所需的開發環境資源,開發自己的大數據作業和應用。支持多個開發團隊并行開發,并支持開發成員之間開發協同。
? ? 數據服務平臺,為業務單位和合作伙伴的數據分析作業、大數據應用提供運行執行環境。從資源池中分配計算、存儲和網絡等資源,作業執行完畢時,資源重新回收到資源池,形成資源共享,租戶在大數據云化平臺上可以直接對外提供數據應用及服務。
基于PaaS的大數據云化平臺包括四層一域,整體架構如圖1所示。
?? IaaS(infrastructure as a service,基礎設施即服務)層,采用 OpenStack架構,統一接入VMware、Fusionsphere等主流廠商的Hypervisor虛擬化軟件,統一管理CPU、內存、存儲、網絡等IT基礎設施資源。以OpenStack標準化接口,向PaaS層提供IaaS基礎資源。

圖1 基于PaaS的大數據云化平臺基礎架構
? ?? PaaS層,負責應用和服務生命周期管理、資源調度、多租戶管理、軟件倉庫等PaaS公共能力,為平臺開發者調用訪問。
? ?? Hadoop存儲和計算資源池層,數據分布式存儲和分布式計算的核心執行引擎,以Hadoop為核心,包括Hadoop協議族中HDFS、MapReduce、Spark、HBase、Kafka、Flume等組件。
? ?? 大數據服務層,將基礎資源、大數據開發工具、數據資產等封裝成服務,供平臺開發者使用。同時,對PaaS平臺管理服務的上架、發布和狀態監控,對平臺開發者提供使用平臺服務能力的統一入口。
? ? 統一運維域,負責整個平臺運維,包括應用和服務的部署、彈性伸縮、故障告警監測等,為平臺運維人員提供運維工具和管理工具,同時將運維能力開放給平臺租戶,使租戶可以管理自己的應用、服務和資源。
開發者使用大數據PaaS平臺,主要包括資源申請及應用開發兩個主要步驟,具體如下。
(1)資源申請流程
開發者首先注冊成為平臺租戶,然后創建開發項目;再為項目申請Hadoop資源、各種大數據分析工具服務。所需的資源申請批準后,業務單位即可進入大數據開發。申請流程如圖2所示。

圖2 資源申請流程
開發者在平臺的服務市場中選擇所需的資源和服務界面,如圖3所示。
(2)大數據應用開發流程
業務單位開發人員獲得所需資源后,進入應用開發階段。開發者需要經過公共數據資源申請、數據模型定義、其他私有數據上傳、數據處理邏輯集成開發及分析、最終形成數據應用。開放數據訪問API或者形成SaaS類應用展示結果等幾大基本過程,具體如圖4所示。
大數據集成開發環境支持圖形化開發,如圖5所示。

圖3 開發者資源申請界面

圖4 開發者應用開發流程

圖5 開發者應用開發界面
基于PaaS平臺的大數據云化平臺,提供了統一的數據存儲、開發環境、應用部署對外服務等基本能力,其關鍵技術包括多應用類型的分層調度、基于IAM(identity and access management,統一身份認證服務)的多租戶管理以及全局優化的YARN調度技術。
一個完整的大數據業務系統包含多種應用形態:既有框架類的應用,如MapReduce作業;也有普通的交易類應用,如營銷門戶等。如何同時管理和調度這兩類的應用,成為研究焦點,本文實現了兩種方案。
一種是獨立調度,即對不同類型的應用提供不同的資源調度器,資源調度器之間相互獨立。Hadoop集群使用YARN管理調度自己的資源,支持框架類應用;PaaS另外部署以Kubernetes為核心的調度器,管理虛擬機、容器等資源支持普通應用,獨立調度技術方案如圖6所示。
另一種為兩層調度方式,即將兩種類型應用的資源調度器疊加起來,從而實現資源共享的目的,同時也實現應用的統一管理。需要進一步提升租戶間的資源共享程度,就需要采取多層資源調度的方式。比如,以Kubernetes作為統一的1層資源調度器,以YARN/Mesos作為針對大數據應用的兩層資源調度器,如圖7所示。

圖6 獨立調度技術方案

圖7 兩層調度技術方案
當大數據云化平臺把各種能力以云服務方式對外提供時,存在兩種典型的云服務形態——邏輯多租和物理多租。
? ? 邏輯多租服務:所有租戶應用共享同一個服務實例,租戶共享服務實例以及實例中的數據、計算能力和存儲。
? ? 物理多租服務:每個租戶申請一套獨立的服務實例,租戶間不共享服務實例。
在邏輯多租的場景下,存在對租戶的多層級多域管理的需求。為了能夠實現租戶可以創建自己獨立管理的應用(物理多租場景),又能夠在集團租戶的空間內創建應用(邏輯多租場景),參考OpenStack Keystone[11]架構實現了IAM。
基于IAM的能力,同一個租戶可以在不同的租戶空間中創建應用(項目),并對自己創建的應用進行管理,并接受租戶空間管理員的統一管理,如圖8所示。

圖8 基于IAM的多租戶管理模型
以上多租戶管理方案在對外服務時,解決了租戶對公共數據的訪問問題,租戶可在管理者租戶創建的域中創建自己的項目來訪問管理者租戶中的數據資源,同時租戶也可以選擇創建自己的域,建立自己的大數據平臺。
開源的Hadoop YARN系統中目前包括兩大類調度器:公平調度器(fair scheduler)和容量調度器(capacity scheduler),開源的調度器都是基于計算節點心跳驅動的資源反向匹配作業的調度機制,每個計算節點定期發送心跳來通知YARN的資源管理器(resource manager)自身的節點狀態并同時啟動調度器,為這個節點分配作業。這種調度機制把調度的周期同心跳結合在一起,當集群規模增大時,會遇到系統擴展性以及調度性能瓶頸。另外,因為采用了資源反向匹配作業的調度機制,開源調度器在調度精度上也有局限性,例如計算正向數據分配準確性低,系統也無法支持基于負載的調度策略等,其主要原因是調度器在選擇作業時,缺乏全局的資源視圖,很難做到最優選擇。
本文提出了一種全局的YARN調度算法以優化任務調度、提高調度性能、系統資源利用率和大規模集群擴展程度。全局優化的調度器內部采用了與開源不同的調度機制,其調度流程采用了從作業到資源的正向匹配方法,通過轉有調度線程,查看所有待處理作業,通過對全局作業和資源的了解匹配合適的任務,這樣每個調度的作業都有全局的資源視圖,可以很大程度地提高調度的精度,對比流程如圖9所示。

圖9 全局任務調度與開源任務調度流程
同時,全局調度器引入了專門的調度線程,把調度同心跳剝離開,避免了在超大規模集群時容易出現的系統心跳風暴問題。相比開源調度器,優化的調度器在系統吞吐量、利用率、數據親和性等方面都有很大提升。
全局調度器和開源調度器功能對比見表1。

表1 開源調度器與全局調度器優勢對比
基于上述的整體架構及關鍵技術,中國移動進行了基于PaaS的大數據云化平臺的建設實踐。在數據層面實現了各省B、O、M三域數據整合,構建了中國移動公共的數據資產模型。基礎能力層面實現了Hadoop服務、公共數據資產服務、數據治理服務、數據集成服務、統一調度服務、數據探索服務、數據API開發服務和數據挖掘服務等,以供省級公司和專業公司申請使用。平臺共部署集群規模上百節點,存儲數據量數十PB,由租戶開發大數據應用,支撐了應用的快速迭代開發及上線。
經過為期半年的應用實踐,目前基于云化的大數據PaaS平臺主要承載了信用分應用和暢游業務兩大業務應用,初步驗證了大數據PaaS平臺的能力。
信用分應用通過對移動用戶的身份特征、消費能力、人脈關系、信用歷史、行為偏好這5個維度客觀地呈現個人的信用價值。通過信用分應用可以優化移動內部服務,并擴展外部合作。信用分應用覆蓋11億用戶和200多個脫敏標簽數據,共包含12個月的數據周期。該應用僅通過4周就在PaaS平臺上完成了需求分析、數據導入、9輪建模評估、6輪聯調測試和上線試商用,上線后,信用分應用于2017年8月底開始試商用,到同年10月底累計訪問量已經超過8億次。9?11月信用分查詢次數增長趨勢如圖10所示。

圖10 信用分查詢次數增長趨勢
在組織的iPhone購機活動、“雙十一”、開發者大會等市場營銷活動中,基于PaaS的大數據平臺利用資源的彈性擴展能力,有效支撐了活動過程中用戶訪問量的激增。后續將支撐多渠道信用購機、國際漫游信用免押金等多種場景。
暢游業務主要通過分析國際漫游用戶的通話和流量,利用機器學習識別沉默用戶,開展國際漫游精準營銷。暢游應用基面向北京、上海等4省市300萬國際漫游移動用戶,基于用戶信息、國際漫游用戶訪問信息、漫游通話交往圈信息等公共數據資產,租戶僅3周就完成了業務的需求分析、數據導入、模型開發、界面開發和上線發布。暢游業務實現了國際漫游沉默用戶分析等應用,充分利用營銷資源進行沉默客戶激活。暢游業務的展示界面如圖11所示。

圖11 暢游業務系統展示
基于PaaS的大數據云化平臺的應用效果表明,該平臺可以有效地為多租戶提供統一的全網數據資源;在大數據開發過程中提升了開發效率,縮短了應用的上線周期;彈性擴展能力可以有效地利用資源支撐業務突發。表2 從硬件資源準備時間、開發工具準備時間、數據準備時間、應用部署時間及資源利用率幾大方面,分析了基于PaaS的大數據云化平臺與傳統大數據平臺的差異。

表2 開發模式優勢對比
本文提出了一種基于PaaS技術的大數據云化平臺方案,分析了中國移動大數據應用中的問題和挑戰,給出了大數據PaaS平臺的系統框架。針對租戶模型、服務接入、資源調度、彈性伸縮等關鍵環節,給出了技術解決方案。基于該平臺,實現了多個開發單位的應用開發和應用部署上線,同時業務單位在平臺實際開展了開發和應用部署,證明該方案達到了預期效果。
在今后的工作中,在應用設計中結合微服務松耦合、上線敏捷、應用彈性的優勢,在PaaS能力方面構建深度學習框架及機器學習能力等成為研究的重點。未來中國移動會著力于打造良好的大數據生態圈,吸引更多的合作伙伴基于該平臺構建百花齊放的應用。
[1] Gartner. Platform as a service(PaaS)[EB/OL].(2014-04-28)[2017-11-28]. https://www.gartner.com/it-glossary/platform-as- a-service-paas/.
[2] 齊磊, 張海峰, 張天驍, 等. 基于容器技術的PaaS云平臺方案[J]. 電信科學, 2017, 33(4): 177-182.
QI L, ZHANG H F, ZHANGT X, et al. PaaS cloud platform based on container technology[J]. Telecommunications Science, 2017, 33(4): 177-182.
[3] VERMA A, PEDROSA L, KORUPOLU M, et al. Large-scale cluster management at Google with Borg[C]//10th European Conference on Computer Systems, April 21-24, 2015, Bordeaux, France. New York: ACM Press, 2015: 18.
[4] 張基, 李大中, 張呈宇, 等. DC/OS關鍵技術與應用場景[J]. 電信科學, 2016, 32(12): 13-19.
ZHANG J, LI D Z, ZHANG C Y, et al. Key technologies and application scenario of DC/OS[J]. Telecommunications Science, 2016, 32(12): 13-19.
[5] BERNSTEIN D. Containers and cloud: from LXC to Docker to Kubernetes[J]. IEEE Cloud Computing, 2015, 1(3): 81-84.
[6] BALALAIE A, HEYDARNOORI A, JAMSHIDI P. Microservices Architecture enables DevOps: migration to a cloud-native architecture[J]. IEEE Software , 2016 , 33 (3): 42-52.
[7] 王峰, 雷葆華. Hadoop分布式文件系統的模型分析[J]. 電信科學, 2010, 26(12): 95-99.
WANG F, LEI B H. Modeling and analysis of Hadoop distributed file system[J]. Telecommunications Science, 2010, 26(12): 95-99.
[8] KONAR M. Apache Hadoop YARN: yet another resource negotiator[C]//ACM Symposium on Cloud Computing, Oct 1-3, 2013, Santa Clara, CA, USA. New York: ACM Press, 2013: 5.
[9] LU X, LIANG F, WANG B, et al. DataMPI: Extending MPI to Hadoop-like big data computing[C]//International Parallel and Distributed Processing Symposium, May 19-23, 2014, Phoenix, Arizona, USA. Piscataway: IEEE Press, 2014: 829-838.
[10] 鄭文武, 李先緒, 黃執勤. 云計算中的并行計算技術分析[J]. 電信科學, 2012, 27(12): 31-38.
ZHENG W W, LI X X, HUANG Z Q. Technolical analysis of parallel computing in cloud computing[J]. Telecommunications Science, 2012, 27(12): 31-38.
[11] 李小寧, 李磊, 金連文, 等. 基于OpenStack構建私有云計算平臺[J]. 電信科學, 2012, 27(9): 1-8.
LI X N, LI L, JIN L W, et al. Constructing a private cloud computing platform based on OpenStack[J]. Telecommunications Science, 2012, 27(9): 1-8.
Applications of a big data platform based on PaaS
XU Haiyong, HUANG Yan
China Mobile Communications Groups Co., Ltd., Beijing 100032, China
As a platform of data storage, processing, and service, big data platform needs to support internal and external various big data applications. A solution applied PaaS technology to the big data platform was proposed. Details of the key technical solutions such as the architecture of PaaS cloud computing platform, hierarchical scheduling scheme, multi-tenant management and global scheduling of Hadoop tasks were described. It was proved that the platform could remarkably improve big data application development efficiency and help application deployment fast. In the meantime, good elastic scaling capability can effectively improve big data application system resource utilization.
big data, PaaS, Hadoop, YARN scheduler, cloud service
TP311
A
10.11959/j.issn.1000?0801.2018043
2017?11?15;
2017?12?01
徐海勇(1970?),男,中國移動通信集團有限公司業務支撐系統部總經理、高級工程師,主要研究方向為移動通信、互聯網、大數據。

黃巖(1976?),男,中國移動通信集團有限公司業務支撐系統部信息管理處經理、高級工程師,主要研究方向為大數據、能力開放。