- 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.
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.
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.