通过使IT专业人员能够从任何位置获取复杂的分布式系统技术的关键技能,这种组合可以缩小技能差距
近年来开发的几乎每一项新技术都是复杂的、分布式的和按比例构建的:Kubernetes、Ceph和OpenStack就是几个例子。这些系统与我们几年前看到的系统大不相同。实际上,今天任何重要的软件解决方案都带有松散耦合、异步性和弹性特性,而这些特性在过去的系统中通常是不存在的。
能够建造和操作如此复杂的系统的人很少,而且需求量很大。这给那些因为缺乏了解新技术的人而难以采用新技术的组织带来了一个问题:我们正在处理的是技能缺口,而不是技术缺口。
这意味着我们需要新颖的方法使专业人员能够熟悉这些技术。我们必须为专业学习者提供复杂的、分布式的系统作为现实的学习环境。我们必须让他们随时随地以自己的速度学习。
让学习者根据需要访问任意复杂的、现实的分布式环境。事实证明,两个“open”(open edX和openstack)的组合是提供这种功能的最佳选择。
Open edX
Open edX是一个学习管理平台,于2012年在哈佛大学和麻省理工学院启动,随后在斯坦福大学进行了合作。它在2013年以AGPL的形式发布,并迅速扩展到其他大学和企业,而在2015年,微软成为了一个当时看来不太可能的早期采用者。今天,非营利组织edX Inc.推动了Open edX的大部分开发工作,并继续主办edx.org学习网站。整个平台是开源软件,欢迎社区的贡献。
截至2018年5月,edx.org已经通过自己和官方合作伙伴的网站为大约1600万学习者提供了服务。与此同时,全世界估计还有1800万学习者使用基于edX的独立开放平台。
Open edX平台的核心是它的学习管理系统(LMS),它的创建者称为LMS,这是一个非常复杂的Django应用程序。或者更确切地说,是应用程序的整个集合,反映了许多Django开发人员肯定熟悉的主题。任何学习者或学生都可以与LMS进行交互,以访问课程内容、观看视频、参加实验和测验,并与合作学习者进行协作。
它的近亲, Open edX Studio是为教师、讲师和课程作者准备的。学习者不与Studio交互,甚至对作者来说,它的使用也是可选的。喜欢的人可以在外部内容库或像Git这样的修订控制系统中管理课程内容并从那里导入。与LMS一样,CMS也是一个Django应用程序。
对于与其他机器(而不是人类)的交互,Open edX大量使用Django REST框架(DRF)。例如,外部应用程序可以使用REST API调用基于(比方说)在支付系统中购买课程座位的自动课程注册。
XBlocks:一个灵活的、可扩展的插件系统
XBlocks是Open edX的插件系统,允许作者显著扩展Open edX的功能。xblock的存在有多种学习目的,比如在化学中建立分子模型或求解数学方程。
XBlock SDK和API都是Apache许可的,所以XBlock的作者原则上可以编写与不使用开源许可的系统交互的XBlock。在实践中,大多数可用的XBlocks都使用开源的初始批准许可。
对于在openstack托管的资源上交互式学习,可以使用XBlock根据需要生成课程作者定义的热堆栈,并通过Apache Guacamole在学习者的浏览器中显示终端会话或RDP会话。
OpenStack
OpenStack是一个基础设施即服务平台,其编制组件OpenStack Heat在为学习者提供任意复杂的实验室环境时非常方便。使用一个热模板,课程作者可以定义一个完全可复制的、自包含的环境,例如,由三个网络中的10台服务器与两个路由器连接,并为每个服务器任意配置。
Heat有一些有趣的特性,将它与其他云平台(如AWS CloudFormation或谷歌云部署管理器)上的workalikes区别开来。特别是,Heat有能力挂起整个堆栈——不管它有多复杂——然后在更晚的时候以完全相同的状态恢复它。
这在训练实验室中非常有用:在自定步速训练中,学习者通常在每节课上花30到45分钟,可能每天或每隔一天上一节这样的课。在一个月的时间里,学习者使用实验室的时间可能总共只有10个小时。让同一个实验室运行一个月,成本可能超过1000美元,这是完全不可能的;然而,只有在需要的时候才提供实验室,可以把价格降低到两位数,使整个努力完全负担得起。
总之
通过将Open edx的功能(特别是它的XBlock插件系统)与OpenStack相结合,学习提供者可以让学习者有机会以完全自我导向和非常划算的方式探索任意复杂的分布式系统的内部工作方式。这样一个由专有的开源组件组成的系统可以使组织和个人快速地提高技术技能。