【摘 要】根据运维行业的就业市场变化和企业对于Linux运维工程师的职业技能要求,对高校计算机专业的Linux课程教学内容进行合理的规划;根据Linux课程教学的特点,对以运维为导向的Linux课程教学方法进行了研究,在实践中摸索了一套较为有效的教学方案,使学生在Linux学习的过程中更加有针对性、主动性和趣味性。
【关键词】Linux;IT运维;场景教学
0 引言
在以往的高校计算机专业学科教育中,将着重点放在培养学生的编程能力,久而久之使人们产生了偏见,认为学计算机就是学编程。然而实际上,计算机这一学科所涵盖的远不仅仅是编程。随着信息基础设施的不断发展完善,尤其是近年来互联网行业的迅速崛起,IT运维这一行业对于人才的需求和就业的吸纳越来越可观。而企业对于运维人员的职业素养要求和对于编程人员是有明显区别的。这就要求高校针对运维行业的特点对教学内容和方法进行更加有针对性的设计。由于Linux操作系统在互联网行业成为了应用最为普遍的服务器操作系统,所以Linux课程教学成为培养学生的运维素质是一个很好的切入点。
1 传统的Linux教学分析
目前的高校计算机专业开设Linux课程一般有两种情况。一种是作为学习操作系统原理课程的辅助和实践课程,学生在学习了操作系统原理后通过接触Linux的一些源代码来加强对原理和算法的认识;另一种是作为一门独立的课程开设,但其教学内容会将着重点放在GNU开发工具链的使用、API的调用或者内核模块的解读等等。目前这两种情况都是以培养编程能力和开发素质为着眼点的,对于培养一个运维工程师可谓根本没有涉及。而在教学方法上,传统的Linux教学过程中,虽然也有采用基于项目的教学方法,但始终没有改变教师讲理论为主,学生课后练习为辅的固定教学模式,教学改革只是从教学形式上有所改变,依然没有改变学生被动学习的局面[1]。而IT运维的特点是知识面广、实践性强,这就要求在基于运维的Linux教学改革中,着重培养学生归纳知识的能力和主动学习的能力,着重培养学生动手实践的能力,从而更有利于培养学生的职业运维素质。 本文来自文库分享网www.wkfxw.com
2 教学内容的改革
传统的Linux教学是着重于培养逻辑思维能力和编程能力的,笔者针对运维行业的特点对传统教学内容进行改革,使之有针对性的培养运维工程师。关于Linux运维,目前业内还没有一个统一的定义。就笔者接触一些运维工程师和亲自参与企业实践得到的一些直接和间接经验来看,运维工程师在入行时应掌握的主要内容包括:(1)Linux下的常用命令的使用;(2)Linux下的系统管理,包括存储管理、用户管理、网络管理等;(3)部署和维护各种Linux服务器,包括Web服务、FTP服务、DHCP服务、Mail服务等;(4)对Linux下各种网络服务、应用系统、监控系统等进行自动化Shell脚本开发;(5)数据库如MySQL或Oracle的维护;(6)系统性能的优化等等。据此,笔者在以运维为就业方向的班级开设的Linux课程中,删减的GNU工具链、内核源码分析等的内容,加重了Shell编程在课程学时的比重,并增加了系统管理、服务器配置等与运维行业相关的内容。
3 教学方法的改革
虽然近年来不断对计算机学科教育进行改革,提出了基于项目、任务驱动或者单元驱动的教学法,以改变传统教学模式,增加实践教学的比重,但学生仅掌握独立项目的模块化实施方案,欠缺对运维过程中出现突发问题灵活处理的能力[2]。另外由于教学用的实验环境和实际生产环境的差异,导致学生认为教学针对性不强,从而学习积极性受到影响,而当真正就业后面对实际生产环境又不知所错。为此,笔者针对Linux运维的特点,提出了一套教学方法的改革,将贴近生产实践的运维融合到Linux课程教学中去,从而更有利于培养学生在IT运维方向的职业素质,为其有针对性的就业夯实基础。
3.1 教学环境设计
在教学环境上,采用电子教室。但不同于传统Linux课程教学采用的Windows加VMWare虚拟机的方案,而是采用全Linux解决方案,以使学生充分体验和使用Linux。在解决视频广播及远程桌面的问题上,不同于传统的电子教室采用的凌波多媒体教室软件的方案,笔者为教师端及学生端的电脑都安装的Ubuntu14.04,在教师端安装了vncserver,以共享教师机的桌面,而在学生端安装vncviewer用于远程桌面连接。这种直接让学生接触Linux真实机器的方法,一方面加强了学生对于Linux的操作体验,另一方面,杜绝部分自制能力较差的学生在课堂上玩电脑游戏等行为。
3.2 实验环境设计
在Linux教学中的很多实验对当前系统环境有一定的危险性和破坏性,如配置网络、添加或者删除Raid、安装服务等等。很多不当操作会破坏系统的正常环境,而学生其实也正是在这种不断的试错与改正中提高能力的。因此,怎么样快速恢复受损的实验环境是个问题。笔者在自己的课堂上采用了一款非常优秀的虚拟机软件VirtualBox,利用它的系统快照功能实现这个目的。
首先,给学生机器在VirtualBox下安装一个虚拟的CentOS6.5作为教学系统(这是由于CentOS这一发行版在目前的互联网行业作为服务器操作系统应用非常广泛),并配置好该系统的基本软件和网络连接,以此作为初始的实验环境,并对该初始系统进行系统快照。
然后,当学生做实验时,启动虚拟机,并利用宿主机的putty软件或者命令行ssh客户端远程连接虚拟机,在虚拟机里面做各种实验。如果实验失败或者需要重新做实验时候,只要恢复一下系统快照就可以返回初始的实验环境。
3.3 基于场景的四步教学法
传统教学方式不利于运维职业素质培养的一个重要原因是课堂教学脱离生产场景。尽管教了学生很多命令、很多参数,告诉学生应该这样或者不应该那样,但学生往往会发出“为什么要这样做”、“这样做有什么用”的疑惑。由于脱离生产场景,学生对于所学知识与技能的体会不深,在相当程度上影响了教学效果。 场景化教学要求在教学过程中尽量模拟生产场景,将贴近生产实践的环境、项目、任务经过适量简化突出重点后重现在教学过程中。这种教学法秉承“以用为本、学以致用”的教学观念,对于指导教师的工程实践经验有较高的要求。笔者在这一教学观念的指导下,通过以下四个步骤组织整个教学过程。
(1)场景重现。对于Linux运维的每个知识板块,笔者结合自己已有的工程实践经验和通过阅读、考察等方式获得间接经验,努力为教学过程重现生产场景。例如,在讲授Web服务时,传统方式仅仅是通过测试一个静态Web页面,讲解一下Web服务的搭建过程及配置文件的主要参数等。笔者在实施场景化教学法的过程中,为学生们分发一个实际可用的在线教学网站源码让学生们在各自的实验平台上安装测试,并通过一些专门的工具模拟负载让学生们观察Web站点在运行过程中性能的变化。这样一来,由于接触到了真实的生产场景,一来学生的学习兴趣有了较大的提高,另一方面对于相关的配置参数的作用的体会则更加深刻。
(2)项目设计。在教学过程中,将Linux运维的各个知识点和技能通过若干个项目来组织,学生通过可扩展的项目案例来逐步学习知识和技能。所有的项目都是一个实际的任务,学生通过完成这一项目从而具备了完成一种任务的能力。
(3)角色模拟。将学生分为若干个小组,小组的每个成员模拟项目中的某个角色,使学生们协同完成项目任务。当项目任务完成后,还可以将小组内各个成员的角色互换,使其体会不同角色在小组中所起的不同作用及所需掌握的工作技能。例如,在讲解用户权限管理的知识板块时,笔者设计了一个工作组用户协同工作的项目,每个学生小组有三个成员,分别是管理员Tom和普通成员Alice和Jim。该项目任务要求通过某种方式设置一个共享文件夹,该文件夹作为小组协同工作的目录;该目录内每个人都可以新建文件,也可以查看和修改别人的文件,但是除了管理员Tom外其他人不能删除别人的文件而只能删除自己的文件;只有管理员Tom可以删除任何人的文件。学生们通过分别扮演管理员和普通成员,加强了对于用户权限管理的认识。
(4)自我总结:当项目任务完成后,学生们初步掌握了某项技能,此时应该及时回顾、归纳和总结,将感性认识转化为理性认识,将知识和技能条理化。笔者通过自己的实践体验发现,写技术博客是一种很好的自我总结的方式。笔者要求学生课后将每个知识板块写成技术博客在互联网上发布,并要求学生们分组互评,评选优秀的博客文章。一些对于Linux运维很感兴趣的学生在课后写技术博客上投入了的较大了精力,参阅了很多课外资料,文章写得比较严谨而全面,在互联网上获得了比较高的浏览量,从而更加激发了学生的学习兴趣和热情。
总之,通过场景重现、项目设计、角色模拟和自我总结这样四个步骤,有效的沟通了教学和生产,加强了教师与学生、学生与学生之间的交流互动,构架起理论与实践相结合的桥梁。
4 结束语
随着信息技术的不断发展,IT运维这一行业对于人才的需求越来越大。而Linux操作系统在当前的信息化基础设施中扮演非常重要的角色,成为IT运维人员必备的基础知识和技能。而传统的高校Linux课程将着重点放在培养学生的逻辑思维能力和提高编程能力方面,不利于运维工程师职业素质的建立。因而,有必要建立一套以运维为导向的Linux课程教学方案,以更加有利于向社会培养及输送人才。
通过对课程教学内容的合理取舍、贴近实际生产场景设计教学环境与实验环境,以及基于场景的四步教学法,本文提出了一套在实践中较为可行的Linux课程教学方案。相比传统的Linux课程教学,这一教学方案更加有针对性的培养企业IT运维工程师。
【参考文献】
[1]田容雨,朱慧.基于计算思维的Linux运维教学改革[J].信息与电脑,2014,09:244.
[2]田容雨,朱慧.基于运维的Linux教学方法改革与实践[J].新课程研究,2013,06:135-136.
[责任编辑:朱丽娜]