Challenge

Scaling Moodle vertically works well until a certain amount of traffic, but going beyond that requires horizontal scaling, which involves running it in a cluster. This can be challenging due to several factors:
  • The architecture of Moodle is not designed for horizontal scaling by default. It is primarily designed for a single-server deployment.
  • Requires careful consideration of how data is stored and accessed.
  • Introduces additional complexities in managing the system configuration and releases of new versions.
  • Requires additional infrastructure resources that make operating Moodle more difficult and make monitoring even more important.

Approach

Firstly, we followed the official reference architecture for Moodle in AWS to design an infrastructure that could scale Moodle horizontally, then we coded that infrastructure with Terraform in order to automate the provisioning of new platforms.

We needed to be sure that our solution could scale up and down to optimise costs when demand is low and keep it available and smooth during high-traffic peaks. So we did several iterations of load testing and improved the solution until it met the requirements not only on paper but backed by real usage.

Finally, we automated the release of new versions of the platform to make it transparent to both users and developers and avoid any downtime or maintenance mode.

Result

We provided a solution to quickly provision a new Moodle platform in the cloud and automated workflows to make releases of new software transparent for both users and developers.

Tech involved

Value added

This solution allows our client to stay ahead of competitors by handling a massive amount of traffic and students, saving time, reducing errors through automation and improving user experience and customer satisfaction.

Are you looking for a similar project?