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