Multiple Agency Installation

Multiple Agency Installation

by Jason Whitworth -
Number of replies: 7
First off let me start by saying this isn't a duplicate of the numerous other posts floating around concerning multi-tenancy in moodle as this instance is slightly different. I have spent the past couple of weeks researching the different architecture paradigms that allow an individual to have multiple moodle sites running off of a single codebase (such as having multiple virtualhosts and config files, or using remote-learner's Elis plugin, etc), however I'm not certain these will work for this particular situation.


What we are trying to accomplish is an "Enterprise" version of moodle(with Elis) that will allow for separation of agencies. For example if a user from agency1 logs in they will only have access to agency1's courses and users while being unaware that the system supports other agencies. If this was all we were seeking to accomplish, using multiple virtalhosts and config.php files would be sufficient, however there is another catch.

While agency1 is unable to see agencies 2 - 4, they may wish to create a course that must be completed by ALL agencies. If we went with the multiple virtualhosts and config.php files we would still be running individual databases to store the information for each agency, therefore there would be no cross functionality for users. A user would need to be registered on each moodle installation to be able to take courses assigned by that particular agency.

It sounds like what we are needing is a single installation that breaks the different agencies up into "UserSets" where there is a centralized database that all of the agencies are using. This is where Remote Learner's ELIS plugin is said to excel. It gives the administrator the ability to create multiple usersets and then lock specific users down to these usersets. Users within a userset then operate unaware that there are other agencies using the same system.

From what I can gather Elis should work to solve this case if we included a "global" userset that every agency would have access to to push out global classes to all of the users of the system while keeping their agency specific courses hidden. What concerns me however about Elis is the scalability. Once the system grows to several thousand users, I can see the single moodle database becoming so slow it would be almost unusable. Therefore I am leery about using Elis on a large scale.


Would anyone have any ideas about how to handle this situation? Am I being paranoid about using Elis? At this point any feedback would be great, even if it's "OMG Don't do that!".

Average of ratings: -
In reply to Jason Whitworth

Re: Multiple Agency Installation

by Richard Oelmann -
Picture of Core developers Picture of Plugin developers Picture of Testers

I don't know much about ELIS itself, but it sounds from your comments as though you have done your research and that is the tool that will meet your requirements - your question then really seems to be about whether your database/infrastructure will manage the size of installation you want, rather than the ability to split it into 'agencies'.

'Several thousand users' - as in users enrolled on your Moodle site or are you expecting several thousand concurrent users?

Moodle is used to support institutions which have multiple tens of thousands of users and higher, and its a case of getting that architecture right, so hopefully Tim or someone from the OU, or one of the other large scale users will be able to respond to you as to how they do it. You might even want to sepak directly to RL themselves to see if they have any information about scale or clients you can talk to about their experiences.

Might this thread be of some use? https://moodle.org/mod/forum/discuss.php?d=214680

In reply to Richard Oelmann

Re: Multiple Agency Installation

by Jason Whitworth -

"your question then really seems to be about whether your database/infrastructure will manage the size of installation you want, rather than the ability to split it into 'agencies'."

If there isn't another option that I am unaware of then it does appear that Elis is capable of splitting the agencies up, and this will be the route we go with. However if anyone knows of another way to go about it, I'm open to all opinions.


"Several thousand users' - as in users enrolled on your Moodle site or are you expecting several thousand concurrent users?"

There will be approximately 40,000 enrolled users, so at any given point in time there could be anywhere from a couple hundred concurrent to a couple thousand 


"Might this thread be of some use? https://moodle.org/mod/forum/discuss.php?d=214680"

Some good information on clustering, and utilizing memcached is something that I hadn't thought of.

In reply to Jason Whitworth

Re: Multiple Agency Installation

by Justin Hunt -
Picture of Particularly helpful Moodlers Picture of Plugin developers

Never tried it but there is : http://www.iomad.org/


Average of ratings: Useful (1)
In reply to Justin Hunt

Re: Multiple Agency Installation

by Jason Whitworth -

I started researching iomad and stumbled across another moolde based lms called totara (http://www.totaralms.com/) which looks to do everything we are needing and then some, however it is now up to management as to whether or not they are willing to pay for the enterprise code/support. They do have a freely available version but it is based off of a working beta and not recommended for production environments.

In reply to Jason Whitworth

Re: Multiple Agency Installation

by ben reynolds -

Before you leave it to the bosses, I'd talk to the folks involved.
I love my boss, but my first obligation is to the folks who have to do the teaching work.

In reply to ben reynolds

Re: Multiple Agency Installation

by Jason Whitworth -
"my first obligation is to the folks who have to do the teaching work"


This is another reason why totara is so appealing. They have thorough documentation that is easy to read and understand as well as a youtube channel that addresses functionality. That in itself is huge when your talking about such a large userbase.