Tuesday, February 25, 2014

edX-platform - Deploying edX-platform fullstack in Ubuntu 12.04

Our team @UNS is deploying an edX-platform instance in a VPS. The openness of edX helps us a lot in saving resources and time to plan out the architecture of the project. But, because the edX-platform has gone so far, the code base has grown enormously with a bunch of technologies, It will be a challenge for us to master everything to operate the platform efficiently. There are pros and cons.

It seems like everything will be OK the first time we look at edX. I meant the advantages of using Open edX. It is not only because of a huge community behind Open edX, but also because this is a great chance for us to learn and to create value for our Vietnamese education system. The edX platform seems to have a well documentations which helping us to deploy it easily and in a short period of time. With its great architecture design, the platform is mean to serve a lot of users. It meant a lot of educational opportunity for people. I'm not talking about the technologies of edX themselves but its great value to bring knowledge to people.

But, deploying a huge system is a pain in the ass even though the edX's configuration project has provided us a lot of ready-to-use deployment method like: using ansible or vagrant virtual environment. It is because the resources we have and the resources the edX development team are somehow different. So, It's a little bit tricky to make it work for us.

At first, we tried the vagrant deployment method: https://github.com/edx/configuration/wiki/edx-Production-stack--installation-using-Vagrant-Virtualbox . But we have no luck because the VPS we purchased is a x64 bit system and the vagrant method requires some special virtualization technologies enable in the machine which is not possible (VT-x or something). Then, we decided to switch to another deployment method which will install the fullstack into the VPS itself.

When deploying edX into the VPS directly following this instruction https://github.com/edx/configuration/wiki/edX-Ubuntu-12.04-Installation, we encountered some issues such as:

* Cannot find pyparsing package to install

For this error, go to the configuration directory and run again:

# cd /var/tmp/configuration/playbook
# sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost," --limit @/root/edx_sandbox.retry

* If after the first installation attemp fails, you upgrade the system which will upgrade the mongodb database. You may need to remove the mongodb before running the above command.

After fixing some minor issues, we finally finished the installation and the platform is now online beautifully:

More updates about this project will follow in the next blog posts.