Description
You may have heard of edX.org, the MOOC site created by Harvard and MIT, but did you know that the software powering this site is open source and written in Python? We’ll do a technical deep dive and explore how this software is built in a scalable way to serve millions of concurrent learners, and also show you how you can create your own Open edX site to deliver online courses at scale.
Abstract
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.
Bio
My first exposure to Python was in 2003 when I began using the Plone CMS, which is based on Zope. This ignited a lifelong love affair with Python. In 2004, I founded Jazkarta, a Boston-based web consultancy to build websites for organizations like Harvard, Oxfam and Smithsonian. Back when PaaS’es were sexy, I founded DjangoZoom to make it easy to get your Django apps running in the cloud. Now I’m leading the 20 person distributed team at Appsembler, whose mission is to empower trainers and educators to create delightful online learning experiences.