Architecture for several schools

Architecture for several schools

by Juan Daniel Burró Aláez -
Number of replies: 6

I have to create one Moodle for around 600 schools. It's expected to have a workload between 50-150req/seg (Apache).

I'm just the technical guy, not much knowledge about moodle administration, so I just apologise if some of my questions are nonsense. Right now I'm in the stage of reading a lot of info from Moodle website and forums.

We would like a default url for each school, logo, and users so I guess it would fit us something like Moodle Workplace but as we're hosting it in our own servers I guess it's not an option, is it?

Another option we've considered is to create as many Moodle installation as schoools, using docker containers and a common database for all (in another machine). Is it a good option? Could we manage all of them using cli and maybe some scripting or? Do you see any drawbacks? Any tool already created? Something via web? Just mosh?

For example installing a plugin would imply to access all our moodle websites to finish the installation? It can be cumbersome...

And about performance... we will make tests, but to gain time and  just focus in the important areas:

Should we install Redis for example for MUC or is not necesary for our use case?  What is better for performance: php-fpm or mod_php? Any other consideration? 





Average of ratings: -
In reply to Juan Daniel Burró Aláez

Re: Architecture for several schools

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators

Tuning comes last. You should first look at multi-tenancy. Run a forum search for that term. The one we the Community know, is the work of a person here, a fork of Moodle called https://www.iomad.org/. ;)

Moodle HQ https://moodle.com/ offers similar things commercially. Yes, I think it is Moodle Workplace. You have to contact a Moodle Partner for details.

In reply to Juan Daniel Burró Aláez

Re: Architecture for several schools

by Marcus Green -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
'I'm just the technical guy, not much knowledge about moodle administration,'
Sounds to me like you are a very technical guy, so I suggest you start managing a course right away to bump your Moodle admin knowledge. Also start to investigate what plugins and integrations you will want to use. For example how are you going to manage enrolments. I suggest investigating the docker solution. Keep asking questions here one at a time and you will be a Moodle wizard go live time.

If you want paid help research the Moodle Partner system.
In reply to Juan Daniel Burró Aláez

Re: Architecture for several schools

by Howard Miller -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
I'm not sure that Iomad was ever designed to work that number of tenants. It might be a bit of an ask. With this, I think that the "Devil is in the detail". For example, are these effectively going to be separate sites (e.g. each school administers their own site - you're doing the updates / backups / that stuff).

If they're all separate then I think I might be inclined to have separate installations. I can't really comment on Docker - I don't see how it works in a production environment. For example, can it handle Moodle upgrades easily?

My inclination would be to go with what I know and develop scripts to automate all the required processes (installation, upgrade, backup blah blah).

But do understand (you probably do) that this is a serious project.
Average of ratings: Useful (2)
In reply to Howard Miller

Re: Architecture for several schools

by Marcus Green -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
One of the possible side effects of multi tenancy is 'break one and break them all'. The counter argument is that if you put all your eggs in one basket (the Moodle source is the eggs in this scenario), make sure you have a very good basket. Docker is containerisation, think lightweight vm. Upgrades would happen per instance. I am no Docker expert, but I bought a book on it this week, so I will be an expert by Tuesday.
Average of ratings: Useful (3)
In reply to Marcus Green

Re: Architecture for several schools

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators

Whatever the technology, support for 600 schools will add up to something. Make sure that there'll be a team of competent 2nd level supporters at work.

Average of ratings: Useful (2)
In reply to Howard Miller

Re: Architecture for several schools

by Juan Daniel Burró Aláez -
Right now (it can change) I've decided to go with docker in the frontend (one container per school) and just one server on the backend (with or without docker), with all the databases. I've just done a github repo with all together (for testing purposes): https://github.com/juanda99/moodle-docker-production. If possible just Moodle without iomad, I need to check how to automate everything. I'll add more questions, but using new threads.