![640?wx_fmt=jpeg](https://i-blog.csdnimg.cn/blog_migrate/ef304f6277360debd8a30926cf443589.jpeg)
获取开源云一手资讯&大咖讨论,文末添加小助手!
几乎所有近年来开发的新技术都是复杂的、分布式的,并且是为大规模使用而建的——Kubernetes、Ceph和OpenStack就是好例子。这些系统与几年前的系统截然不同。实际上,今天任何出色的软件解决方案都具有松散耦合、异步性和弹性的属性,而这些属性在过去的系统中很少见。
会构建、会运维这些复杂系统的人很少,而且很抢手。这让正在努力采用新技术的企业很头疼。
有没有新颖的方法让专业人士熟悉这些技术?如何为学习者提供复杂的分布式系统用作真实的学习环境,并让他们能够随时随地以自己的节奏学习?
可以让学习者按需访问复杂、真实的分布式环境的系统是一个好选择。事实证明,Open edX和OpenStack的组合是提供这一功能的绝佳选择。
Open edX
Open edX是一个学习管理平台,2012年始于哈佛大学和麻省理工学院,随后斯坦福大学也参与进来。AGPL于2013年发布,它迅速扩展到其他大学和公司,微软在2015年成为早期采用者。现在,非营利组织edX Inc.推动着Open edX的大部分发展,并负责edx.org网站。整个平台是开源的。
截至2018年5月,edx.org通过自己及其官方合作伙伴的网站为大约1600万学习者提供服务。与此同时,估计还有1800万学习者在全球范围内使用独立的基于Open edX的平台。
Django
Open edX平台的核心,即它的学习管理系统(LMS),本质上是一个相当复杂的Django应用程序。更确切地说,是一个完整的应用程序集合。任何学习者都与LMS交互以访问课程内容,观看视频,参加实验和测验,以及与共同学习者协作。
课程管理系统(CMS,别名Open edX Studio)则面向教师、指导者和课程作者。学习者不与Studio互动,而对作者而言,其使用也是可选的。喜欢的人可以在外部内容商店或Git等修订控制系统中管理课程内容,并从那里导入。与LMS一样,CMS也是Django应用程序。
与其他机器(不是人类)交互,Open edX大量使用Django REST Framework(DRF)。例如,外部应用程序可以使用REST API根据购买支付系统中的课程席位来调用自动课程注册。
XBlocks:一个灵活、可扩展的插件系统
XBlocks是Open edX的插件系统,允许作者扩展Open edX的功能。 XBlocks用于学习目的,如构建分子模型或解数学方程式。
XBlock SDK和API是Apache许可的,因此XBlock作者原则上可以编写与不使用开源许可证的系统连接的XBlock。实际上,大多数可用的XBlock都使用Open Source Initiative批准的许可证。
要在OpenStack托管的资源上进行交互式学习,可以使用XBlock根据需要选择课程作者定义的Heat堆栈,并通过Apache Guacamole在学习者的浏览器中呈现终端会话或RDP会话。
OpenStack
OpenStack是一个基础设施即服务平台,其编排组件OpenStack Heat可以为学习者提供任意的复杂实验室环境。使用Heat模板,课程作者可以定义一个完全可重复的、自包含的环境,例如,由用两个路由器连接的三个网络中的10个服务器组成,每个服务器都可以任意配置。
Heat有一些有趣的功能,使其与其他云平台上的类似产品(如AWS CloudFormation或Google Cloud Deployment Manager)区分开来。 特别是,Heat有能力暂停整个堆栈,然后在完全相同的状态下恢复它。
这非常方便:在自定进度的培训中,学习者通常每节课花费30到45分钟,并且可能每天或每隔一天学习一次课程。在一个月的时间里,学习者总共学了10个小时。一个月不间断运行的成本可能超过1000美元,而按需使用可以将价格降低到几十美元。
小结
通过将Open edX(特别是其XBlock插件系统)与OpenStack相结合,可以让学习者以完全自我导向和非常经济的方式探索任意复杂的分布式系统的内部工作。这种由专门的开源组件组成的系统可以使组织和个人快速提升技能。
原文链接:
https://opensource.com/article/19/1/openedx-openstack-complex-learning-environments
获取更多开源云技术资讯&大咖交流&免费活动,欢迎添加开源云中文社区小助手,备注开源云!
(长按识别二维码添加)