楊洪嬌
(天津外國語大學(xué),天津 300204)
基于Docker的高校網(wǎng)站自動部署應(yīng)用
楊洪嬌
(天津外國語大學(xué),天津 300204)
高校網(wǎng)站數(shù)量日益增多,如何針對高校網(wǎng)站設(shè)計資源利用率高、運行維護方便的網(wǎng)站部署管理方案成為研究的方向。文章利用Docker虛擬化平臺,針對高校網(wǎng)站運行環(huán)境相對統(tǒng)一的特點,設(shè)計實現(xiàn)了基于Docker的自動部署應(yīng)用,實現(xiàn)網(wǎng)站自動發(fā)布部署。實際應(yīng)用測試表明,自動部署應(yīng)用不僅提高了網(wǎng)站部署維護效率,而且進一步提升數(shù)據(jù)中心資源利用率。
Docker;高校網(wǎng)站;自動部署
隨著高校信息化建設(shè)的不斷深入,高校各業(yè)務(wù)部門的信息化項目不斷增多,數(shù)據(jù)中心所承載的網(wǎng)站及信息系統(tǒng)應(yīng)用數(shù)量急劇增加,大量網(wǎng)站應(yīng)用和信息系統(tǒng)部署運維呈現(xiàn)以下特點及問題。
(1)傳統(tǒng)虛擬化平臺資源利用率不高。高校網(wǎng)站類應(yīng)用中,宣傳展示類網(wǎng)站占比高,運行負載相對較小。雖然傳統(tǒng)虛擬化手段已較大提高資源利用效率,但仍需為每個網(wǎng)站應(yīng)用部署虛擬機。
(2)托管網(wǎng)站運行環(huán)境相對統(tǒng)一。高校業(yè)務(wù)部門網(wǎng)站應(yīng)用運行環(huán)境大都集中在使用Tomcat+Mysql運行環(huán)境、Apache+Mysql運行環(huán)境、IIS運行環(huán)境等平臺上。尤其對宣傳類網(wǎng)站,其開發(fā)方式及運行環(huán)境相對統(tǒng)一,重復(fù)部署運行平臺同樣降低網(wǎng)站部署和運維的效率。
(3)網(wǎng)站應(yīng)用需要快速部署和遷移。大量網(wǎng)站運行除了需要快速部署完成上線外,還需要實現(xiàn)運維管理、監(jiān)控等功能高效執(zhí)行,保證故障遷移等過程中的服務(wù)高可用性。
基于上述網(wǎng)站應(yīng)用的特點及問題,本文提出了在Docker虛擬化平臺上實現(xiàn)應(yīng)用自動部署的解決方案。利用虛擬化工具、自動化腳本等技術(shù)針對不同的部署方案實現(xiàn)網(wǎng)站應(yīng)用的快速自動化部署。
2.1 Docker虛擬化平臺
Docker利用容器技術(shù)實現(xiàn)高效的應(yīng)用運行平臺。與虛擬機不同的是,運行的容器并不綁定整個操作系統(tǒng),它僅把需要的運行庫及配置打包成容器獨立運行,并能保證在任何Docker平臺上都穩(wěn)定運行。Docker鏡像保存著容器運行所需的運行環(huán)境及配置信息,鏡像來自于倉庫,并且采用分層存儲的文件系統(tǒng),提高復(fù)用性。
高校網(wǎng)站自動部署工具主要利用Docker平臺的運維解決方案,利用容器技術(shù)快速建立網(wǎng)站應(yīng)用的獨立運行環(huán)境并部署。
2.2 Rancher Docker管理系統(tǒng)
Rancher是Docker的一個管理系統(tǒng),使得Docker平臺更方便地實現(xiàn)集群化管理、應(yīng)用監(jiān)控等功能,適應(yīng)生產(chǎn)環(huán)境的需要。
要將Docker平臺引入生產(chǎn)環(huán)境,需要考慮Docker的集群部署與管理、安全技術(shù)、與容器技術(shù)相關(guān)的網(wǎng)絡(luò)管理等組件。Rancher正是集成了相關(guān)技術(shù)的一整套Docker管理系統(tǒng),利用Rancher內(nèi)置的基礎(chǔ)設(shè)施服務(wù),可將Docker部署于虛擬主機或云平臺等系統(tǒng)上,并支持基于Kubernetes等技術(shù)的集群管理技術(shù)。同時,Rancher系統(tǒng)提供了基于Environment,Stack,Service等概念的容器部署管理平臺。Environment作為區(qū)分不用應(yīng)用場景的平臺,包含多個Stack,同一個Stack下有多個Service,可分別負責(zé)網(wǎng)站前端、數(shù)據(jù)庫服務(wù)等功能,對同一個Service,可以是一個或多個運行的Docker容器,并可部署在多臺由Rancher管理的主機上。
Rancher提供了良好的可視化管理界面,對Docker集群和服務(wù)進行集中管理和控制,同時,Rancher也提供了Rancher CLI管理環(huán)境,可以根據(jù)實際生產(chǎn)業(yè)務(wù)需要進行Rancher的自定義開發(fā)。
2.3 Compose文件
Compose文件是一個YAML格式的文件,用于定義容器的服務(wù)、網(wǎng)絡(luò)以及卷等信息。相比利用Docker命令方式傳遞服務(wù)配置,Compose文件更利于管理容器配置,與Docker命令配合更可應(yīng)用于特定業(yè)務(wù)場景,實現(xiàn)自定義的容器管理。Compose文件所定義的主要配置包括服務(wù)使用的鏡像、對外開放的端口、掛載的外部存儲等信息。
在高校數(shù)據(jù)中心管理過程中,傳統(tǒng)的網(wǎng)站應(yīng)用發(fā)布過程往往需要在建立好虛擬化環(huán)境后手動進行網(wǎng)站服務(wù)的發(fā)布和服務(wù)配置工作。Docker服務(wù)的部署通過鏡像倉庫中的鏡像實現(xiàn)。
借助于Docker平臺的快速部署及鏡像定制功能,采用自動化的腳本,針對不同的環(huán)境開發(fā)自動化部署工具,發(fā)布網(wǎng)站應(yīng)用僅需提供發(fā)布內(nèi)容及配置文件即可自動化部署。自動部署應(yīng)用主要由部署信息管理、自動部署管理端以及自動化部署程序組成。
3.1 自動部署配置管理模塊
自動部署應(yīng)用根據(jù)校園網(wǎng)網(wǎng)站的特點,針對不同運行環(huán)境抽象出相應(yīng)的配置項目,使用時僅對相應(yīng)配置進行設(shè)置并提供部署文件即可快速部署。如用戶發(fā)布基于Tomcat運行環(huán)境的應(yīng)用,在自動部署時選擇Tomcat版本及JDK環(huán)境,并提供網(wǎng)站應(yīng)用的名稱、數(shù)據(jù)庫名稱及連接密碼、上傳的發(fā)布目錄名即可。
網(wǎng)站自動部署應(yīng)用自動解析處理相關(guān)配置并實現(xiàn)快速部署,只需設(shè)置應(yīng)用暴露給用戶的選項并上傳部署文件即可完成快速部署。
3.2 自動部署管理界面
自動部署管理模塊對通過自動部署應(yīng)用進行部署的網(wǎng)站進行全生命周期的管理,包括網(wǎng)站上線、網(wǎng)站備份、網(wǎng)站變更、網(wǎng)站下線等管理,還可利用Rancher管理平臺對應(yīng)用使用的基礎(chǔ)設(shè)置進行查看和配置,包括服務(wù)所在的Docker主機、冗余部署數(shù)量、訪問地址及端口等信息。
3.3 自動部署程序模塊
應(yīng)用自動部署程序模塊是網(wǎng)站自動部署應(yīng)用的核心功能,模塊對由管理端傳入的應(yīng)用配置信息及部署文件進行解析。
3.3.1 Docker鏡像生成
在程序?qū)ε渲眯畔⑦M行解析后,首先進行應(yīng)用鏡像生成步驟,鏡像生成包括網(wǎng)站部署鏡像和數(shù)據(jù)庫服務(wù)鏡像。根據(jù)用戶選擇的發(fā)布環(huán)境和運行環(huán)境,選擇對應(yīng)的鏡像作為網(wǎng)站部署基礎(chǔ)鏡像,將用戶的部署文件復(fù)制到網(wǎng)站部署基礎(chǔ)鏡像中,并記錄該鏡像的版本號,生成本次部署的鏡像文件。根據(jù)用戶選擇的數(shù)據(jù)庫版本選擇對應(yīng)的數(shù)據(jù)庫基礎(chǔ)鏡像,并將用戶部署文件中的數(shù)據(jù)庫初始化文件復(fù)制入鏡像內(nèi),用于Docker鏡像啟動時初始化數(shù)據(jù)庫信息。之后把生成的鏡像上傳至鏡像倉庫,方便后續(xù)使用時調(diào)用。
3.3.2 Docker Compose文件生成
Compose文件主要包括Services,Volumes等設(shè)置,Services定義啟動的Docker服務(wù)的信息,如使用的鏡像、外部目錄、開放的端口等信息。Compose配置還包括Volumes信息,用于配置對應(yīng)鏡像掛載的外部目錄,由Rancher的基礎(chǔ)設(shè)施服務(wù)提供支持,配置后在Docker服務(wù)啟動后將加載Volumes目錄中存儲的網(wǎng)站發(fā)布文件。
3.3.3 啟動Docker服務(wù)
利用Rancher CLI命令工具連接至Rancher管理系統(tǒng),解析生成的Compose文件并由Rancher系統(tǒng)啟動Docker服務(wù)。Rancher CLI連接時需要提供Rancher的服務(wù)器地址及Access-Key,Secrey-Key,以保證連接的安全性,Rancher CLI提供包括上傳Compose文件在內(nèi)的多個命令,可以方便地用命令管理Docker鏡像,在上傳Compose文件的同時可以指定相應(yīng)的Stack名稱,方便在Rancher頁面對網(wǎng)站應(yīng)用進行管理。
3.4 自動部署應(yīng)用測試
本文以基于Tomcat8+JDK7的網(wǎng)站發(fā)布環(huán)境與MySQL數(shù)據(jù)庫環(huán)境為例,進行網(wǎng)站自動部署的測試,在登陸自動部署管理界面后,從選擇框中選擇對應(yīng)的網(wǎng)站發(fā)布環(huán)境,在配置管理區(qū)域中進行發(fā)布配置,設(shè)置網(wǎng)站應(yīng)用連接MySQL的數(shù)據(jù)庫名稱及密碼,以及網(wǎng)站發(fā)布文件的目錄名、開放訪問的端口及Rancher Stack的顯示名稱。
在完成配置及選擇網(wǎng)站應(yīng)用文件后,即可點擊上傳并發(fā)布按鈕,自動部署應(yīng)用自動將網(wǎng)站目錄上傳并解析配置信息,最后由Rancher根據(jù)Compose文件執(zhí)行服務(wù)啟動命令。實際測試中,上傳完成后僅需13s即可通過配置的端口號訪問到發(fā)布的網(wǎng)站服務(wù),極大地便捷了網(wǎng)站發(fā)布的流程,提高了發(fā)布管理的效率。
本文利用Docker虛擬化技術(shù),針對高校校園網(wǎng)網(wǎng)站發(fā)布模式相對固定,資源占用相對較低,但是數(shù)量較多且需要集中管理的問題,設(shè)計實現(xiàn)了基于Docker的高校網(wǎng)站自動部署應(yīng)用,利用Rancher管理平臺實現(xiàn)網(wǎng)站的快速自動部署,提高部署效率的同時也提高了虛擬系統(tǒng)的資源利用效率。最后,本文以Tomcat及MySQL發(fā)布平臺為例進行應(yīng)用測試,實現(xiàn)了網(wǎng)站的自動部署功能。下一步的工作需要進一步加強網(wǎng)站的全生命周期管理,另外對眾多已經(jīng)部署的網(wǎng)站日志文件進行匯總、分析等利用開發(fā)也需要進一步研究。
[1]謝超群.Docker 容器技術(shù)在高校數(shù)據(jù)中心的應(yīng)用[J].貴陽學(xué)院學(xué)報(自然科學(xué)版),2015(4):27-29.
[2]劉熙,胡志勇.基于Docker容器的Web集群設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2016(8):117-119.
[3]彭勇,謝劍,童遙,等.一種基于Docker的數(shù)據(jù)中心云平臺實現(xiàn)方法及系統(tǒng)[J].中興通訊技術(shù),2017(2):60-62.
Application of websites automatic deployment based on Docker in colleges and universities
Yang Hongjiao
(Tianjin Foreign Studies University, Tianjin 300204, China)
The number of websites in colleges and universities is increasing day by day. How to design a websites deployment scheme with high utilization rate, easy to operate and maintain is the direction of research in colleges and universities. Based on the Docker virtualization platform, aiming at the characteristics of the relatively uniform running environment of the website in colleges and universities, this paper designs and realizes the application of websites automatic deployment based on Docker, to realize the websites automatic deployment. The practical application tests show that application of automated deployment not only improves the ef fi ciency of website deployment maintenance, but also further enhances the utilization of data center resource .
Docker; websites in colleges and universities; automatic deployment
楊洪嬌(1988— ),男,河北石家莊人,碩士,助理工程師;研究方向:模式識別和圖像處理。