賀宗平+張曉東+曹萍
摘要:本文首先介紹了高校IT平臺(tái)的體系架構(gòu)現(xiàn)狀,分析了智慧校園大數(shù)據(jù)平臺(tái)建設(shè)的意義和需求,著重闡述了PaaS層在持續(xù)集成中的重要地位和作用,通過(guò)引入Docker容器技術(shù),對(duì)大數(shù)據(jù)平臺(tái)組件和上層應(yīng)用系統(tǒng)進(jìn)行容器化,結(jié)合自動(dòng)化管理系統(tǒng)、私有代碼倉(cāng)庫(kù)等工具,高效地實(shí)現(xiàn)了智慧校園大數(shù)據(jù)平臺(tái)從開(kāi)發(fā)、測(cè)試到部署的持續(xù)集成流程與框架。
關(guān)鍵詞: 容器; Docker; 大數(shù)據(jù)平臺(tái); 持續(xù)集成
中圖分類(lèi)號(hào): TP311
文獻(xiàn)標(biāo)志碼:A
文章編號(hào):2095-2163(2017)05-0038-03
Abstract:This paper first introduces the present status of the architecture of the IT platform in colleges and universities, analyzes the significance and demand of the big data platform construction for the intelligent campus, and expounds the important position and function of the PaaS layer in the continuous integration. By introducing the Docker container technology, the research develops components and the upper application system for containerization, combined with automated management system, private code warehouse and other tools, efficiently implements the continuous integration processes and framework of the intelligent campus big data platform from development, testing to the deployment.
Keywords: container; Docker; big data; continuous integration
基金項(xiàng)目: 南京審計(jì)大學(xué)2016年高教研究課題(2016JG027)。
0引言
大數(shù)據(jù)平臺(tái)正成為一種重要的軟件平臺(tái)設(shè)施,對(duì)于高校開(kāi)展智慧校園相關(guān)的信息化建設(shè)有著重要的作用,其建設(shè)、管理和運(yùn)維關(guān)系到高校的教學(xué)科研、行政管理等全方面信息化、智能化管理水平的提升。隨著大數(shù)據(jù)平臺(tái)的體系架構(gòu)走向成熟,加上容器技術(shù)的逐步推廣使用,IT產(chǎn)業(yè)界開(kāi)始擁抱"Docker容器 + 大數(shù)據(jù)平臺(tái)"。Docker容器能夠讓大數(shù)據(jù)平臺(tái)的架構(gòu)部署更加快捷簡(jiǎn)單,讓上層應(yīng)用系統(tǒng)的開(kāi)發(fā)、集成、部署更加敏捷高效,無(wú)縫對(duì)接測(cè)試與生產(chǎn)環(huán)境,讓敏捷開(kāi)發(fā)(Agile development)的持續(xù)集成理念真正落地。因此,開(kāi)展基于容器技術(shù)的大數(shù)據(jù)平臺(tái)持續(xù)集成相關(guān)技術(shù)研究,對(duì)于智慧校園的建設(shè)具有十分重要現(xiàn)實(shí)意義。
1高校大數(shù)據(jù)平臺(tái)建設(shè)的挑戰(zhàn)與需求
在互聯(lián)網(wǎng)IT技術(shù)飛速發(fā)展的背景下,高校的科研教學(xué)、行政管理、后勤服務(wù)、安全保衛(wèi)等各項(xiàng)業(yè)務(wù)工作的信息化、智能化需求急劇擴(kuò)張,對(duì)IT平臺(tái)的數(shù)據(jù)存儲(chǔ)、處理以及應(yīng)用開(kāi)發(fā)的及時(shí)響應(yīng)能力提出了升級(jí)轉(zhuǎn)型的需求。為此,將給出研究闡釋如下。
1.1當(dāng)前高校IT平臺(tái)的現(xiàn)狀
與一般政府、企業(yè)等機(jī)構(gòu)相比,高校的IT架構(gòu)既存在一般性,也具有行業(yè)特殊性,目前的主流體系仍然是包括了IaaS、PaaS、SaaS的3層架構(gòu)。高校IT平臺(tái)體系架構(gòu)設(shè)計(jì)可見(jiàn)于圖1。這里,即針對(duì)各層的技術(shù)功能可做如下解析。[JP]
1)IaaS層。一般高?,F(xiàn)有的IT設(shè)施平臺(tái)具備了一定的系統(tǒng)集成基礎(chǔ)、架構(gòu)彈性擴(kuò)展能力,通過(guò)建設(shè)數(shù)據(jù)中心、運(yùn)用vSphere等虛擬化技術(shù)、實(shí)施集群架構(gòu),實(shí)現(xiàn)了基礎(chǔ)設(shè)施即服務(wù)的能力,為高校內(nèi)部提供了較為完備的基礎(chǔ)資源支撐服務(wù)。
2)PaaS層。某種程度上也可以是一種中間件, PaaS指的是一整套開(kāi)發(fā)和分發(fā)應(yīng)用的解決方案,是系統(tǒng)集成和部署的關(guān)鍵層,包括了集群管理、應(yīng)用開(kāi)發(fā)管理、數(shù)據(jù)倉(cāng)庫(kù)管理、應(yīng)用開(kāi)發(fā)協(xié)作等具體內(nèi)容。
3)SaaS層。這一層就是現(xiàn)實(shí)業(yè)務(wù)應(yīng)用層,通過(guò)Web、信息門(mén)戶以及獨(dú)立應(yīng)用系統(tǒng)等方式設(shè)計(jì)建立服務(wù),直接面對(duì)高校的教學(xué)、科研人員以及行政管理人員等。
IaaS層和SaaS層的界定相對(duì)清晰,IaaS層是對(duì)硬件資源的統(tǒng)一管理調(diào)度,SaaS層就是用于發(fā)布生成應(yīng)用服務(wù)。而PaaS層則是整個(gè)IT平臺(tái)的技術(shù)管理難度居首的一個(gè)層級(jí),從定位上看,PaaS層是一個(gè)中間層次,承接了上下2個(gè)“軟、硬”資源層的協(xié)調(diào)交互,既要實(shí)施對(duì)第一層IaaS計(jì)算資源的進(jìn)一步抽象和管理,又要為SaaS應(yīng)用層的開(kāi)發(fā)、集成、部署提供接口和工具支撐。
1.2高校大數(shù)據(jù)平臺(tái)的建設(shè)需求
伴隨著高校信息化水平的提升,各種業(yè)務(wù)應(yīng)用已經(jīng)產(chǎn)生了數(shù)據(jù)存儲(chǔ)分析、深度挖掘的需求。無(wú)論種類(lèi)各異的業(yè)務(wù)應(yīng)用還是科研過(guò)程,都向傳統(tǒng)的數(shù)據(jù)庫(kù)平臺(tái)提出了新的建設(shè)目標(biāo)和能力需求。但是在高校的大數(shù)據(jù)平臺(tái)建設(shè)定位中,不能簡(jiǎn)單地套用互聯(lián)網(wǎng)行業(yè)的大數(shù)據(jù)平臺(tái)標(biāo)準(zhǔn),高校的應(yīng)用場(chǎng)景目前還沒(méi)有頻繁度極高的并發(fā)事務(wù)響應(yīng)需求,對(duì)實(shí)時(shí)計(jì)算的能力要求一般集中在科研實(shí)驗(yàn)方面,業(yè)務(wù)應(yīng)用的各項(xiàng)數(shù)據(jù)服務(wù)標(biāo)準(zhǔn)并不需要完全復(fù)制互聯(lián)網(wǎng)行業(yè)。
從研發(fā)人力資源上看,高校內(nèi)部常規(guī)情況下并未配備專(zhuān)業(yè)從事系統(tǒng)研發(fā)的團(tuán)隊(duì),多數(shù)是以外包服務(wù)的方式進(jìn)行開(kāi)發(fā)部署。這種情況帶來(lái)一個(gè)切實(shí)顯著的問(wèn)題是:應(yīng)用系統(tǒng)后期的版本維護(hù)、升級(jí)往往難以跟上業(yè)務(wù)部門(mén)的需求變化,第三方廠家的服務(wù)能力局限度較高;面對(duì)龐大復(fù)雜的系統(tǒng)架構(gòu),由于研發(fā)人力資源的匱乏,難以協(xié)同配置代碼改進(jìn)、提交測(cè)試、集成部署等諸多環(huán)節(jié)。如何在研發(fā)、運(yùn)維人力資源有限的條件下應(yīng)對(duì)平臺(tái)系統(tǒng)頻繁迭代升級(jí)的需求增長(zhǎng),成為亟需解決的焦點(diǎn)難題。endprint
從平臺(tái)整體架構(gòu)上來(lái)看,PaaS層往往是高校數(shù)據(jù)平臺(tái)建設(shè)容易忽略的重點(diǎn),由于高校并不是專(zhuān)業(yè)研發(fā)機(jī)構(gòu),對(duì)于PaaS層的理解缺乏實(shí)踐指導(dǎo)。PaaS層是平臺(tái)資源服務(wù)化接口,PaaS的支撐能力關(guān)系到上層應(yīng)用研發(fā)的全流程,尤其是在系統(tǒng)持續(xù)集成、部署環(huán)節(jié),PaaS能夠?qū)崿F(xiàn)自動(dòng)化管理,大幅降低人工運(yùn)維的復(fù)雜性,使得Web應(yīng)用的開(kāi)發(fā)部署變得更加敏捷,能夠快速響應(yīng)業(yè)務(wù)需求變化,提高整體研發(fā)效率,節(jié)約了版本迭代成本,帶來(lái)極大的便利性。
2Docker容器技術(shù)與持續(xù)集成
高校的智慧校園大數(shù)據(jù)平臺(tái)是未來(lái)信息門(mén)戶以及各種應(yīng)用系統(tǒng)服務(wù)的運(yùn)行基礎(chǔ),向應(yīng)用層提供可靠的數(shù)據(jù)存儲(chǔ)抽取、分析挖掘等服務(wù)編程接口,從某種程度上來(lái)說(shuō),大數(shù)據(jù)平臺(tái)本身就是一種PaaS的具體實(shí)現(xiàn)。大數(shù)據(jù)平臺(tái)的構(gòu)成通常包括了Hadoop、Spark、Storm等軟件平臺(tái)環(huán)境,系統(tǒng)配置復(fù)雜、管理維護(hù)成本高,如何構(gòu)設(shè)開(kāi)發(fā)、測(cè)試、生產(chǎn)三者一致的環(huán)境,降低系統(tǒng)組件部署、遷移、升級(jí)的成本和時(shí)間,是大數(shù)據(jù)平臺(tái)建設(shè)的重點(diǎn)與難點(diǎn)。對(duì)于高校來(lái)說(shuō),PaaS層建設(shè)完善的目的在于形成優(yōu)異的持續(xù)集成能力,具備一套完整的項(xiàng)目構(gòu)建、提交測(cè)試、部署上線的自動(dòng)化工具,可以根據(jù)客觀需求和管理需要,進(jìn)行動(dòng)態(tài)靈活的配置。
Docker容器技術(shù)是一種輕量級(jí)的虛擬化技術(shù),資源占用少、運(yùn)行速度快,以進(jìn)程隔離的方式構(gòu)建了運(yùn)行環(huán)境的隔離,可以在單臺(tái)物理機(jī)上運(yùn)行多個(gè)容器,可利于推進(jìn)集群管理,對(duì)于配置管理大數(shù)據(jù)平臺(tái)有著較強(qiáng)的優(yōu)勢(shì),更能方便在大數(shù)據(jù)平臺(tái)建設(shè)中實(shí)踐持續(xù)集成的理念。Docker相關(guān)的基本概念如表1所示。
綜合概括Docker容器應(yīng)用于持續(xù)集成領(lǐng)域,主要有3個(gè)方面的特點(diǎn)優(yōu)勢(shì)可概述如下:
1)高性能虛擬化。通過(guò)部署Docker能夠有效利用閑置計(jì)算資源,Docker容器的運(yùn)行不需要硬件層面Hypervisor支持,利用內(nèi)核級(jí)虛擬化技術(shù),既達(dá)到高性能效率的目標(biāo),又重點(diǎn)保證了容器具有很好的隔離性,基于Docker部署的平臺(tái)和應(yīng)用系統(tǒng)可以達(dá)到秒級(jí)啟動(dòng)的速度。
2)快速集成部署。通過(guò)Docker可以管理系統(tǒng)開(kāi)發(fā)測(cè)試、集成部署的整個(gè)流程,Docker的容器和鏡像概念已經(jīng)成為行業(yè)標(biāo)準(zhǔn),鏡像是標(biāo)準(zhǔn)的交付件,通過(guò)對(duì)鏡像的編排、分發(fā)、部署等管理操作,結(jié)合Jenkins等自動(dòng)化集成管理工具,實(shí)現(xiàn)對(duì)基礎(chǔ)平臺(tái)和應(yīng)用系統(tǒng)的迭代式構(gòu)建,達(dá)成平臺(tái)系統(tǒng)快速高效的技術(shù)定制集成部署。
3)輕松遷移擴(kuò)展。Docker通過(guò)用“微服務(wù)”的方式組織編排系統(tǒng),便于部署擴(kuò)展的服務(wù)組件,其產(chǎn)生的鏡像是跨平臺(tái)的,無(wú)需考慮運(yùn)行環(huán)境依賴等諸多問(wèn)題,實(shí)現(xiàn)了測(cè)試環(huán)境和生產(chǎn)環(huán)境遷移一致性,真正做到“一次編譯,到處運(yùn)行”。
3智慧校園大數(shù)據(jù)平臺(tái)建設(shè)的持續(xù)集成
智慧校園大數(shù)據(jù)平臺(tái)的持續(xù)集成重點(diǎn)在于關(guān)注解決2個(gè)焦點(diǎn)問(wèn)題:一是能夠快速響應(yīng)數(shù)據(jù)應(yīng)用層的需求變化,踐行敏捷開(kāi)發(fā)的理念,實(shí)施分布式協(xié)同開(kāi)發(fā)、測(cè)試與集成部署,實(shí)現(xiàn)校內(nèi)外人力資源高效協(xié)同。二是能夠快速移植,真正做到“一次編譯、到處運(yùn)行”,以方便進(jìn)行大數(shù)據(jù)平臺(tái)的基礎(chǔ)架構(gòu)調(diào)試,動(dòng)態(tài)配置大數(shù)據(jù)平臺(tái)組件引擎。
3.1大數(shù)據(jù)平臺(tái)組件容器化
為了解決上述2個(gè)層面問(wèn)題,首先要實(shí)施大數(shù)據(jù)平臺(tái)架構(gòu)組件的容器化,將構(gòu)建大數(shù)據(jù)平臺(tái)的組件如Hadoop、Spark等通過(guò)Dockerfile定制生成鏡像,大數(shù)據(jù)平臺(tái)的組件運(yùn)行全部基于鏡像生產(chǎn)的容器,組件容器組成容器集群,通過(guò)Swarm、Mesos等容器集群管理工具進(jìn)行編排管理。
3.2應(yīng)用層系統(tǒng)容器化
高校內(nèi)部各種運(yùn)行在大數(shù)據(jù)平臺(tái)上的業(yè)務(wù)系統(tǒng)、Web應(yīng)用也要做到容器化部署。傳統(tǒng)的業(yè)務(wù)系統(tǒng)改進(jìn)升級(jí)上線,需要面對(duì)系統(tǒng)重新配置、項(xiàng)目編譯、環(huán)境依賴等多個(gè)繁雜的技術(shù)環(huán)節(jié)。通過(guò)Docker把應(yīng)用系統(tǒng)及相關(guān)依賴項(xiàng)打包成獨(dú)立可移植的鏡像,讓?xiě)?yīng)用系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)同樣基于Docker容器集成部署。
3.3構(gòu)建本地私有鏡像倉(cāng)庫(kù)
由于整個(gè)大數(shù)據(jù)平臺(tái)以及應(yīng)用系統(tǒng)進(jìn)行容器化改造,在系統(tǒng)測(cè)試、集成環(huán)節(jié)中必然產(chǎn)生大量的鏡像,可以通過(guò)構(gòu)建本地私有鏡像倉(cāng)庫(kù),以此有效管理維護(hù)這些鏡像。此外,很有必要采取對(duì)鏡像倉(cāng)庫(kù)進(jìn)行同步備份的機(jī)制,防止鏡像倉(cāng)庫(kù)丟失、損壞等意外情況。
3.4基于Docker容器的持續(xù)集成框架
通過(guò)實(shí)施大數(shù)據(jù)平臺(tái)整體的容器化構(gòu)建,使得在系統(tǒng)集成環(huán)節(jié)發(fā)生了質(zhì)變,無(wú)論是在應(yīng)用層的需求變化響應(yīng)還是平臺(tái)服務(wù)層的架構(gòu)調(diào)整,從基于源代碼級(jí)別的編譯構(gòu)建組件跨入基于鏡像的構(gòu)建容器,將持續(xù)集成的抽象層次提升了一個(gè)高度。
4結(jié)束語(yǔ)
在高校的智慧校園大數(shù)據(jù)平臺(tái)建設(shè)過(guò)程中,在引入互聯(lián)網(wǎng)IT產(chǎn)業(yè)界先進(jìn)技術(shù)平臺(tái)的同時(shí),應(yīng)當(dāng)同步學(xué)習(xí)先進(jìn)的開(kāi)發(fā)及運(yùn)維管理模式,通過(guò)結(jié)合運(yùn)用諸如Jenkins自動(dòng)化管理系統(tǒng)、Gitlab代碼倉(cāng)庫(kù)等工具,打通測(cè)試到上線的無(wú)縫轉(zhuǎn)接,實(shí)現(xiàn)端到端的持續(xù)集成,在專(zhuān)業(yè)研發(fā)人力資源有限的條件下,大幅降低系統(tǒng)集成部署的難度,提升大數(shù)據(jù)平臺(tái)以及相關(guān)應(yīng)用系統(tǒng)的持續(xù)集成的自動(dòng)化管理水平。
參考文獻(xiàn)
鄭玲,江萌. 基于Docker彈性調(diào)度架構(gòu)的研究[J]. 電腦編程技巧與維護(hù),2016(23):15-17.
[2] 李麗新. 基于Mesos和Docker構(gòu)建大數(shù)據(jù)平臺(tái)技術(shù)研究與應(yīng)用[J]. 吉林建筑大學(xué)學(xué)報(bào),2016,33(5):81-84.
[3] 張成. 基于Docker的持續(xù)集成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 蘇州:蘇州大學(xué),2016.
[4] 趙樂(lè)樂(lè),黃剛,馬越. 基于Docker的Hadoop平臺(tái)架構(gòu)研究[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(9):99-103.
[5] 鐘煒達(dá). 一種基于Docker的持續(xù)集成平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 廣州:華南理工大學(xué),2016.
[6] 李杰,劉廣鐘. Hadoop分布式集群的自動(dòng)化容器部署研究[J]. 計(jì)算機(jī)應(yīng)用研究,2016,33(11):3404-3407,3445.
[7] 陳存香,陳清金,張巖. Hadoop與Docker技術(shù)的融合[J]. 郵電設(shè)計(jì)技術(shù),2015 (5):5-8.
[8] 高珺. 以持續(xù)集成方式進(jìn)行系統(tǒng)自動(dòng)化部署[J]. 華東師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2015(S1):373-377.
[9] 王寧. 基于Jenkins的持續(xù)集成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué),2014.[ZK)][FL)]endprint