Open edX版本升级中的数据迁移

Open edX每年发布两个大版本,版本之间的直接升级困难,几乎等于重装。因此如果要把原有的实例升级到新版本,可行的方式是:

1.在新的服务器上安装新版本Open edX

2.在新版本Open edX进行同等的配置和定制,如语言、配置文件、Xblocks、二次开发等

3.导出老版本Open edX数据,导入到新版本Open edX

4.运行数据升级脚本。如果有问题,手工调整数据结构

目前可以参考的文档有 https://groups.google.com/forum/#!searchin/edx-code/migrate%7Csort:date/edx-code/FZdfXAaawsk/m-Tywq3hGQAJ 以及 https://blog.just4fun.site/edx-data-migrate.html。这两份文档都比较老,我们将在Ginkgo.2-InsightsLite镜像上进行F版本的数据升级,来展示目前的升级方法。

Open edX Con2018摘要:Getting Started with Open edX Development

首先广告一下@种瓜 写的企业服务解读  https://blog.just4fun.site/edx-enterprise.html

本文将简单介绍这个演讲 https://openedx2018.sched.com/event/EUAV/getting-started-with-open-edx-development,这个演讲介绍了如何入门Open edX开发。两位演讲者是edX架构师Nimisha Asthagiri以及AppSembler的Nate Aune。这里是演讲的PDF文档 https://schd.ws/hosted_files/openedx2018/c7/Getting%20Started%20with%20Open%20edX%20Development.pdf 。

核心能力

全栈Web开发 (Python/Django/JS)

DevOps 经验 (Linux, Cloud hosting)

开源项目经验也有帮助

Open edX用到的技术

Django (web开发框架)

Python (脚本语言)

ReactJS/BackboneJS (前端语言)

MySQL (学生数据存储的数据库)

MongoDB (课程数据存储的数据库)

RabbitMQ (处理后端任务)

Ansible (配置管理)

Hadoop (分布式处理)

领域

架构图

这里提供了不同时期的架构图。其实架构并没有大的变化,表现的角度不同。

现场练习

启动/停止 LMS 和 CMS (Studio)

创建superuser

改变platform name

对theme做一个小修改

安装和启用第三方 XBlock

练习不覆盖的

Deploy an Open edX site to production Build a custom theme from scratch Create an XBlock from scratch Discuss every feature Open edX provides Localization and translations

扩展Open edX的成本

文档和社区

Official docs.edx.org

Building and Running Open edX

Installing, Configuring and Running Open edX Open

edX Developer Guide

edX’s Confluence Wiki

Open edX Youtube Channel

edX Architecture Onboarding

edx-code Mailing list

Slack community

Stackoverflow

edXchange

 

在PDF里有更多的具体操作文档。本文不再贴出。

Open edX 2018 Conference

Open edX 2018年会已经在加拿大蒙特利尔举办结束。本次会议带来了不少技术亮点。

我们会陆续进行一些技术分享的解读。社区里的其他朋友也会解读各自感兴趣的部分,然后汇总为一个报告,力图为大家展现当前的Open edX技术图景。

官方的会议文档列表  https://openedx.atlassian.net/wiki/spaces/COMM/pages/756384075/Open+edX+2018+Presentations

官方的会议日程  https://openedx2018.sched.com/

轻量级Open edX数据分析系统的设想

Open edX包含一个数据分析系统Insights。它包含三个组件:

  • Pipeline,用于将LMS的log文件归集到Hadoop进行计算,并把计算结果写入Mysql。
  • DataAPI,用于将Mysql中的分析结果输出给Insights使用。
  • Insights,用于展示分析结果。

目前是一个重量级的系统。针对的是edx.org这种千万级别的用户网站产生的数据。大量的log被输送到Hadoop进行离线计算用来展示。因此对于小规模的Open edX部署,数万人级别的用户,这样的计算太繁琐。

我们计划开发一个轻量级的数据分析系统。有两个主要方向:

  • 使用python计算来取代hadoop,实现一个基于pandas的pipeline。还在insights里面展现
  • 直接在Inistructor Dashboard里面加入分析展现。可以看整个课程,或者单个学生的学习分析

这两个系统会全部开源。有兴趣一起研究的朋友可以参与。

Open edX Ginkgo.2 OVA镜像文件下载

镜像基于官方文档制作。去掉了Insights和AnalyticsAPI。

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/146440579/Native+Open+edX+Ubuntu+16.04+64+bit+Installation

 

  • 硬件配置 1CPU/4G RAM/500G HD
  • Ubuntu用户 edustack,密码 edustack.org
  • 没有生成随机密码,各种系统服务都使用默认密码。仅用于开发测试。

下载地址

http://202.196.166.180/downloads/%E5%AE%9E%E9%AA%8C%E8%BD%AF%E4%BB%B6/%E9%95%9C%E5%83%8F/edustack-ginkgo2.ova

百度网盘

https://pan.baidu.com/s/1qZ8QIsO 密码:fxaz

https://pan.baidu.com/s/1sngEEoX 密码:1s29

运维文档

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/60227913/Managing+OpenEdX+Tips+and+Tricks

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/19662636/How-to+articles

https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/88375372/Common+Issues+and+How+to+Fix+Them

开发文档

https://openedx.atlassian.net/wiki/spaces/OpenDev/overview

 

Open edX Ginkgo 中文语言包

项目地址 https://github.com/eduStack/ginkgo.zh-CN

在Transifex语言包基础上进行了修正和补充。经过验证没有语法错误。

安装方法:

1 加载edxapp环境

sudo -H -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/edx-platform

2 下载语言包

git clone https://github.com/eduStack/ginkgo.zh-CN

将下载的po文件拷贝到conf/locale/zh_CN /LC_MESSAGES

3 检查翻译

cd /edx/app/edxapp/edx-platform
i18n_tool validate -l zh_CN

执行后在conf/locale/zh_CN /LC_MESSAGES输出.dup和.prob文件,文件中指出翻译错误的地方。

4 编译翻译文件

paver i18n_fastgenerate

paver i18n_fastgenerate和paver i18n_generate的区别在于,paver i18n_generate会首先paver i18n_extract然后编译,而paver i18n_fastgenerate会直接编译。

5 重启edX服务,重启Nginx,清除浏览器缓存。

Open edX 第七个版本ginkgo.1发布

8月11日Edx放出了Ginkgo的第一个测试版,我们安装了这个版本,可以访问 http://ginkgo.edustack.org/ 试用。

Ginkgo是Open edX的第七个大版本,从Aspen开始,每个版本的名字都是一种植物。

本版本的改进请看 https://openedx.atlassian.net/wiki/spaces/COMM/pages/156674241/Ginkgo 。主要技术变化包括:

可以发现主要的基础组件都升级到了较新的版本(并不是最新)

  • Django 1.11.X
  • Elastic 1.5
  • Node 6.9

另外,Ginkgo版本的文档也已经放出

IBL的课程制作理念与Light Board

来自纽约的公司IBL在今年Open edX年会上介绍了他们如何制作课程视频,中间提到了几个很有用的理念:

后期制作是非常费时费力的,所以IBL的内容全部是实时内容;其次是永远和顶级的教师合作,并使用最新的教育技术。

 

说到最新的教育技术,他提到了35″的幕布,iPad,4K控制台,以及一种叫做Light Board的设备。

根据官网http://lightboard.info/的说法,Lightboard是一个发光的玻璃黑板, 用于录制视频讲座主题。 你面对你的观众,板书就在你面前呈现。这是一个开源硬件,网站上提供了制作的方法,也可以在这里 http://lightboard.info/buy-or-build.html 买现成的。

世界各地的很多学校和教师都实现了自己的Lightboard ,这里可以看到一个长长的名单,包括康奈尔,哥伦比亚,斯坦福等学校 http://lightboard.info/lightboards-of-the-world.html

 

 

课程制作中,有几个关键的角色,教授、课件设计者、摄影师、工程师共同配合来完成课程。

完整的视频点这里观看

Open edX2017马德里年会回顾摘要

Open edX 2017年会于2017年5月24日-25日在西班牙马德里卡洛斯三世大学举办,来自27个国家的240多位社区用户参加了会议。

Anant Agarwal发表了主题演讲,几个比较有趣的内容:

两个问题
第一个问题:2030年有多少比例的人的工作会消失,答案是50%。
第二个问题:到2025年,业界的千年一代工作者比例有多大?答案是75%。
因此工作的内容在快速更迭,但是工作者不可能都到大学去学习新技能,因此在线学习仍将是一个重要趋势,大量的2000年后出生的工作者本身从小已经具备了数字化学习能力。

edX.org的用户已经达到1100万,同时各个Open edX搭建的第三方学习平台用户也是1100万。因此整个Open edX社区一共有2200万用户。

通过大数据和神经科学来研究教学法。MIT的John Gabriella发现,融合了视频、讨论、测试的学习者,脑部的EGG图形最活跃。

Joel Barciauskas介绍了社区的情况。

edX的CTO介绍了公司技术团队的架构。

Learner团队介绍了Ginkgo版本的产品改进。

Educator团队介绍了Ginkgo版本的产品改进。

ClassCentral的39个顶级MOOC网站中,9个是由Open edX搭建的。

目前由Open edX搭建的国家级MOOC平台。

会议视频及PPT请见
https://openedx.atlassian.net/wiki/display/COMM/Open+edX+2017+Presentations

一位参会者Mike Goudzwaard写的心得  http://mgoudz.com/2017/06/06/hola-open-edx/

Open edX与SCROM

SCORM (Shareable Content Object Reference Model),译做共享内容对象参考模型或共享组件引用模式,是目前最为人所熟悉及最被广泛采用的一套线上数字学习(Web-Base e-Learning)标准。SCORM 的建立解决长久以来不同来源的教学内容不能互通互享的问题。SCORM 是由美国国防部 (DoD,Department of Defense) 和白宫国家科学和技术政策办公室(OSTP,Office of Science and Technology Policy)在 1997 年所成立的一个名为「高级分布式学习」计划 (ADL (Advanced Distributed Learning) Initiative,以下简称 ADL)所倡议及建立的一套标准,目标是建立标准化及现代化(数字化)的教育及培训环境。

更多可见

http://www.adlnet.org/scorm/

http://chinese.classroom-aid.com/2014/01/scorm-overview-i.html/

https://zh.wikipedia.org/wiki/SCORM

遗憾的是,至今Open edX仍然不支持SCROM。对于此,社区也一直在进行讨论。基本的思路有两种:

一种是通过第三方工具如SCROM Cloud来讲SCROM包装为LTI,然后再从Open edX调用LTI内容。具体的步骤可以见 https://blog.jazkarta.com/2015/02/08/adding-scorm-packages-to-open-edx-via-scormcloud-and-lti/

另一种是用Xblock来实现SCROM包的上传、解析、播放。appsembler和Raccoon Gang在这方面做了一些工作,开源了各自的Xblock。注意appsembler的Xblock使用了一个商业的Player JCA,所以不包含播放代码;我们将对Raccoon Gang的Xblock做进一步测试。

参考链接

http://www.appsembler.com/blog/getting-scorm-content-into-open-edx-with-the-scorm-xblock/

http://learning.perpetualny.com/blog/open-edx-interoperability-ltiscorm-and-more

https://github.com/raccoongang/edx_xblock_scorm

https://github.com/ihowson/tincan-xblock

https://github.com/appsembler/edx_xblock_scorm/

https://groups.google.com/forum/#!msg/edx-code/OkUKff4w78M/9wqJKtnEa28J