前言

最近的一段时间里,并没有折腾Open edX (跑去创业了),但对这个项目仍然保持着关注

从新版本的发布(Ginkgo),到前端技术栈的迁移(React),以及基于docker的devstack的进展,偶然周末想起来,都有保持跟进。

接下来的一段时间,将离职开始一段长途旅行,途中路过一些城市,会和一些有趣的朋友以及团队碰面,路过广州的时候,准备和@红黑军团的团队一起聚一下。他们在Open edX这块扎实耕耘了很久,做了许多有意思的探索,将Open edX做成了SaaS模式。之前他们约我分享Open edX架构这块的东西,当时忙于创业,实在抽不出时间,正好最近闲暇,于是准备登门拜访。所以这两天重新集中时间翻阅了最新的文档和commit,把遗忘的地方补一下,也顺带看看有哪些新的特性

在文档里,看到安装Open edX的资料有不少变更,我整理一下,供新人参考

万事开头难

Open edX中国用户组里新加入的小伙伴,问的第一件事常常是,如何自行搭建Open edX

关于这个问题,官方在这里给了详细回答: Open edX Installation Options

Open edX is a large complex system.

如文章开篇所言,Open edX是个复杂而庞大的系统。每个折腾过Open edX的人回过头来看这句话都会觉得简直是箴言。

如果你在一开始就读到这句话,并且重视它,那么你可能会少走一些弯路

承认这种复杂度的存在,不急着以粗暴的方式一头扎入到源码丛林里,花更多的时间来阅读文档,看看开发团队的设计思路和建议,之后再深入源码的时候,不至于迷失在细节里(Open edX源码在百万量级,分散在几个子项目中)。

下边我们主要基于edx-platform 发表议论(edx-platform是Open edX的核心项目,其他子项目都是围绕它构建,或是辅助部署脚本,或是插件)

选择恰当的版本

在安装Open edX之前,你需要决定你使用什么版本的Open edX。

一般而言,你应该选择Release版本(稳定版),诸如: Dogwood, Eucalyptus, Ficus, 最新的是Ginkgo(截止到本文写作的时候2017.10.21)。Release版本经过了充分的测试,保证了稳定性。如果你在生产环境里使用Open edX,请毫不犹豫使用Release版本。至于在多个稳定版中如何选择,一般而言,如果你没有历史负担,选择最新的就好

尽管理论上,你可以git checkout出任何一次commit,然后基于此构建你的系统,但如果不是特殊的情况,你一般不会这样做。所以这不在选择的范围里。

如果你是一位开发者,需要为核心源码做测试或是提交新的PR,或者你想在本地体验最新的特性,master可能是你需要的

简单来说,如果你只是想用一个稳定的系统,选择稳定版就好

多种安装方式

你有多种选择来安装Open edX,至于应该选择哪一种,取决于你的准备用Open edX做什么

  • Devstack:用于开发调试代码(基于Vagrant),参考Running Devstack
  • Fullstack: 类生产环节的版本,用于预览,参考Running Fullstack
  • Native: 自动在Ubuntu上安装Open edX,用于实际生产环境,参考Native Open edX Ubuntu 16.04 64 bit Installation
  • Manual: 相当于手动逐行执行Native安装脚本(用于实际生产环境)
  • Bitnami: Bitnami打包了edx的所有依赖,可以一键安装,用于小规模试验和预览

个人建议

  • 开发团队建议使用Devstack,我偏好基于Docker的版本
  • 对于熟悉Linux/Django的开发者可以随意选择安装方式。对于不关心技术,只想小规模试用的用户,可以选择Bitnami,但我更推荐edustack的发行版,国内用户目前主要聚集在这边
  • 对于希望把Open edX当服务来用的企业用户,可以考虑使用SaaS平台: E-ducation, 他们在易用性上做了许多工作,很有意思,我在这趟行程中会和他们团队碰面细聊

参考