Blog post:

The True Cost of Hosting Open edX Yourself

When evaluating open-source software such as Open edX, there’s one word you’re sure to see:

Free.

This is, of course, true — and it’s one reason why Open edX is so popular among trainers and educators. The code necessary to install Open edX on a server and run it are indeed, free. Anyone can host and implement it themselves — with the right resources.

But there are multiple factors to consider before going down the DIY path of hosting Open edX yourself. One of the biggest factors: costs. While access to the Open edX platform is free, there’s a lot more to it than meets the eye.

Here’s a story that I like to share about the cost of “free.” Let’s say that your friend offers you a free puppy. You might think, “I don’t have to pay anything for the puppy. Sure, I’ll take one!”

But shortly after coming home with your adorable pup, you realize that the dog needs a kennel to sleep in, food to eat, disciplinary training at puppy school, and more. Before long, you realize the care and feeding of the puppy is not free, and there’s a lot more overhead costs in terms of time and expenses.

Most open source software is like the free puppy — it doesn’t cost anything to obtain it, but you quickly find out that there are many costs, not only in dollar amounts, also in terms of your time.

A Tale of Two Costs

There are two kinds of costs you will incur if you want to run Open edX yourself: People costs and hosting costs. And within each of these there are one-time costs and recurring costs.

People costs

  • One-time costs (signing bonuses, laptop purchases, recruiter fees)
  • Recurring costs (salary, taxes, benefits)

Hosting costs

  • One-time costs (theme development, installation, setup and configuration)
  • Recurring costs (maintenance, upgrades, integrations, support)

1. A Closer Look at People Costs

Most organizations we talk to underestimate people costs — they usually only look at the hosting costs in calculating their total-cost-of-ownership (TCO).

In order to get your Open edX site up and running, customized, and maintained over time, at a bare minimum you’ll need both a software and DevOps engineer. Most likely, you’ll also need a web designer to make your site’s design match your company branding.

People roles you need

  1. Software Engineer (with experience in Python, Django, Javascript and Docker)
  2. DevOps Engineer (with experience in Linux, Ansible, MySQL, MongoDB, RabbitMQ/Redis, Hadoop, and Cloud hosting)
  3. Web Designer (with SASS/HTML5 experience)

With a small but mighty team in place, you’re also probably going to need someone to manage this team. Ideally, you’ll want someone who has experience managing a team of engineers, understands a complex piece of software, and gathers business requirements as well as translates those into engineering requirements.

If you didn’t already have these people employed and wanted to hire them, what would that cost you?

Let’s assume for argument’s sake that your company is in the Bay Area. This is an extreme example as Bay Area engineering talent is very expensive, but you can adjust accordingly for your geographical region. This is just to give you a benchmark from which you can compare.

According to Indeed.com, these are the salaries you could expect to pay to hire for these positions.

Factoring in other fees that you’re likely to incur such as signing bonuses ($20,000), laptop purchases ($12,000), recruiter fees ($102,927), you’re approaching a million dollars for a 4 person team to design, develop, administer and manage your Open edX site for the first year.

Year 2 costs will likely be lower as you won’t have all the one-time costs, but it’ll still likely to run you close to three quarters of a million dollars. You might find that you need to hire a dedicated person to answer support inquiries who’s not necessarily in a technical/engineering role, so that could add to the recurring people costs.

2. A Closer Look at Hosting costs

While you could certainly host Open edX on-premise using bare metal hardware, it’s generally advisable to use one of the many cloud hosting providers such as AWS, Google Cloud or Azure, as they will likely provide a more reliable, scalable and secure service than doing it yourself on your own hardware.

The three main cost considerations when hosting any software application are: compute, storage and bandwidth. Open edX has been designed for MOOC-scale which means that while it is certainly capable of delivering courses to millions of students, most organizations are going to have much more modest numbers of students, which means fewer server resources are needed.

A minimum recommended deployment for Open edX is a load balancer, two application servers and a database server (in the case of Open edX, it depends on two databases: MySQL and MongoDB). This architecture is typical of a 3-tier app, and the reason to use a load balancer is so that you can horizontally scale the application servers as you get more traffic to your site. The load balancer sends traffic to one or more application servers and “balances” the load equally among the app servers.

Credit: Open edX architecture by Feanil

This minimum deployment is sufficient for very basic sites or if you’re just authoring courses and haven’t invited any students yet. But, if you’re expecting any serious amount of traffic, you’re going to want a more robust deployment.

 

Credit: Open edX architecture by Feanil

Let’s look at AWS costs since that’s the most common hosting provider (we’ve made some assumptions about the storage and bandwidth costs, but your mileage may vary, so take these numbers as a rough estimate).

The fine folks at Perpetual put together this handy AWS Cost Estimation spreadsheet for calculating your expected AWS costs for hosting a scalable production Open edX site. Their spreadsheet goes into much more detail than our simple model above. You can make a copy of this spreadsheet and plug in your own numbers to determine your expected costs, based on your storage and bandwidth estimates.

As they mention in the doc, you’re likely going to want to have a demo/PLE (Production Like Environment) and a testing environment which would add 50% cost for the demo environment and 33% cost for the test environment.

So for a complete production environment, demo environment and testing environment set up, you’re looking at $1,829/mo or $21,932/yr.

Some Additional Considerations

There would be a 100% cost increase for a live-live Disaster Recovery of equivalent environments, and an approximate 33% cost increase for live-standby disaster recovery environments.

You might also want to use a CDN such as CloudFront which would add to the storage and bandwidth costs.

You’ll likely want to buy some other auxiliary services for monitoring, alerting and error logging the production environment. We use Stackdriver (monitoring), Pagerduty (alerting), Sentry (error logging). You’ll also need a mail delivery service like Sendgrid, Mailgun or Mandrill.

These auxiliary services add another $11,436 to your annual hosting costs for Open edX, so now you’re looking at $33,368/yr in total hosting costs.

Bottom Line

Add this all up and — brace yourself— you could potentially invest as much as $920,000/year to host, deploy, and manage Open edX yourself. Now for some companies, this number may be a drop in the bucket, but for many, the risk of this annual price tag is both unsustainable and unrealistic. 

Of course, context matters. For example, not all organizations should expect or will experience the very high people costs we described in the example above for companies based in the Bay Area (which makes up the majority of the costs). This is an illustrative example to demonstrate the high end of what one could expect.

If you are budget conscious like most small to mid-sized businesses, you may want to investigate alternative solutions who have domain expertise and software to get you to market faster and at a fraction of the cost of doing things yourself.

So, knowing all of this, which path are you going to choose to launch your Open edX site?

 

End of post.
  • I have to hand it to you guys, the creativity required to make up assumptions inflated enough to reach nearly a million dollars per year is pretty amazing!

  • Mohammed Ali Ahmed

    Thank you very much for this information, how you came up with the server specification?, how many users/second did you considered?