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