What does it take to build a web application that can serve millions of concurrent users? This talk will dissect Open edX, the open source online learning platform that powers edX.org and hundreds of other sites around the world.
Open edX is written in Django but relies on a slew of other software to work at scale. We’ll break down the components of the entire software architecture, and explain how each component is used. This will give attendees some insights into how they might architect their web application if they’re building software to serve a large audience.
We’ll discuss how Open edX utilizes both MySQL and MongoDB as data stores and why it uses MySQL for student data and MongoDB for course data. We’ll describe the queing architecture of Celery and RabbitMQ to process background jobs, and Hadoop for processing terabytes of learner analytics data.
DevOps enthusiasts will not be disappointed as we’ll go into the use of Ansible and Terraform for deploying the entire suite of software in a consistent and repeatable way up to popular cloud providers such as AWS, Google Cloud and Azure.
What will attendees learn? The attendees will get a close look at a modern Django-based web application to see how it’s architected, and come away with a better understanding of design decisions when building a web application that needs to serve 35M users from every country in the world. Attendees will also be equipped with the knowledge to run Open edX on their laptop or in the cloud, if they want to explore the software further.