一种基于docker集群的自动评价虚拟命令行实验终端构建及其在类Unix系统教学中的应用

2020-07-04 02:23颜晨阳
科技风 2020年17期
关键词:实验教学

颜晨阳

摘 要:ACLab是一种基于docker集群的轻量级自动评价虚拟命令行实验作业终端。ACLab允许教师通过非常简单的步骤定制可自动评分的类unix系统终端实验,定制实验可以随机化,确保每个学生的任务不尽相同。学生则可以如同在真实机器上一样进行操作完成实验,并获得实时反馈。ACLab使用基于浏览器的终端仿真器通过WebSockets连接到Docker容器,性能测试及表明它足以处理大量并发用户,同时调查显示:使用ACLab教师对于ACLab对于减轻实验环境部署和实验批改工作量十分有效,使用学生对于ACLab可用性和实用性也相当认同。

关键词:虚拟终端;自动评价;命令行;实验教学

一、简介

终端或命令行通常是指操作系统基于文本的用户界面。在终端中键入命令即可访问程序、执行操作。用户可以执行简单的任务,但也可以构造更复杂的命令来执行效率低下的手动操作。在类Unix系统中,终端或者命令行几乎是开发和运维人员与系统的唯一交互界面。

在本文中,我们构建了一种基于docker[1]集群的可定制和自动评估作业的虚拟命令行实验系统:ACLab,并将其用于类Unix系统教学。在设计ACLab时,我们有四个主要目标:

(1)平台应提供真实的终端体验,学习者可以探索机器的当前状态并使用许多可能的策略来完成实验,而不是仅仅检查学习者是否键入了特定的命令。

(2)平台应具有足够的灵活性,以支持各种终端分配,还应支持随机化,以便可以为每个学生提供独特的问题实例,以防止学习者共享解决方案。

(3)平台应具有高可用性并可以适当扩展,以防止滥用和资源耗尽,而不受用户操作的影响。

(4)学习者应该以方便,独立于平台的方式访问终端作业,最好通过与学生用于其他在线课程平台的界面相同的界面进行访问。

ACLab通过组合包括Docker容器,WebSocket和浏览器内终端仿真器[2]在内的一系列现有技术来实现上述目标。使用ACLab,学习者无需安装任何客户端,使用浏览器就可以连接到实时系统的真实,有效的终端,并在其中完成实验,如图1所示。

本文的具体结构描述如下:

(1)在第二节中阐述了ACLab服务器的设计,包括其对容器生命周期的管理以及如何将其集成到有代表性的在线课程界面中。

(2)在第三节中我们展示了若干调查统计结果,其中包括学习者使用ACLab的体验以及ACLab对于实验教学效率的提升。

(3)在第四节中,我们展示了ACLab的性能结果,结果表明ACLab具有足够的弹性,可用于中大型规模(1000人)的在线课程中。

二、设计与实现

我们下面描述的ACLab的实现是嵌入在Prairie Learn[3]在线课程平台中,该平台系统用于部署授课过程中的其他任务。ACLab系统由三个部分组成,如图2所示:

(1)ACLab服务器,负责分配任务Docker容器实例及其管理服务器上Docker容器的生命周期。

(2)PrairieLearn服务器端,负责生成任务描述文档并在记录实验作业完成情况。

(3)PrairieLearn客户端(基于浏览器),用于用户与ACLab服务器及其容器之间的交互。

构建在线实验始于用户对新问题的请求,接收到请求后,PrairieLearn服务器首先将构建构建实验任务描述文档。该描述文档包括对ACLab服务器应如何初始化Docker容器的描述,包括应创建哪些文件和目录、在将容器控制权转移给用户之前要执行的命令。为了使每个用户分配到的在线实验任务不完全一样,会随机更改文件的名称和内容以及目录的名称和层次结构。在PrairieLearn客户端使用Gotty来作为终端仿真器,同时用JavaScript构建一些额外代码来实现客户端与ACLab其他简单交互功能,如评分、重置、分数保存等等。ACLab通过使用“任务完成校验字符串”来检查用户的任务完成情况。采用“任务完成校验字符串”是由于希望将ACLab服务器与PrairieLearn松散耦合。“任务完成校验字符串”对于每个用户的每个任务来说都是唯一的,并作为任务描述文档的一部分提供给容器。PrairieLearn客户端界面也包括“重置”按钮。当按下时,客户端将通知ACLab服务器强制清除任务关联容器资源,并重复发送任务描述文档给ACLab服务器来重建任务。如果一个任务在规定时间内未能完成,ACLab服务器也将清除与该任务关联的任何资源。

三、实验结果

在2018年和2019年第2学期中,ACLab部署在阿里云ecs.c6.large实例上,被用于某高职计算机网络专业的《Linux系统管理》课程。分别有122和163名学生使用ACLab。总共35个任务,包括目录导航、列出和删除、文件复制、移动、重命名和删除、隐藏文件、文件修改时间、通配符、grep,tar和zip文件、、查找、管道、vim应用、软件安装、查找、更新和卸载、进程查看、终止、服務查看、启动和停止。学生完成任务平均每次约需5分钟。我们在每个学期都对于学生进行了一项关于ACLab应用效果的调查,在3.1中进行了介绍。在3.2中给出了一项系统压力测试结果,来确定ACLab可伸缩性瓶颈。

(一)学生调查结果

我们要求学生在完成学期35个ACLab的终端任务之后,以1到5(非常不认同、不认同、部分认同、认同、非常认同)的等级对ACLab平台不同方面进行评估,该调查是在线进行的,在285名学生中,共有222名学生参加了调查,有效回收问卷220份。问题罗列如下:(1)您是否认同ACLab平台操作的实用性(与实际系统命令行操作是否相同);(2)您是否认同AClab平台易用性(上手快);(3)您是否认同AClab平台性能效率(不卡顿);(4)您是否认同AClab平台教学功能(评分是否准确)。所有受访者中,我们看到用户对ACLab平台操作的实用性有很高的评价(图3A,avg:4.57,std dev:0.22),证明ACLab平台与实际系统命令行操作一致性很高。学生对ACLab的平台易用性同样满意(图3B,avg:4.37,std dev:0.67),表示ACLab界面明了,容易上手。对于ACLab性能效率评价则有所保留(图3C,avg:3.63,std dev:.99),这主要是因为ACLab部署在在一个性能有限的阿里云实例中,如果能够部署在一个较高新能的实例中,情况会有所好转。对于ACLab平台教学功能认同率仍有提升空间。(图3D,avg:3.75,std dev:1.11)。

(二)性能壓力测试

为了观察服务器在受控负载下的行为,我们进行了一次压力测试,要求所有专业学生学生同时访问其终端任务。涉及大约约400个并发用户,这些用户通过运行在阿里云ecs.c6.large实例上的ACLab服务器完成分配。在这两个测试中,容器构建延迟平均和中值都增加到10秒左右,这是可以忍受的,并且一旦创建了容器,终端就没有明显的延迟。我们认为,在稍微性能高一些的阿里云计算型实例(4vCPU,16GiB)上部署ACLab就足以满足千人以上的并发访问。使用性能监控器collectl[5]在ACLab主机上收集的数据表明,压力测试仅显着影响了CPU利用率。内存使用量仅增加了几百兆字节,而网络使用率可以忽略不计。

四、结论

ACLab的实施方式表明,可以以可扩展和安全的方式构建针对终端技能的认证。ACLab使教师有机会在他们的课程和考试中添加基于终端实践内容,能够与现有系统兼容,同时不会过多地增加教师的工作量。但是,仍有一些工作要做。首先,改善ACLab的教学功能,简化其判分流程。第二,拓展ACLab的兼容性,使其能够兼容更多的教学平台,最后提示ACLab的效率,尝试在大规模在线课程中使用ACLab。

参考文献:

[1]Docker.https://www.docker.com/.Accessed:2018-04-02.

[2]hterm.https://chromium.googlesource.com/apps/libapps/+/master/hterm.Accessed:2018-04-01.

[3]Matthew West,Geoffrey L.Herman,and Craig Zilles.2015.PrairieLearn:Mastery-based online problem solving with adaptive scoring and recommendations driven by machine learning.In 2015 ASEE Annual Conference & Exposition.ASEE Conferences,Seattle,Washington.

[4]Fiona Fui-Hoon Nah.2004.A study on tolerable waiting time:how long are Web users willing to wait? Behaviour & Information Technology 23,3(2004):153-163.

[5]Mark Seger.collectl.http://collectl.sourceforge.net/.Accessed:2018-04-02.

猜你喜欢
实验教学
LabVIEW下的模拟电路实验教学创新对策
基于科学探究的高中生物实验教学探索
网络与云技术在实验教学中的应用
浪漫的材料
以人为本:初中物理科学探究素养在实验教学中的落实
复变函数级数展开的可视化实验教学
复变函数级数展开的可视化实验教学
以人为本:初中物理科学探究素养在实验教学中的落实
初中化学实验教学中“微课”教学模式的探讨
谈初中化学实验教学的初探