面向应用的云计算课程建设

2019-10-08 08:34邓一星王芳
软件 2019年7期

邓一星 王芳

摘  要: 分析云计算相关课程教学中存在的问题,与亚马逊AWS合作,以实际应用为出发点,对云计算课程进行合理的划分,并利用沙箱实验环境开展实验教学。

关键词: 云计算教学;商业云平台;AWS Academy

中图分类号: TP311    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2019.07.041

【Abstract】: This paper analyses the problems existing in the teaching of cloud computing related courses, cooperates with Amazon AWS, takes practical application as the starting point, divides cloud computing courses reasonably, and carries out experimental teaching in sandbox experimental environment.

【Key words】: Cloud computing teaching; Commercial cloud platform; AWS academy

0  引言

云計算、大数据、移动互联网,是软件领域目前最热门的几个术语,如果说大数据、移动互联网更代表应用场景,云计算则是它们共同的基础,提供强大且灵活的计算能力。随着越来越多的企业把业务系统迁移到云端,云架构、云上开发及运维的人才需求量也随之激增。但相对大数据等热点技术有其较为规范的课程设置及内容安排而言,云计算相关课程的设置及内容安排,目前来看,基本上还是属于较为混乱的状态,缺乏合理的方案。

1  国内高校云计算相关课程现状及存在问题

应该说,在大部分开设了计算机科学与技术或软件工程专业的高校中,都能看到云计算课程的身影,但经过笔者的调研及与同行的交流,云计算课程的教学过程,存在非常多的问题,教学效果非常不理想,以至于甚至在部分高校中,尽管培养方案中设置了云计算相关课程,却没有老师愿意开课。

(1)课程内容无序混乱。云计算并非一种单独的技术,而是以面向服务架构(SOA)为基础,并行计算、网格计算和分布式计算等技术共同发展的产物。所以如果要深入去讲,马上就会面临两个问题,一是课程内容太杂,二是课程难度太大,二本及以下层次的本科高校里,面向服务的软件架构课程其实是较少涉及的,并行技术或网格计算更多是研究生才会涉及的课程。云计算的课程若从底层开始讲起,把以上方方面面都塞进去,对老师知识储备和学生接受能力来说,都是很大的挑战。因此,在很多学校,云计算往往就设一门类似导论的课程,把云计算的原理及应用场景泛泛讲一遍就算了,学生实际上还是不了解云计算究竟是什么回事,以后可以怎么用。

(2)实验内容脱离实际。众所周知,云计算分公有云和私有云,公有云主要基于商业云平台(如AWS,Azure和阿里云等),私有云则可用一些开源云平台(如OpenStack等)来自己搭建。基于节约成本的角度,大部分高校都习惯于采用免费的开源方案,因此,设计云计算实验课程的时候,也是尽可能去用开源云平台。这样做忽视了非常重要的一点,云计算之所以得到迅速发展,首先在于其是一个成功的商业应用模式。云计算在应用层面上,基本上都是结合具体的商业云计算产品,云市场主要还是公有云的天下(公有云平台上也可以构建私有云系统,企业会逐步放弃自己搭建私有云的方案)。社会对云计算从业人员能力上的要求,也主要体现在其是否能在主流商业云平台进行相关工作上。这非常类似于在网络工程专业中,做路由和交换实验的时候,经常会放在思科或华为这些具体厂商的设备上去做,因为这样更接近实际应用场景。

此外,相比于在商业云平台上进行实操,开源云平台的配置过程更繁琐更易出错,故障的排查也更困难,在有限的学时下,极易出现实验课结束时学生还仅完成了部分实验的局面,更别说看到实验结果了。

2  面向实际应用的云计算课程方案

要想有效地开展云计算教学,就不能想当然,得以云计算的实际应用为切入点,对云计算课程的设置、内容安排及实验教学进行系统的梳理和优化。笔者所在的华南理工大学广州学院软件工程专业,从2017年开始与亚马逊AWS合作,对云计算的理论和实验教学进行了重新规划设置。

(1)面向工作内容设置课程

云计算课程的设置,没有必要围绕云计算涉及的各项底层技术来展开,而是应该以“基础+工作路径”作为课程设置的原则。

所谓“基础”即开设一门《云计算基础》课程,这门课的内容包括向学生介绍云计算的基本概念、特征、优势,侧重点放在云计算主要向用户提供哪些方面的服务,以及这些服务对应商业云计算平台的哪些产品来完成。通过该门课程的学习,学生可以从产品的角度对云计算的脉络有个大体上的了解。显然,对于初学者来说,这样的教学内容更直观更易于接受,有助于树立学生对云计算的兴趣。

所谓“工作路径”,则从云计算从业人员的实际工作划分角度,去设计具有不同侧重点的课程。获得这方面信息最便捷的途径就是参考主流商业云平台的IT认证体系,以AWS为例,其云计算认证体系如图2所示。

从上图可以看出,作为专业的云计算从业人员主体所对应的Associate级,设置了三种认证,也代表了三条工作路径,分别是架构工程师、开发工程师及运维工程师。也就是说,可以对照这三条工作路径来设计相应地课程,即《云计算架构》、《云计算开发》及《云上运维》,学校可根据自身师资情况来开设全部或部分课程。AWS已与部分中国高校展开了AWS Academy的合作,加入AWS Academy计划的高校,可获得其在相关课程建设上的支持(师资培训、课件、实验平台等),合作高校目前可获得《云计算基础》和《云计算架构》两门课程的支持,AWS也在积极准备《云计算开发》和《云上运维》两门课程,未来会继续向合作高校提供相关支持。

下面以《云计算架构》为例,介绍一下如何安排课程内容。设计课程内容的时候,一般要遵循三个原则:

① 面向实际需求的原则。主流商业云平台产品库能提供大量产品和服务,对于一个只有几十学时的课程来说,什么都学是不现实的,按需学习显得很有必要。一个云架构师,在进行云上架构的时候,需要具备哪些知识,对应地在商业云平台下,需要掌握哪些产品和服务。那么,这些东西便放入课程的知识单元中。

② 循序渐进的原则。云计算的应用,很少是为客户直接在云上设计和实施一套系统,换句话说,云上架构基本上不是一气呵成的,总是先将客户现有的系统迁移上云,发挥云快速、灵活、低成本的优势。因此,在课程内容安排上,首先要让学生掌握云迁移的方法,在保證本地系统原有功能和性能的基础上,在云上设计一套新的系统架构,用相应地云服务去取代本地系统原有的处理机、存储、网络等软硬件资源;接下来,才去考虑发挥云计算具有耦合性低、易于扩展、支持自动部署的优势,对原有架构进行优化。

③ 最佳实践的原则。云平台提供适合各种用户的云服务,针对某一个应用点,也可能根据不同的需求设计出不同的服务。例如数据库,在AWS的体系里,就有S3(对象存储)、RDS(关系型数据库)、DynamoDB(NoSQL数据库)、RedShift(数据仓库)等多种产品。架构师必须要根据客户的实际情况,对产品进行选择或组合,这部分知识的积累往往需要经验,而学生在大学里,不太可能积累这方面的经验,因此,结合具体场景和案例,给出一些最佳实践的介绍,就很有必要了,未来学生在实际工作中,可以参考最佳实践来举一反三。

基于以上三个原则,便可设置出《云计算架构》的课程内容,如图3所示。

(2)在商业云平台上完成实验教学

正如前文所述,云计算实验教学最大的痛点在于,没有合适的实验环境。采用开源平台,实验内容繁琐,故障难以排查,也和实际应用脱节。在商业云平台上进行实验,一般来说,效果肯定是会好许多的。

费用问题是不可回避的,尽管国内外的主流商业云平台都提供了一些针对大学生的优惠套餐,如提供若干小时免费的基础套餐等,但根据以往的实践,学生往往对云平台的计费方式不敏感,在云平台中,绝大多数的服务都是要计费的,而且,某个功能由几项服务组成,较容易出现学生结束实验的时候忘了关闭其中的若干服务而造成继续计费。因此,直接让学生在商业云平台上开账号做实验,并不是一个很可行的做法。为此,一些商业云平台公司,也在逐步与高校合作,采用沙箱(Sandbox)的方式来进行实验,所谓沙箱,即在商业云平台中划分出一部分云资源,形成一个独立的作业环境,在这个环境中,学生可以以免费的方式使用实验所需的必要资源。沙箱环境下,每个实验学生可以使用的资源有限,也有利于故障的排查,不会给教师带来太大负担。

在实验内容的设置上,可根据安排的实验学时做具体的安排,一般来说,实验时长为1-2节课为宜。《云计算基础》课程可设置4个实验,《云计算架构》课程可设置10个实验,具体如图4和图5所示。

3  方案实施效果

方案已从2018年起在华南理工大学广州学院软件工程专业试点,共200名2016级学生选修,学生展现出非常大的学习热情,到课率保持在98%左右,且绝大多数学生能按时按质完成实验,这在选修课中是比较少见的。更可喜的是,相当一部分学生日常的学习和开发实践,也逐步在向云计算靠拢,非常有利于扩展学生就业面和提高学生就业质量。截至2019年4月,已有两位同学通过了在国际上具有重要含金量的AWS Certified Solutions Architect- Associate考试。同时,参与授课的两位老师,也顺利通过了对应的AWS认证考试,提高了自己的职业技能。2019年初,在对之前合作充分认可的基础上,亚马逊公司与华南理工大学广州学院又达成了《云计算开发》和《云上运维》课程共建的协议,并且将授课进一步扩大到网络工程专业。

4  结语

云计算教学的痛点始终在于找不到合理的教学

内容及实验手段,本文以面向实际应用的角度,采用校企合作课程建设的方式,对云计算课程的内容进行了梳理和优化,并利用沙箱实验环境进行有效的实验教学,取得了比较好的效果。

参考文献

[1] 亚马逊AWS认证网站[OL]. https://aws.amazon.com/cn/ certification/.

[2] 邓一星, 王芳, 杨荣领.大数据工程师培养方案的研究与设计[J]. 计算机教育. 2018(10): 121-124.

[3] 邓一星. 软件工程专业校企合作形式的探索与实践[J]. 软件. 2016(8): 54-56.

[4] 闫实, 刘占波, 王晓丽. 云计算技术在高校计算机基础教学中的应用[J]. 软件, 2018, 39(6): 167-169.

[5] 黄超, 唐子蛟. 基于云计算技术的智慧校园平台建设研究[J]. 软件, 2018, 39(5): 27-30.

[6] 韩万江, 张笑燕, 陆天波, 等. 软件工程专业认证的新思路研究[J]. 软件, 2015, 36(3): 37-40.

[7] 荣艳冬. 基于云计算的高校就业信息服务平台的应用研究[J]. 软件, 2015, 36(5): 45-48.