賀宗平+張曉東+曹萍



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