Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

An Example of how a deployment might change as it grows can be found in Feanil's talk from Open edX's first conference: http://goo.gl/5nlNqy

As the talk suggests for any size production, in order to simplify scaling and updating, the first step is to spearate your persistance layers from your application layers.

Small Installations

For small installations, you should start off with one machine that has all the applications layers and one machine that has all you data.  The machine with you applications can change more easily and more often without having to worry about updates causing issues with your data. Furthermore, when you do updates to the databases you can be more deliberate with the changes.

Setting up App Layer Machine

The app layer consists of any of the front end or API servers that you need that can scale horizantally.  This includes any of the django apps(edx-platform, insights, ecommerce, xqueue), the ruby discussion app(forum/cs_comment_service).  To bring this up, you can run the edx-stateless.yml playbook against the machine that you want to use for serving all your apps.

Setting up the Persistance Layer Machine

To setup the use the edx-persistance.yml playbook.  This playbook will setup, mysql, memcache, rabbit, elasticsearch and other datastores that various applications need.

Large Installations

edX's Deployment