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