摘 要:為了應(yīng)對MOOC虛擬實(shí)驗(yàn)平臺面臨的挑戰(zhàn),應(yīng)用虛擬化技術(shù)對其進(jìn)行優(yōu)化改造是現(xiàn)實(shí)的迫切需要。MOOC虛擬實(shí)驗(yàn)平臺可應(yīng)用的虛擬化技術(shù)主要有三種:在用戶端部署虛擬機(jī)鏡像、在IaaS云端部署虛擬機(jī)、在PaaS云端部署容器。這三種虛擬化技術(shù)各有其優(yōu)勢和不足,應(yīng)該根據(jù)實(shí)際應(yīng)用情境靈活選用。文章對虛擬化技術(shù)在MOOC虛擬實(shí)驗(yàn)平臺中的應(yīng)用策略進(jìn)行了詳細(xì)探討和分析,并對其后續(xù)的發(fā)展趨勢進(jìn)行了展望。
關(guān)鍵詞:虛擬化技術(shù);MOOC:虛擬實(shí)驗(yàn)平臺;應(yīng)用策略
中圖分類號:TP393? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ? ? ? 文章編號:1673-8454(2020)24-0088-05
大力加強(qiáng)MOOC虛擬實(shí)驗(yàn)平臺建設(shè),為遠(yuǎn)程學(xué)習(xí)者提供豐富、優(yōu)質(zhì)的虛擬實(shí)驗(yàn)課程資源,是改變MOOC實(shí)驗(yàn)教學(xué)薄弱現(xiàn)狀的重要途徑。但MOOC虛擬實(shí)驗(yàn)平臺目前還面臨著一些挑戰(zhàn)(例如,對學(xué)習(xí)者的信息化操作技能要求較高、軟件的兼容性問題較為突出、實(shí)驗(yàn)效果難以保持一致性等),如何正確、有效地應(yīng)對這些挑戰(zhàn)是現(xiàn)實(shí)的迫切需要。虛擬化技術(shù)作為云計(jì)算的核心支撐技術(shù),它把計(jì)算、存儲和應(yīng)用等信息處理變成了可以動態(tài)配置的資源,極大地提高了信息設(shè)施的利用率,能有效滿足靈活多變的信息服務(wù)需求[1]。因此,虛擬化技術(shù)在應(yīng)對MOOC虛擬實(shí)驗(yàn)平臺面臨的挑戰(zhàn)方面具有突出的價值和優(yōu)勢。本文試圖對虛擬化技術(shù)在MOOC虛擬實(shí)驗(yàn)平臺中的應(yīng)用問題進(jìn)行探討。
一、MOOC虛擬實(shí)驗(yàn)平臺目前面臨的挑戰(zhàn)
1.學(xué)習(xí)者需要預(yù)先下載和安裝相關(guān)的虛擬實(shí)驗(yàn)軟件,對其信息化操作技能要求較高
學(xué)習(xí)者利用MOOC虛擬實(shí)驗(yàn)平臺開展虛擬實(shí)驗(yàn)時,需要預(yù)先下載和安裝相關(guān)的虛擬實(shí)驗(yàn)軟件,而這些環(huán)節(jié)都要求學(xué)習(xí)者具備較為熟練的信息化操作技能,技能較弱的學(xué)習(xí)者在開展虛擬實(shí)驗(yàn)時將面臨著較多的困難和障礙。例如,許多MOOC虛擬實(shí)驗(yàn)項(xiàng)目需要學(xué)習(xí)者的計(jì)算機(jī)預(yù)先安裝各種相應(yīng)的插件(如播放器插件、交互插件等),而插件的安裝、設(shè)置一般都較為繁瑣和復(fù)雜,對于信息化操作技能較弱的學(xué)習(xí)者將是棘手的難題;如果相應(yīng)插件不能被正確安裝和設(shè)置,將嚴(yán)重影響和阻礙虛擬實(shí)驗(yàn)項(xiàng)目的正常開展。
另外,學(xué)習(xí)者使用虛擬實(shí)驗(yàn)軟件的過程通常遵循一種被稱為“學(xué)習(xí)曲線”的規(guī)律,即學(xué)習(xí)者在剛開始使用虛擬實(shí)驗(yàn)軟件時會面臨著較多的困難,而隨著操作熟練程度的提高,他們對軟件的使用會越來越容易。因此,虛擬實(shí)驗(yàn)軟件的使用對于新手來說不是一項(xiàng)簡單的任務(wù)。
2.虛擬實(shí)驗(yàn)軟件與操作系統(tǒng)及其他應(yīng)用軟件之間存在著兼容性問題
由于操作系統(tǒng)的類型較多(如Windows、Unix、Linux和 Mac等),且同一類型操作系統(tǒng)還有不同版本,因此所開發(fā)的虛擬實(shí)驗(yàn)軟件難以兼顧所有類型、版本的操作系統(tǒng),即它們之間存在著較為突出的兼容性問題[2]。另外,虛擬實(shí)驗(yàn)軟件與其他應(yīng)用軟件(如播放器、瀏覽器等)之間也存在著或多或少的兼容性問題。當(dāng)虛擬實(shí)驗(yàn)軟件與用戶端操作系統(tǒng)及其他應(yīng)用軟件之間不兼容時,輕則會出現(xiàn)虛擬實(shí)驗(yàn)軟件運(yùn)行不穩(wěn)定、不流暢的情況,重則會導(dǎo)致系統(tǒng)癱瘓和崩潰等。因此,軟件之間的兼容性問題是MOOC虛擬實(shí)驗(yàn)平臺亟待解決的難題。
3.虛擬實(shí)驗(yàn)課程資源較為單一,學(xué)習(xí)支持系統(tǒng)不夠健全
目前MOOC虛擬實(shí)驗(yàn)平臺提供的虛擬實(shí)驗(yàn)課程資源主要是實(shí)驗(yàn)教學(xué)視頻、虛擬實(shí)驗(yàn)儀器和實(shí)驗(yàn)講義等,這些實(shí)驗(yàn)課程資源原本是為傳統(tǒng)面授教學(xué)情境而設(shè)計(jì)制作的,并不太適用于遠(yuǎn)程虛擬實(shí)驗(yàn)環(huán)境[3];還缺乏實(shí)驗(yàn)設(shè)計(jì)和數(shù)據(jù)分析的工具,導(dǎo)致實(shí)驗(yàn)數(shù)據(jù)分析、現(xiàn)象解釋和實(shí)驗(yàn)報告撰寫等實(shí)驗(yàn)后續(xù)工作較難開展,給學(xué)習(xí)者帶來了很大的困擾[4]。
MOOC虛擬實(shí)驗(yàn)平臺提供的學(xué)習(xí)支持系統(tǒng)主要是學(xué)習(xí)管理系統(tǒng)的BBS論壇,輔導(dǎo)教師不定期在線對學(xué)習(xí)者的疑惑和問題進(jìn)行答疑解惑。但由于受輔導(dǎo)教師的時間精力、輔導(dǎo)管理機(jī)制等諸多因素的限制,這種學(xué)習(xí)支持系統(tǒng)很難滿足眾多學(xué)習(xí)者的個性化學(xué)習(xí)支持的需求,學(xué)習(xí)者在實(shí)驗(yàn)過程中很難獲得有針對性的指導(dǎo)和幫助。
4.虛擬實(shí)驗(yàn)效果因?qū)W習(xí)者的信息化環(huán)境的差異,難以保持一致性
信息化環(huán)境主要包括信息化硬件設(shè)施(如計(jì)算機(jī)、移動智能終端等)和網(wǎng)絡(luò)環(huán)境。虛擬實(shí)驗(yàn)軟件的運(yùn)行對學(xué)習(xí)者的信息化環(huán)境有一定的基本要求,如果信息化環(huán)境不理想(如計(jì)算機(jī)硬件配置過低或網(wǎng)絡(luò)帶寬不夠等),則難以保證虛擬實(shí)驗(yàn)軟件的正常運(yùn)行。由于MOOC學(xué)習(xí)者分散在遠(yuǎn)程各地,他們之間的信息化環(huán)境差異很大,導(dǎo)致虛擬實(shí)驗(yàn)效果難以保持一致性。例如,國家虛擬仿真實(shí)驗(yàn)教學(xué)共享平臺上的某虛擬實(shí)驗(yàn)項(xiàng)目要求學(xué)習(xí)者的計(jì)算機(jī)硬件配置標(biāo)準(zhǔn)為:CPU 為Intel Core i5以上,顯卡的顯存為4G以上,系統(tǒng)內(nèi)存為16G以上,網(wǎng)絡(luò)帶寬20Mbps以上[5],但如果學(xué)習(xí)者的計(jì)算機(jī)硬件配置或網(wǎng)絡(luò)帶寬沒有達(dá)到該標(biāo)準(zhǔn)的要求,則很難保證該虛擬實(shí)驗(yàn)項(xiàng)目的正常實(shí)施。因此,增強(qiáng)MOOC虛擬實(shí)驗(yàn)平臺對學(xué)習(xí)者信息化環(huán)境差異的適應(yīng)是亟待解決的問題。
MOOC虛擬實(shí)驗(yàn)平臺面臨的這些挑戰(zhàn)影響著虛擬實(shí)驗(yàn)的正常開展,也制約著MOOC課程的推廣和應(yīng)用。虛擬化技術(shù)以其自身的獨(dú)特優(yōu)勢為應(yīng)對這些挑戰(zhàn)提供了良好的選擇:可以屏蔽不同硬件平臺的差異性,屏蔽不同硬件的差異所帶來的軟件兼容性問題;可以擴(kuò)展計(jì)算機(jī)硬件的容量,簡化軟件的配置過程,顯著提高計(jì)算機(jī)系統(tǒng)的工作效率等[6]。因此,應(yīng)用虛擬化技術(shù)對MOOC平臺進(jìn)行優(yōu)化改造是應(yīng)對這些挑戰(zhàn)的有效途徑。
二、虛擬化技術(shù)在MOOC虛擬實(shí)驗(yàn)平臺中的應(yīng)用策略
MOOC虛擬實(shí)驗(yàn)平臺可應(yīng)用的虛擬化技術(shù)主要有三種:在用戶端部署虛擬機(jī)鏡像、在IaaS云端部署虛擬機(jī)、在PaaS云端部署容器。下面對它們在MOOC虛擬實(shí)驗(yàn)平臺中的應(yīng)用策略進(jìn)行詳細(xì)探討和分析。
1.通過在用戶端部署虛擬機(jī)實(shí)現(xiàn)虛擬化
(1)在用戶端部署虛擬機(jī)的優(yōu)勢
為了簡化在用戶端下載、安裝虛擬實(shí)驗(yàn)軟件導(dǎo)致的繁瑣操作以及解決兼容性問題,一種傳統(tǒng)的解決方法是在用戶端預(yù)先安裝虛擬機(jī)鏡像。虛擬機(jī)鏡像預(yù)先封裝了虛擬實(shí)驗(yàn)所需的相應(yīng)軟件與配置,系統(tǒng)將以鏡像為模版自動創(chuàng)建包含了虛擬實(shí)驗(yàn)軟件的虛擬機(jī),因而學(xué)習(xí)者不必再安裝其他的虛擬實(shí)驗(yàn)軟件。虛擬機(jī)鏡像能通過虛擬機(jī)模擬器(例如VirtualBox)自動下載和運(yùn)行,從而減輕了學(xué)習(xí)者的操作負(fù)擔(dān),降低了對其信息化操作技能的要求。由于虛擬機(jī)鏡像已經(jīng)對所配置的硬、軟件資源進(jìn)行了優(yōu)化和協(xié)調(diào),也較好地解決了系統(tǒng)的兼容性問題。
(2)在用戶端部署虛擬機(jī)的方法
對于MOOC虛擬實(shí)驗(yàn)課程的制作團(tuán)隊(duì)來說,創(chuàng)建輕便、可靠和高效的虛擬機(jī)并不容易,因?yàn)殡S著使用時間的推移,原來的系統(tǒng)設(shè)置會變得過時,后續(xù)對虛擬實(shí)驗(yàn)軟件的維護(hù)將會變得越來越困難。由于工業(yè)化的制作流程具有專業(yè)、高效和經(jīng)濟(jì)等優(yōu)點(diǎn),為解決虛擬機(jī)的部署和維護(hù)問題提供了很好的解決路徑。Vagrant 和Debian都是基于工業(yè)化制作流程的虛擬機(jī)部署軟件,可用于虛擬機(jī)鏡像的創(chuàng)建和管理。
Vagrant提供了易于配置、重復(fù)性好和便攜式的虛擬開發(fā)環(huán)境,具有跨平臺、可移動、自動部署等優(yōu)點(diǎn)[7],可實(shí)現(xiàn)工作效率和靈活性的統(tǒng)一。Debian能方便、高效地對軟件進(jìn)行打包和安裝,軟件包管理器(APT)可幫助使用者在許多臺計(jì)算機(jī)上管理眾多的軟件包[8]。運(yùn)用Vagrant和Debian創(chuàng)建虛擬機(jī)鏡像的過程可用圖1表示,該過程由以下三個階段組成:首先執(zhí)行“啟動Vagrant”命令,系統(tǒng)加載“Vagrant”文件,通過腳本控制虛擬機(jī)鏡像的創(chuàng)建;然后從Debian軟件包倉庫和虛擬實(shí)驗(yàn)應(yīng)用程序Git庫中獲取虛擬機(jī)的配置資源;最后系統(tǒng)生成可在任何Vagrant環(huán)境下重復(fù)使用的虛擬機(jī)鏡像。
(3)在用戶端部署虛擬機(jī)存在的不足
盡管在用戶端部署了虛擬機(jī)以后,學(xué)習(xí)者不再需要安裝其他的相關(guān)軟件,但仍需要掌握虛擬機(jī)模擬器的操作技能;而虛擬機(jī)模擬器運(yùn)行在不同的硬、軟件環(huán)境下,增加了其操作難度。另外,學(xué)習(xí)者在使用虛擬機(jī)的過程中還面臨著許多其他問題(例如缺乏管理者權(quán)限、系統(tǒng)設(shè)置問題等)。雖然這些問題不是大多數(shù)學(xué)習(xí)者所面臨的,但也不應(yīng)該被忽視。另外,虛擬機(jī)的運(yùn)行效果受用戶端設(shè)備性能的影響也較大。
2.通過在IaaS云端部署虛擬機(jī)實(shí)現(xiàn)虛擬化
(1)在IaaS云端部署虛擬機(jī)的優(yōu)勢
IaaS(Infrastructure as a Service)即“基礎(chǔ)設(shè)施即服務(wù)”,它將信息基礎(chǔ)設(shè)施(如內(nèi)存、I/O設(shè)備、存儲和計(jì)算設(shè)施等)作為云服務(wù)環(huán)境提供給用戶,用戶通過Internet獲取所需的網(wǎng)絡(luò)服務(wù)、存儲服務(wù)、開發(fā)環(huán)境服務(wù)和軟件服務(wù)等基礎(chǔ)設(shè)施服務(wù)[9],優(yōu)點(diǎn)是用戶按需租用相應(yīng)的信息基礎(chǔ)設(shè)施服務(wù),大大降低了對用戶端硬件性能的要求。
MOOC虛擬實(shí)驗(yàn)平臺在IaaS云端部署虛擬機(jī)以后,學(xué)習(xí)者只需在用戶端安裝Web瀏覽器(不再需要安裝其他的客戶端軟件),通過使用Web瀏覽器訪問云端服務(wù)器上的虛擬機(jī)和進(jìn)行虛擬實(shí)驗(yàn)操作,從而提高實(shí)驗(yàn)學(xué)習(xí)的效率,簡化了實(shí)驗(yàn)操作流程。此外,同一MOOC虛擬實(shí)驗(yàn)平臺的所有虛擬機(jī)都是由同一課程團(tuán)隊(duì)管理,可以大大提高實(shí)驗(yàn)教學(xué)的管理效率,有助于創(chuàng)建新型的虛擬實(shí)驗(yàn)教學(xué)模式。例如,學(xué)習(xí)者可以把他們的實(shí)驗(yàn)結(jié)果直接提交給學(xué)習(xí)管理系統(tǒng)(LMS),而不必再另外撰寫實(shí)驗(yàn)報告,這有助于實(shí)驗(yàn)教師及時監(jiān)測、評價學(xué)習(xí)者的實(shí)驗(yàn)過程;由于為學(xué)習(xí)者提供虛擬實(shí)驗(yàn)服務(wù)的虛擬機(jī)都運(yùn)行在同一平臺,它們之間能夠高效地互聯(lián)、互通,因而也有利于學(xué)習(xí)者之間的交流和協(xié)作。
(2)在IaaS云端部署虛擬機(jī)的方法
首先將預(yù)先制作的虛擬機(jī)鏡像傳輸?shù)皆朴?jì)算集群服務(wù)器,然后通過對鏡像文件的實(shí)例化而控制虛擬機(jī)的創(chuàng)建,虛擬機(jī)在完成自身的各種配置后融入云平臺環(huán)境,從而為學(xué)習(xí)者提供所需的虛擬實(shí)驗(yàn)應(yīng)用服務(wù),其過程可抽象為如圖2所示的模型。在IaaS云端部署虛擬機(jī)的過程由以下四個階段組成:
①IaaS云管理中心對云計(jì)算集群中的所有物理資源和虛擬資源實(shí)行集中的統(tǒng)一管理,并根據(jù)學(xué)習(xí)者的虛擬實(shí)驗(yàn)服務(wù)需求對虛擬資源進(jìn)行優(yōu)化配置,既保證了虛擬實(shí)驗(yàn)服務(wù)的質(zhì)量,也提高了資源的利用率。
②鏡像服務(wù)器存儲預(yù)先創(chuàng)建的虛擬機(jī)鏡像,并對運(yùn)行中的鏡像進(jìn)行備份。根據(jù)虛擬機(jī)管理器的指令,將鏡像文件傳輸給云計(jì)算集群服務(wù)器。
③虛擬機(jī)管理器根據(jù)鏡像文件的配置信息,運(yùn)用虛擬化技術(shù)將云服務(wù)器中的物理硬件資源( CPU、內(nèi)存、I/O等)實(shí)現(xiàn)虛擬化,最終封裝成虛擬機(jī)供用戶使用。虛擬機(jī)的部署和運(yùn)行都受IaaS云管理中心的控制。
④借助于VNC(Virtual Network Console)和RDP(Remote Display Protocol)技術(shù),學(xué)習(xí)者通過Internet訪問云計(jì)算集群中的特定虛擬機(jī),并在虛擬機(jī)上運(yùn)行相應(yīng)的虛擬實(shí)驗(yàn)軟件,從而獲取相應(yīng)的虛擬實(shí)驗(yàn)服務(wù)。
(3)在IaaS云端部署虛擬機(jī)存在的不足
①運(yùn)行成本問題。在IaaS云端部署虛擬機(jī)需要租用云平臺的IaaS服務(wù),MOOC虛擬實(shí)驗(yàn)平臺的運(yùn)營方需要為此付費(fèi),無疑會增加其運(yùn)營成本。如果采取在用戶端部署虛擬機(jī)的方式,則可以節(jié)省這些費(fèi)用。
②網(wǎng)絡(luò)環(huán)境的支撐問題。在IaaS云端部署虛擬機(jī)需要良好網(wǎng)絡(luò)環(huán)境的支撐,無論是鏡像文件的傳輸,還是虛擬機(jī)的配置和應(yīng)用服務(wù)的獲取等,都離不開穩(wěn)定、高速的網(wǎng)絡(luò)連接。學(xué)習(xí)者通過Internet訪問IaaS虛擬機(jī)而開展虛擬實(shí)驗(yàn)也需要持續(xù)地聯(lián)網(wǎng),而當(dāng)網(wǎng)絡(luò)不穩(wěn)定或網(wǎng)絡(luò)帶寬不夠時,虛擬實(shí)驗(yàn)的操作體驗(yàn)將會受到很大的影響和限制。
③獲取虛擬機(jī)服務(wù)的時間延遲問題。學(xué)習(xí)者訪問MOOC虛擬實(shí)驗(yàn)平臺開展虛擬實(shí)驗(yàn)時,大型的虛擬機(jī)鏡像文件需要在IaaS云端進(jìn)行復(fù)制,會導(dǎo)致學(xué)習(xí)者獲取虛擬實(shí)驗(yàn)服務(wù)的時間有延遲(一般有幾分鐘的延遲)。如果虛擬機(jī)鏡像文件太大,這種情況將會變得更為嚴(yán)重,因此有必要對鏡像文件進(jìn)行優(yōu)化,以提高文件傳輸?shù)男?,從而緩解時間延遲問題。
3.通過在PaaS云端部署容器實(shí)現(xiàn)虛擬化
(1)在PaaS云端部署容器的優(yōu)勢
PaaS(Platform as a service)即“平臺即服務(wù)”,它將軟件開發(fā)環(huán)境作為一種云服務(wù)提供給用戶,用戶在云服務(wù)平臺所提供的軟件開發(fā)環(huán)境中部署所需的應(yīng)用程序和配置。容器作為一種把應(yīng)用程序和部署環(huán)境相隔離的虛擬化打包技術(shù),非常適合于在PaaS云平臺中使用。容器的概念源于航運(yùn)業(yè)中廣泛使用的集裝箱:容器相當(dāng)于集裝箱,而應(yīng)用程序相當(dāng)于貨物,容器對各種應(yīng)用程序進(jìn)行封裝、打包,類似于把貨物裝入集裝箱。由于容器的隔離作用,各種應(yīng)用程序工作時不相互影響,并且可以方便、快捷地在各種運(yùn)行環(huán)境中進(jìn)行整體遷移。在PaaS云端部署容器的優(yōu)勢主要表現(xiàn)在以下三個方面:
①由于容器采取了共享主機(jī)操作系統(tǒng)的工作方式,減少了客戶機(jī)操作系統(tǒng)層,因此它更加輕量化,啟動速度更快(一般為秒級,而虛擬機(jī)為分鐘級),可以大量節(jié)約開發(fā)、測試和部署的時間。而容器的輕量化也使得平臺能部署更多封裝了虛擬實(shí)驗(yàn)應(yīng)用程序的容器,從而可以提供更多的虛擬實(shí)驗(yàn)項(xiàng)目。
②容器的部署過程得以大大簡化。開發(fā)者通過使用容器引擎將應(yīng)用程序及其附屬程序一起打包成標(biāo)準(zhǔn)的鏡像文件,然后根據(jù)鏡像文件來創(chuàng)建容器,通過執(zhí)行腳本命令把容器快速、自動地部署到運(yùn)行環(huán)境中。而傳統(tǒng)的虛擬機(jī)部署需要人工安裝軟件包,需要花費(fèi)較多的時間和精力。
③容器具有良好的可移植性和易擴(kuò)展性??梢浦残员憩F(xiàn)在容器可以在各種平臺環(huán)境中穩(wěn)定運(yùn)行,可以快速、靈活地從一個平臺環(huán)境遷移到另外一個平臺環(huán)境,從而大大提高了應(yīng)用程序開發(fā)、升級及維護(hù)的效率。例如,通過使用容器技術(shù)可以將校園網(wǎng)上的虛擬實(shí)驗(yàn)平臺快速遷移到大型的MOOC平臺上。易擴(kuò)展性表現(xiàn)在當(dāng)容器難以勝任新的工作任務(wù)時,可以方便地對其進(jìn)行改造和升級或創(chuàng)建新的容器,從而滿足新運(yùn)行環(huán)境的需要。
(2)在PaaS云端部署容器的方法
Docker是目前最為常用也較為成熟的一種容器技術(shù)[10]。運(yùn)用Docker在PaaS云端部署容器的技術(shù)路線可概述為:開發(fā)者通過創(chuàng)建容器鏡像的腳本文件而生成容器,并將其發(fā)布到PaaS云端服務(wù)器上運(yùn)行,為用戶提供相應(yīng)的虛擬實(shí)驗(yàn)服務(wù)?;贒ocker的PaaS容器部署過程可抽象為圖 3 所示的模型,該過程由三個階段組成:
①創(chuàng)建鏡像的腳本文件。Dockerfile是描述鏡像構(gòu)建過程的腳本文件。根據(jù)實(shí)際需要,開發(fā)人員對Dockerfile進(jìn)行編輯或修改,直至編寫出符合要求的鏡像腳本文件。PaaS平臺通過Dockerfile實(shí)現(xiàn)對容器的管理與控制。
②創(chuàng)建鏡像。鏡像包含了容器的詳細(xì)信息,是創(chuàng)建容器的藍(lán)本。鏡像可以通過Dockerfile文件來創(chuàng)建,封裝完畢的Dockerfile文件存儲在源代碼庫中。當(dāng)需要創(chuàng)建鏡像時,則把Dockerfile文件“clone”到Docker引擎中,Docker引擎讀取并逐條執(zhí)行Dockerfile 文件中的指令,通過“built”命令最終生成新的鏡像。然后通過“push”命令把生成的鏡像推送到Docker 鏡像庫中。另外,鏡像也可以通過容器的反向操作而創(chuàng)建。
③生成容器。Docker引擎通過“pull”命令把鏡像從Docker鏡像庫中拉取出來,并根據(jù)工作任務(wù)需要對鏡像進(jìn)行相應(yīng)的修改(例如封裝虛擬實(shí)驗(yàn)應(yīng)用程序),然后通過“run”命令運(yùn)行鏡像,最后生成一個標(biāo)準(zhǔn)的、隔離的和輕量級的運(yùn)行環(huán)境即容器。虛擬實(shí)驗(yàn)應(yīng)用程序在容器中運(yùn)行,擺脫了對系統(tǒng)環(huán)境的依賴,因而具有良好的隔離性和一致性。
(3)在PaaS云端部署容器存在的不足
首先,容器在PaaS云端的部署和運(yùn)行仍然需要良好的網(wǎng)絡(luò)環(huán)境支撐。無論是容器鏡像的上傳、下載還是容器的遷移等,都依賴于客戶機(jī)和PaaS云端服務(wù)器之間的網(wǎng)絡(luò)連接性。當(dāng)網(wǎng)絡(luò)連接性不佳時,容器的部署和運(yùn)行都將受到很大的影響,進(jìn)而也影響著基于容器的虛擬實(shí)驗(yàn)軟件的運(yùn)行效果。這也是在IaaS云端部署虛擬機(jī)時存在的類似問題。
其次,容器技術(shù)作為新近涌現(xiàn)的信息技術(shù),其自身由于不夠成熟還存在著一定的局限性。例如,容器采取的是共享宿主機(jī)操作系統(tǒng)的工作方式,而一旦宿主機(jī)操作系統(tǒng)出現(xiàn)安全問題,則安全威脅會蔓延至整個系統(tǒng)。另外,容器引擎軟件商所提供的配套資源也比較有限,在部署和使用環(huán)節(jié)遇到問題時難以獲得有效的資源支持。
三、總結(jié)與展望
總之,可應(yīng)用于MOOC虛擬實(shí)驗(yàn)平臺的這三種虛擬化技術(shù)都各有其優(yōu)勢和不足:在用戶端部署虛擬機(jī)簡化了操作流程,較好地解決了系統(tǒng)的兼容性問題,但學(xué)習(xí)者仍然需要掌握虛擬機(jī)模擬器等軟件的操作技能,對系統(tǒng)的維護(hù)也較為繁瑣,對用戶端硬件性能的要求較高;而在IaaS云端部署虛擬機(jī)和在PaaS云端部署容器對用戶端硬件性能的要求較低,其應(yīng)用和維護(hù)更為方便,能實(shí)現(xiàn)資源的統(tǒng)一調(diào)度、靈活移植和共享應(yīng)用,但它們對于網(wǎng)絡(luò)環(huán)境的依賴程度高,且容器的安全穩(wěn)定性不如虛擬機(jī)等。因此,在MOOC虛擬實(shí)驗(yàn)平臺的構(gòu)建過程中,應(yīng)根據(jù)實(shí)際應(yīng)用情境靈活選用合適的虛擬化技術(shù)。
針對虛擬化技術(shù)在應(yīng)用中所存在的不足,研究者正努力探索運(yùn)用新的技術(shù)手段予以解決和克服。例如,為了克服在云端部署虛擬機(jī)或容器對網(wǎng)絡(luò)環(huán)境的過度依賴性,一種解決方法是采用WebAssembly編程技術(shù),使瀏覽器能高效地運(yùn)行虛擬機(jī)和應(yīng)用程序,從而降低虛擬實(shí)驗(yàn)應(yīng)用服務(wù)對網(wǎng)絡(luò)環(huán)境的依賴性。WebAssembly通過為高級編程語言編寫的應(yīng)用程序提供編譯目標(biāo),從而使它們可以在Web瀏覽器中安全、快速地運(yùn)行[11];而虛擬桌面技術(shù)的使用能顯著降低學(xué)習(xí)者在開展虛擬實(shí)驗(yàn)時的網(wǎng)絡(luò)延遲。為了提高容器的安全性,可以讓容器運(yùn)行在虛擬機(jī)內(nèi)部,利用虛擬機(jī)的良好硬件隔離性來提高容器的安全性;另外,還可以利用虛擬機(jī)豐富成熟的監(jiān)控和管理工具來完善容器的運(yùn)行環(huán)境。通過容器技術(shù)與虛擬機(jī)技術(shù)的深度融合,實(shí)現(xiàn)兩者的優(yōu)勢互補(bǔ),為促進(jìn)虛擬化技術(shù)的進(jìn)一步完善提供了有效的解決路徑,從而有助于促進(jìn)該技術(shù)在MOOC虛擬實(shí)驗(yàn)平臺中的推廣應(yīng)用。
參考文獻(xiàn):
[1]武志學(xué).云計(jì)算虛擬化技術(shù)的發(fā)展與趨勢[J].計(jì)算機(jī)應(yīng)用,2017,37(4):916.
[2]唐勇.基于云計(jì)算的物理虛擬實(shí)驗(yàn)研究[D].南京:南京師范大學(xué),2016:25.
[3]謝紹平,劉強(qiáng),諶貽波.虛擬實(shí)驗(yàn):MOOC環(huán)境下實(shí)驗(yàn)教學(xué)的重要發(fā)展方向[J].中國教育信息化,2018(23):75.
[4]王基生,于平太,李瑩等.虛擬實(shí)驗(yàn)平臺開發(fā)和應(yīng)用的理性思考[J].現(xiàn)代教育技術(shù),2010,20(2):137.
[5]國家虛擬仿真實(shí)驗(yàn)教學(xué)共享平臺.干擾素生產(chǎn)VR虛擬現(xiàn)實(shí)仿真項(xiàng)目[EB/OL].http://www.ilab-x.com/details/
v3?id=2951&isView=true.
[6]張耀祥.云計(jì)算和虛擬化技術(shù)[[J].計(jì)算機(jī)安全,2011(5):80.
[7]郭亮,郭海智,謝光.基于Vagrant部署程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)環(huán)境[J].實(shí)驗(yàn)科學(xué)與技術(shù),2018(5):158.
[8]Ian Murdock. Debiain: the universal operating system[EB/OL].https://www.debian.org/.
[9]馮秀珍,郝鵬云.計(jì)算環(huán)境下的信息資源云服務(wù)模式研究[J].計(jì)算機(jī)科學(xué),2012,39(S2):111.
[10]張輝,王偉,郭棟.一種基于微服務(wù)范式的桌面云構(gòu)建框架[J].信息網(wǎng)絡(luò)安全,2017(2):38.
[11]楊旸,王明華,潘俊臣,等.基于瀏覽器WebAssembly技術(shù)的即時通信加密通信系統(tǒng)的設(shè)計(jì)與研究[J].網(wǎng)絡(luò)空間安全,2019,10(8):37.(編輯:魯利瑞)