亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Docker技術(shù)的高校在線編程平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

        2022-09-20 02:57:38林志煌張菽妍趙蓮芬
        現(xiàn)代計(jì)算機(jī) 2022年14期
        關(guān)鍵詞:環(huán)境用戶實(shí)驗(yàn)

        林志煌,張菽妍,趙蓮芬

        (廣州軟件學(xué)院網(wǎng)絡(luò)技術(shù)系,廣州 510990)

        0 引言

        21世紀(jì)人類面臨的最大機(jī)遇是計(jì)算機(jī)語(yǔ)言,計(jì)算機(jī)語(yǔ)言將成為科技創(chuàng)新的核心動(dòng)力,因此就需要結(jié)合新教改的要求創(chuàng)新教學(xué)模式,加強(qiáng)高校學(xué)生的編程實(shí)踐能力,提高學(xué)生編程興趣。在如今的計(jì)算機(jī)課程實(shí)驗(yàn)教學(xué)中,大部分老師都是使用PaaS平臺(tái)進(jìn)行教學(xué),雖然PaaS平臺(tái)提供了比較完善的開發(fā)環(huán)境,但由于PaaS的很多基礎(chǔ)構(gòu)建都是基于虛擬機(jī)運(yùn)行的,導(dǎo)致計(jì)算機(jī)資源大量消耗,出現(xiàn)資源利用率低下等問題。同時(shí)高校學(xué)生在開發(fā)應(yīng)用、編程等課程中需要更為穩(wěn)定的開發(fā)環(huán)境來進(jìn)行相關(guān)實(shí)驗(yàn)。對(duì)于初學(xué)者而言,需要在電腦本地部署好計(jì)算機(jī)語(yǔ)言需要的編譯環(huán)境,安裝相關(guān)的開發(fā)工具,安裝開發(fā)插件等。在這個(gè)過程中,由于電腦硬件環(huán)境不同以及安裝過程的某些特殊原因?qū)е碌陌惭b失敗等問題頻繁發(fā)生,難以找到合適的解決方式,嚴(yán)重地打擊了編程初學(xué)者的學(xué)習(xí)熱情,高校內(nèi)的學(xué)生更有可能因?yàn)榕渲铆h(huán)境問題無法在非上課時(shí)間進(jìn)行課程實(shí)踐。本平臺(tái)通過docker容器技術(shù)結(jié)合瀏覽器遠(yuǎn)程訪問服務(wù)器內(nèi)統(tǒng)一配置好的容器,無需考慮硬件環(huán)境及電腦配置,可以做到所有學(xué)生統(tǒng)一環(huán)境進(jìn)行實(shí)驗(yàn),這將有效提升學(xué)生的編程課程效率及穩(wěn)定性。

        1 開源容器引擎Docker

        1.1 Docker概述

        Docker是Docker.Lnc公司開源的一個(gè)基于LXC技術(shù)搭建的Container容器引擎,該引擎的源代碼托管在Github上。Docker使用Google公司推出的Go語(yǔ)言進(jìn)行開發(fā)實(shí)現(xiàn),基于Linux內(nèi)核的cgroup,namespace以 及OverlayFS類的Union FS等技術(shù),對(duì)進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。傳統(tǒng)虛擬機(jī)攜帶有操作系統(tǒng),很小的應(yīng)用程序卻因?yàn)閿y帶了操作系統(tǒng)而變得十分笨重,而docker容器內(nèi)的應(yīng)用程序是直接調(diào)用宿主機(jī)的cpu、磁盤等,容器沒有自己的內(nèi)核,也沒有虛擬硬件,因此比較輕便。每個(gè)容器間是相互隔離的,每個(gè)容器內(nèi)部都有一個(gè)屬于自己的文件系統(tǒng),通過隔離機(jī)制可以將服務(wù)器利用到極致。由于Docker底層使用LXC來實(shí)現(xiàn),LXC將linux進(jìn)程沙盒化,使得進(jìn)程之間彼此隔離,并且能夠控制各進(jìn)程的資源分配。

        Docker中包含三個(gè)基本的概念:鏡像(image)、容器(container)和倉(cāng)庫(kù)(repository)。鏡像通常是一個(gè)只讀文件,它的功能是用于創(chuàng)建容器,且創(chuàng)建出來的容器與鏡像文件完全相同,唯一的區(qū)別在于容器是可讀寫的。只有容器才能用于運(yùn)行程序,每一個(gè)容器之間是相互隔離的,可以理解為一臺(tái)輕量化的虛擬機(jī)。在此基礎(chǔ)上,容器也可以反過來用于構(gòu)建鏡像。倉(cāng)庫(kù)即集中存放鏡像文件的場(chǎng)所。

        1.2 Docker與傳統(tǒng)虛擬化技術(shù)的不同

        傳統(tǒng)虛擬機(jī)是虛擬出一套硬件,運(yùn)行一個(gè)完整的操作系統(tǒng),其本質(zhì)是一臺(tái)物理機(jī)上模擬出多臺(tái)虛擬服務(wù)器,可以在這個(gè)虛擬服務(wù)器上安裝與運(yùn)行軟件,因而其占用的硬件資源較多,啟動(dòng)較慢。而Docker容器不封裝整個(gè)操作系統(tǒng),基于主機(jī)內(nèi)核通過Docker守護(hù)程序主機(jī)進(jìn)程執(zhí)行,是內(nèi)核級(jí)別的虛擬化,可以在一個(gè)物理機(jī)上運(yùn)行多個(gè)容器實(shí)例。具有輕量化、啟動(dòng)快、占用資源少等特點(diǎn)。

        當(dāng)容器需要回滾時(shí),新容器替代容器的整個(gè)過程秒級(jí)完成,而傳統(tǒng)虛擬化技術(shù)由于依賴項(xiàng)可能不同,更有可能產(chǎn)生沖突,因此傳統(tǒng)虛擬化技術(shù)做回滾時(shí)比較困難。

        2 基于Docker的在線編程平臺(tái)的設(shè)計(jì)

        本編程平臺(tái)基于混合云環(huán)境,發(fā)揮了公有云和私有云兩類云平臺(tái)的優(yōu)勢(shì),擴(kuò)展了本編程平臺(tái)的技術(shù)基礎(chǔ),提高平臺(tái)的可用性與便捷性,降低了信息化投入成本的同時(shí)保障了數(shù)據(jù)的安全性。利用Docker容器技術(shù)和Web技術(shù),將傳統(tǒng)的實(shí)驗(yàn)室機(jī)房環(huán)境轉(zhuǎn)移至云環(huán)境中,學(xué)生通過瀏覽器就能使用云主機(jī)進(jìn)行課程的實(shí)驗(yàn)。在實(shí)驗(yàn)過程中,學(xué)生不僅可以根據(jù)教師上傳的實(shí)驗(yàn)指導(dǎo)書和建立的云實(shí)驗(yàn)環(huán)境進(jìn)行實(shí)驗(yàn),而且可以編輯實(shí)驗(yàn)筆記,保存或上傳實(shí)驗(yàn)結(jié)果。該平臺(tái)還提供實(shí)驗(yàn)社區(qū)、綜合協(xié)作實(shí)驗(yàn)、實(shí)驗(yàn)資源和系統(tǒng)資源的監(jiān)控管理等。

        2.1 角色設(shè)計(jì)

        本編程平臺(tái)服務(wù)者主要由學(xué)生和教師組成。學(xué)生在本平臺(tái)上通過用戶鑒權(quán)登錄后,查看實(shí)驗(yàn)列表,選擇自己所要學(xué)習(xí)的課程,連接遠(yuǎn)程主機(jī)就可以開始學(xué)習(xí),并且同時(shí)可以查看實(shí)驗(yàn)文檔,實(shí)驗(yàn)完成后,通過實(shí)驗(yàn)完成檢查退出、斷開遠(yuǎn)程主機(jī),上傳或下載文件,即可完成本次實(shí)驗(yàn)。教師通過用戶鑒權(quán)登錄后,可以進(jìn)行實(shí)驗(yàn)文檔編輯,選擇本次實(shí)驗(yàn)所需要的環(huán)境,便可以發(fā)布實(shí)驗(yàn),同時(shí)可以管理實(shí)驗(yàn),對(duì)實(shí)驗(yàn)再次編輯。管理員主要管理用戶、實(shí)驗(yàn)內(nèi)容、服務(wù)器主機(jī)、環(huán)境鏡像等。角色設(shè)計(jì)如圖1所示。

        圖1 角色設(shè)計(jì)

        2.2 性能設(shè)計(jì)

        該平臺(tái)在面對(duì)大量實(shí)驗(yàn)參與者連接遠(yuǎn)程主機(jī)的情況下,每一個(gè)參與者平均需要近300 MB的主機(jī)內(nèi)存及根據(jù)參與者主機(jī)運(yùn)行程序決定的cpu消耗。為了防止容器中的性能占用過高,在創(chuàng)建容器時(shí)需要提前設(shè)置相關(guān)參數(shù)限制容器性能消耗,在出現(xiàn)過高消耗時(shí)docker會(huì)殺死當(dāng)前容器。同時(shí)在每一次創(chuàng)建容器時(shí)對(duì)當(dāng)前剩余內(nèi)存及cpu進(jìn)行查詢,若不滿足新容器的創(chuàng)建就將連接放入隊(duì)列中,等待其他容器銷毀后再進(jìn)行連接。若大量實(shí)驗(yàn)參與者同時(shí)進(jìn)入導(dǎo)致部分容器創(chuàng)建失敗則會(huì)觸發(fā)事務(wù)回滾,避免了數(shù)據(jù)庫(kù)數(shù)據(jù)與服務(wù)器中實(shí)際狀況不同步。

        使用Docker容器化技術(shù)搭建分布式服務(wù)器集群為用戶提供穩(wěn)定、可靠的在線虛擬操作環(huán)境。在云服務(wù)器中搭建各個(gè)實(shí)驗(yàn)環(huán)境的Docker鏡像,在鏡像中配置noVNC實(shí)現(xiàn)瀏覽器訪問。在云服務(wù)器中基于鏡像生成容器,各個(gè)容器的端口地址使用動(dòng)態(tài)分配算法。容器具有隔離性,某個(gè)用戶的容器發(fā)生問題不會(huì)影響其他用戶的容器,也不會(huì)對(duì)服務(wù)器集群產(chǎn)生問題,具備較高的安全性。

        3 基于Docker的在線編程平臺(tái)的實(shí)現(xiàn)

        3.1 實(shí)驗(yàn)環(huán)境

        本平臺(tái)在Windows10環(huán)境中使用visual studio code(簡(jiǎn)稱VS code)的源代碼編輯器進(jìn)行前后端開發(fā)。使用Navicat進(jìn)行可視化的數(shù)據(jù)庫(kù)管理,使用postman接口測(cè)試工具進(jìn)行后端接口測(cè)試。使用Google Chrome瀏覽器進(jìn)行前端頁(yè)面開發(fā)調(diào)試。通過apidoc生成后端的接口文檔。

        3.2 用戶端功能

        用戶端主要功能有:用戶通過鑒權(quán)登錄編程平臺(tái),查看實(shí)驗(yàn)列表、連接遠(yuǎn)程主機(jī)、斷開主機(jī)連接、上傳下載文件、實(shí)驗(yàn)完成檢查、刷新實(shí)驗(yàn)主機(jī)、查看實(shí)驗(yàn)文檔。

        3.2.1 用戶鑒權(quán)功能實(shí)現(xiàn)

        用戶鑒權(quán)模塊用于用戶登陸功能,用戶在登陸時(shí)需要輸入手機(jī)號(hào)碼,點(diǎn)擊發(fā)送驗(yàn)證碼按鈕,前端將用戶請(qǐng)求發(fā)送至后端,后端發(fā)送調(diào)用騰訊云接口,將驗(yàn)證碼短信發(fā)送至用戶手機(jī)中。用戶獲取驗(yàn)證碼后,需要輸入驗(yàn)證碼,并點(diǎn)擊登陸按鈕。

        3.2.2 用戶連接遠(yuǎn)程主機(jī)功能實(shí)現(xiàn)

        當(dāng)用戶請(qǐng)求連接主機(jī)時(shí),遠(yuǎn)程主機(jī)先查詢實(shí)現(xiàn)環(huán)境的鏡像id,再根據(jù)鏡像信息生成容器并運(yùn)行,并根據(jù)端口分配算法為容器映射一個(gè)端口,將端口與服務(wù)器域名拼接生成一個(gè)完整地址后返回給用戶,用戶即可在瀏覽器中進(jìn)入服務(wù)器的編程環(huán)境。連接過程架構(gòu)圖如圖2所示,流程圖如圖3所示,連接成功后的頁(yè)面如圖4所示。

        圖2 用戶連接遠(yuǎn)程主機(jī)過程圖

        圖3 用戶連接主機(jī)流程圖

        圖4 用戶連接主機(jī)成功后的初始頁(yè)面

        3.3 教師端功能

        教師通過鑒權(quán)登錄到教師端,可查看實(shí)驗(yàn)列表、連接遠(yuǎn)程主機(jī)、斷開主機(jī)連接、上傳下載文件、實(shí)驗(yàn)發(fā)布、實(shí)驗(yàn)管理、實(shí)驗(yàn)文檔查看、刷新實(shí)驗(yàn)主機(jī)、查看實(shí)驗(yàn)文檔。

        3.3.1 實(shí)驗(yàn)發(fā)布功能的實(shí)現(xiàn)

        實(shí)驗(yàn)的發(fā)布需要教師填寫發(fā)布表單,表單中包含有實(shí)驗(yàn)的標(biāo)題、簡(jiǎn)介、實(shí)驗(yàn)環(huán)境等內(nèi)容。在用戶正確填寫表單并點(diǎn)擊發(fā)布后,后端將表單數(shù)據(jù)插入數(shù)據(jù)庫(kù)并為用戶生成一臺(tái)根據(jù)用戶表單中信息所選擇的實(shí)驗(yàn)環(huán)境的容器,教師在實(shí)驗(yàn)管理頁(yè)面可以查看到自己發(fā)布后暫未編輯章節(jié)的實(shí)驗(yàn)。

        教師點(diǎn)擊完善實(shí)驗(yàn)章節(jié)按鈕向后端發(fā)送請(qǐng)求,后端響應(yīng)后將測(cè)試環(huán)境的網(wǎng)址返回至前端,前端收到網(wǎng)址后將數(shù)據(jù)渲染至頁(yè)面,教師進(jìn)入測(cè)試實(shí)驗(yàn)環(huán)境中,即可以開始實(shí)驗(yàn)并編輯章節(jié),編輯章節(jié)完成后用戶點(diǎn)擊編輯完成按鈕,將章節(jié)數(shù)據(jù)發(fā)送至后端,后端將章節(jié)數(shù)據(jù)插入章節(jié)表中,實(shí)驗(yàn)發(fā)布完成。

        圖5 編輯實(shí)驗(yàn)文檔頁(yè)面

        3.3.2 實(shí)驗(yàn)文檔上傳下載功能的實(shí)現(xiàn)

        實(shí)驗(yàn)文檔上傳功能是前端通過http庫(kù)axios中的post方法向后端發(fā)送文件數(shù)據(jù),后端接收到數(shù)據(jù)后存儲(chǔ)于指定主機(jī)隨機(jī)碼位置的靜態(tài)文件夾,上傳后可以通過遠(yuǎn)程主機(jī)的目錄直接查看。文件上傳成功后會(huì)在數(shù)據(jù)庫(kù)文件表中插入一條新數(shù)據(jù)用于存儲(chǔ)文件名及文件的外部訪問路徑。文件的下載功能通過瀏覽器直接訪問文件的外部訪問路徑來實(shí)現(xiàn)。實(shí)驗(yàn)上傳下載功能實(shí)現(xiàn)界面如圖6所示。

        圖6 上傳下載功能

        3.4 管理員端功能

        管理員可進(jìn)行連接管理、主機(jī)管理、實(shí)驗(yàn)管理、環(huán)境管理、新建實(shí)驗(yàn)環(huán)境、用戶管理。后臺(tái)界面如圖7所示。

        圖7 后臺(tái)界面

        4 結(jié)語(yǔ)

        該編程平臺(tái)基于混合云環(huán)境,利用Docker容器技術(shù)結(jié)合Web技術(shù)構(gòu)建基于瀏覽器的多用戶同時(shí)在線且彼此間互不干擾的在線實(shí)現(xiàn)平臺(tái)。相對(duì)于傳統(tǒng)的編程平臺(tái),在線虛擬編程平臺(tái)不僅能夠打破時(shí)間和地點(diǎn)的限制,讓學(xué)生能有更多的機(jī)會(huì)來接觸和研究所做的實(shí)驗(yàn),而且還能培養(yǎng)他們以理論聯(lián)系實(shí)際的思維方式以及自主創(chuàng)新的能力。在線編程平臺(tái)可以同時(shí)提供實(shí)驗(yàn)和資源的共享,這種共享可以基于校內(nèi)或者校外,提供隨時(shí)隨地在線學(xué)習(xí)和實(shí)踐資源?;贒ocker容器技術(shù)的在線編程平臺(tái)具備靈活性和共享性等優(yōu)勢(shì),能夠極大地節(jié)約資源,提高學(xué)習(xí)者的學(xué)習(xí)興趣以及綜合實(shí)踐能力,具有廣闊的應(yīng)用前景。

        猜你喜歡
        環(huán)境用戶實(shí)驗(yàn)
        記一次有趣的實(shí)驗(yàn)
        長(zhǎng)期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
        一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
        孕期遠(yuǎn)離容易致畸的環(huán)境
        做個(gè)怪怪長(zhǎng)實(shí)驗(yàn)
        環(huán)境
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        NO與NO2相互轉(zhuǎn)化實(shí)驗(yàn)的改進(jìn)
        實(shí)踐十號(hào)上的19項(xiàng)實(shí)驗(yàn)
        太空探索(2016年5期)2016-07-12 15:17:55
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        亚洲人妻无缓冲av不卡| 免费无遮挡无码永久视频| 99在线精品免费视频九九视| 看黄网站在线| 夫妻一起自拍内射小视频| 日本精品久久不卡一区二区| 日韩精品无码一本二本三本色| 爽爽午夜影视窝窝看片| 成人无码激情视频在线观看| 国产亚洲综合另类色专区| 朝鲜女人大白屁股ass孕交| 国产精品人妻一区夜夜爱| 精品三级久久久久久久| 久久成人精品国产免费网站| 粉嫩小泬无遮挡久久久久久| 亚洲国产精品久久久久秋霞影院| 日本女优中文字幕看片| 日本女优禁断视频中文字幕| 欧洲成人一区二区三区| 狠狠色综合网站久久久久久久 | 国产黄色三级一区二区三区四区| 久久97久久97精品免视看| 亚洲国产av一区二区三区四区| 青青青草国产熟女大香蕉| 精品一区二区在线观看免费视频| 色爱无码av综合区| 亚洲国产麻豆综合一区| 女同另类一区二区三区| 狠狠色噜噜狠狠狠777米奇| 大伊香蕉在线精品视频75| 完整在线视频免费黄片| 亚洲中文字幕久久精品色老板| 天天综合网在线观看视频| 欧美国产高清| 国产精品三级在线不卡| 国产又色又爽无遮挡免费软件| 国产黑色丝袜在线观看下| 婷婷开心五月综合基地| 免费观看91色国产熟女| 精品无码中文视频在线观看| 国产成人综合日韩精品无|