崔艷敏
摘要:隨著社會的不斷發(fā)展,人們對教育也越來越重視了,在現(xiàn)如今的大時代背景下各種新興技術都運用到了教育中,而今天我們要講的是基于Docker的課程實驗平臺設計與實現(xiàn),目前高校的計算機課程實驗教學中,很多老師都將PaaS平臺建立在虛擬機中,而虛擬機的消耗較大且資源有所不足,本文將根據(jù)高校師生的需求并結合高校計算機資源和網(wǎng)絡資源提出基于Docker的課程實驗平臺設計來支持高校計算機課程實驗教學,為高校的教育事業(yè)提供一點建議。
關鍵詞:教育;Docker;PaaS平臺;課程實驗平臺
隨著科技的不斷發(fā)展云計算也已經(jīng)運用到了各行各業(yè)之中,相對于傳統(tǒng)的虛擬化技術雖然隔離性和安全性不夠,但是容器技術更加的輕量化同時資源利用率較高,并且還非常容易部署,在現(xiàn)如今的計算機課程實驗教學中很多老師都是用的PaaS平臺來進行教學,雖然PaaS可以提供一個比較完善的開發(fā)環(huán)境,可以有效的節(jié)省開發(fā)部屬時間,但是PaaS平臺也有很多的缺陷,由于PaaS的很多基礎構建都在虛擬機中的,而虛擬機就會需要消耗很多的計算機資源,進而導致資源利用率低下的問題。同時在計算機實驗教學中,學生們在高校接受教育的過程中往往會學到很多需要進行實驗的課程如網(wǎng)站開發(fā)、java編程、網(wǎng)頁設計等,有些課程就需要在同一臺主機上安裝并部署虛擬機來更好的進行實驗,因此學生需要的是一個更加穩(wěn)定的開發(fā)環(huán)境來進行相關的實驗,所以必須要將PaaS平臺進行改善,實現(xiàn)運行環(huán)境的多樣化并提高資源的利用效率,降低消耗。要做到這幾點我們就需要進行鏡像模塊設計、資源調(diào)度設計、平臺基礎構建設計、控制臺設計等,只要將這些模塊設計完成后就能夠實現(xiàn)基于Docker的課程實驗平臺,該平臺將會具有Docker哦容器的創(chuàng)建、刪除[1]、彈性伸縮、日子、監(jiān)控和吃就會存儲等功能。
1 設計概要
基于Docker的課程實驗平臺的設計主要是將實際的實驗鏡像托管到PaaS管理的云基礎設施中。這樣不僅能夠預防操作系統(tǒng)上過多的服務軟件沖突還能節(jié)省機房PC機安裝的維護和同傳工作。按照這種結構實現(xiàn)PaaS(平臺即服務)和IaaS(基礎設施即服務)的協(xié)同工作,同時還能達到高端開發(fā)周期,實現(xiàn)有效的提高計算機資源利用率的目的,并且降低了成本。課程實驗平臺則主要是由課程實驗鏡像管理模塊、集群管理模塊、web管理服務模塊、Docker容器服務模塊和資源調(diào)度模塊組成的。
2 基于Docker的課程實驗平臺實現(xiàn)
2.1 Docker容器服務模塊實現(xiàn)
Docker容器服務模塊主要是給普通用戶在使用課程實驗平臺的時候提供一個個人容器的管理服務。鏡像存儲的運行實例就是Docker容器,而要想啟動Docker容器有兩種方法:(1)處于終止狀態(tài)下容器進行重新啟動[2],這種方法需要用戶使用命令“docker psa”來獲取終止狀態(tài)下的容器,同時使用命令“docker start”加速容器id啟動終止狀態(tài)下的容器;(2)基于鏡像狀態(tài)下時新建容器然后啟動,這種方法需要用戶通過“Docker Private Registr”下載鏡像進而創(chuàng)建出容器再進行啟動。
Docker課程實驗平臺的實現(xiàn)步驟:1.老師讓學生在做實驗的時候在web運行端運行“docker run”命令。2.系統(tǒng)會自動在本地鏡像中尋找所需要的鏡像,如果沒有找到就需要手動在鏡像庫中進行下載。3.在鏡像狀態(tài)下創(chuàng)建一個容器然后啟動,啟動完成后給容器分配一個文件系統(tǒng),同時在鏡像層中掛載可讀寫層。4.建立橋接關系同時給容器分配IP地址,然后執(zhí)行實驗所需的應用程序。
2.2 課程實驗鏡像管理模塊
在學生做實驗的時候,老師要將事先準備好的系統(tǒng)鏡像放到平臺上供學生選擇,讓學生在創(chuàng)建容器時使用作為容器的初始鏡像,這種系統(tǒng)鏡像就是PaaS平臺鏡像。老師可以通過鏡像管理模塊對鏡像進行創(chuàng)建[3]、打開、停止等操作,還能調(diào)整鏡像的一些參數(shù)。
課程實驗的Docker鏡像有兩種創(chuàng)建的方式:1.為既有鏡像創(chuàng)建容器,創(chuàng)建完成后并安裝相應的軟件,然后再運行“docker commit”命令保存鏡像。2.運行“docker build”命令,然后再執(zhí)行一個能夠自定義的Dockerfile,執(zhí)行完成后就在現(xiàn)有的鏡像基礎上創(chuàng)建一個新的layer。以第二種方式為例,在使用第二種方式的時候,老師可以根據(jù)本節(jié)課程中所需要的軟件和配置對Dockerfile文件進行自定義修改,一把是修改上一層image或者config信息。如執(zhí)行“run”命令功能就是修改上一層image的內(nèi)容,執(zhí)行“expose”命令則是捕獲當前容器暗雷的端口監(jiān)聽情況。具體的步驟如下:首先,老師利用Docker Client向Docker Server發(fā)送“docker build”命令,然后再將Dockerfile等內(nèi)容一并通過Docker Client 發(fā)送過去,在Docker Server接受到發(fā)送請求過后再將其發(fā)送到Docker Daemon,最后就能進行解析最終鏡像了。
2.3 資源調(diào)度模塊
想要實現(xiàn)資源調(diào)度模塊必須要做好以下四個步驟:請求[4]、探測、分配以及監(jiān)控,只要將著四個步驟全部完成才能夠實現(xiàn)整個平臺的資源調(diào)度功能。在高校的計算機機房中,通常有很多不同的班級上不同的實驗課,也就需要不同的實驗環(huán)境,所以為了讓不同的服務器資源平衡這個系統(tǒng)使用了Docker容器來作為Mesos的執(zhí)行器,扶著執(zhí)行所有的任務。
2.4 集群管理模塊
在集群管理模塊中,主要含有以下幾種核心功能:通信模塊功能、域名解析功能以及權限管理功能。老師在學校機房上計算機課程實驗課的時候,由于有很多的學生同時進行實驗就會同時用到Docker,這就需要合理的分配每個容器的IP地址了,所以老師需要在平臺中利用flannel網(wǎng)絡給各個容器分配IP地址,同時完善它的使用規(guī)則,并且使用內(nèi)網(wǎng)IP通信進行全面完善。域名解析功能主要是使用了SkyDNS當做集群服務器,同時它具有查找不同記錄的功能。
2.5 web管理服務模塊
Web管理服務模塊主要是能夠判斷在平臺使用過程中的使用者角色權限,然后呈現(xiàn)出兩個不同的門戶網(wǎng)站,兩個門戶網(wǎng)站都是前段管理平面的管理子系統(tǒng),一個是面向老師的管理門戶網(wǎng)站,一個是面向學生的實驗操作門戶。平臺的使用者們可以通過操作不同的門戶網(wǎng)站進而實現(xiàn)對整個平臺的維護和使用。
3 對比實驗
本次實驗的目的是對比Docker容器更KVM虛擬機兩種虛擬化方式會對性能造成的影響,測試準備會設置分配足夠的資源給測試的虛擬機以及容器。將Ubuntu Server設置為測試系統(tǒng),然后分別安裝KVM虛擬機軟件以及Docker容器,配置所需的參數(shù)并加以調(diào)試,這樣才能發(fā)揮最佳的性能,更好的比較出兩種虛擬化方式的優(yōu)劣。
由于PaaS平臺完全是依托Docker容器建立的,所以也有了Docker的問題,也就是Docker的運行操作系統(tǒng)平臺過于單一,并且相比于KVM虛擬機軟件來說隔離機制也比較差導致了安全性也相對低下,同時還存在了網(wǎng)絡管理機制薄弱和資源分配顆粒不精確的一系列問題。所以要想更好的使用Docker課程平臺進行實驗教學還需要我們在開發(fā)過程中進行深入的探討,盡可能的解決這些問題,優(yōu)化這個平臺的功能。
4 結語
雖然云計算技術的飛速發(fā)展使得PaaS技術運用到了各行各業(yè)之中,但是由于這種技術的操作手段過于簡單使得這一行的入行標準也隨著下降,但是PaaS技術的簡單,讓開發(fā)者能夠利用簡單的技術操作就能為用戶提供所需要的服務。綜上所述,文中簡單介紹了基于Docker的課程實驗平臺的實現(xiàn)原理和方法,只要構建出了平臺的五大模塊那么平臺也就基本成型了。但是即便Docker平臺構建完成也有很大的缺陷,如網(wǎng)絡管理機制薄弱和資源分配顆粒不精確等一系列問題,希望開發(fā)人員在進行開發(fā)的時候后能夠盡可能的探索各種優(yōu)化方案解決這些問題,為高校的教育事業(yè)盡一份力。
參考文獻:
[1]謝睿,段盛,于芳.基于Docker的課程實驗平臺設計與實現(xiàn)[J].邵陽學院學報(自然科學版),2018(4):38-42.
[2]孫曜文.基于容器的云端教學實驗平臺設計與實現(xiàn)[J].數(shù)字化用戶,2019(22):137-118.
[3]陳建鋒,羅家兵,黃福春.物聯(lián)網(wǎng)虛擬仿真實驗教育平臺——網(wǎng)絡和嵌入式網(wǎng)關層[J].實驗室研究與探索,2019(12):122-126.
[4]游向東,徐圓圓,歐陽松.基于Docker的大數(shù)據(jù)AI教學與實驗系統(tǒng)[J].軟件,2018(8):192-197.