Documente Academic
Documente Profesional
Documente Cultură
April 2012
Prepared by Alex Bchner
Disclaimer
Every
effort
has
been
made
in
the
preparation
of
this
white
paper
to
ensure
the
accuracy
of
the
information
presented.
However,
the
information
contained
in
this
white
paper
is
without
warranty,
either
express
or
implied.
Synergy
Learning
cannot
be
held
liable
for
any
damages
caused
of
alleged
to
be
caused
directly
or
indirectly
by
this
guide.
April
2012
BY-NC-SA License.
Page 2
www.synergy-learning.com
Table
of
Contents
Disclaimer .............................................................................................................. 2
Table
of
Contents ................................................................................................... 3
Introduction........................................................................................................... 4
Multi-tenancy
overview ......................................................................................... 5
Multi-tenancy
requirements .................................................................................. 8
The
multi-tenancy
solution
that
is
NOT
coming
to
Moodle ................................... 16
Monolithic
Approach ........................................................................................... 19
Distributed
Approach........................................................................................... 23
Federated
Approach ............................................................................................ 25
Summary ............................................................................................................. 28
Appendix
I
Checklist .......................................................................................... 30
Appendix
II
References...................................................................................... 32
About
Synergy
Learning ....................................................................................... 33
Page 3
www.synergy-learning.com
Introduction
This
Synergy
Learning
white
paper
discusses
different
approaches
and
models
of
how
to
design
and
implement
a
multi-tenancy
in
Moodle.
If
any
of
the
following
scenarios
are
of
interest,
then
this
document
is
for
you:
The
white
paper
is
structured
as
follows:
1. A
brief
overview
of
multi-tenancy
in
Moodle
2. Requirements
of
multi-tenancy
in
Moodle
3. Four
approaches
to
multi-tenancy
in
Moodle
a. The
multi-tenancy
that
is
NOT
coming
to
Moodle
b. Monolithic
approach
c. Distributed
approach
d. Federated
approach
4. Summary
5. Checklist
of
multi-tenancy
in
Moodle
6. References
Page 4
www.synergy-learning.com
Multi-tenancy
overview
Multi-tenancy
in
Moodle
has
been
discussed
for
more
than
5
years.
Forum
discussions
on
moodle.org
have
been
posted
as
early
as
December
2007
and
the
topic
has
come
up
frequently
ever
since.
At
some
stage
it
was
proposed
that
multi-tenancy
would
be
implemented
as
site-
wide
groups,
but
this
never
materialised.
Instead,
cohorts
have
been
introduced
in
Moodle
2,
but
they
dont
cater
for
multi-tenancy.
Multi-tenancy
has
been
on
the
roadmap
for
version
2.2
and
2.3,
but
unfortunately
Moodle
HQ
put
the
proposed
solution
on
ice
in
February
2012
more
on
that
later.
Since
then,
a
lot
of
organisations
educational
or
commercial
are
still
looking
for
a
suitable
solution
for
multi-tenancy.
But,
what
exactly
is
multi-tenancy?
According
to
Wikipedia
multi-tenancy
refers
to
a
principle
in
software
architecture
where
a
single
instance
of
the
software
runs
on
a
server,
serving
multiple
client
organizations
(tenants).
[]
With
a
multitenant
architecture,
a
software
application
is
designed
to
virtually
partition
its
data
and
configuration,
and
each
client
organization
works
with
a
customized
virtual
application
instance.
In
a
Moodle
context
this
means
that
separate
entities
or
instances
(tenants)
managed
within
a
centrally
managed
setup.
Page 5
www.synergy-learning.com
Tenant
1
Tenant
Tenant
2
Central
Tenant
5
Tenant
3
Tenant
4
So,
who
needs
multi-tenancy
in
Moodle?
Well,
any
organisation
that
has
to
manage
more
than
a
single
Moodle
site.
We
have
listed
a
few
use
cases
in
the
introduction.
Other
web-based
systems
that
are
used
in
educational
setups
facilitate
similar
concepts,
for
instance
Page 6
www.synergy-learning.com
Terminology
used
in
this
white
paper:
Term
Description
Central site
Local site
Master administrator
Tenant administrator
Moodle instance
Note:
Multi-tenancy
does
not
deal
with
content
sharing.
Other
facilities
(mainly
Moodle
Networking
via
MNet
and
the
recently
introduced
Moodle
Community
Hubs)
have
been
designed
to
cater
for
this.
Before
we
look
at
different
implementation
approaches,
let
us
first
deal
with
the
plethora
of
requirements
that
exist
for
multi-tenancy
in
Moodle.
Page 7
www.synergy-learning.com
Multi-tenancy
requirements
There
are
a
number
of
requirements
when
it
comes
to
multi-tenancy,
which
have
been
listed
in
the
diagram
below:
There
are
3
main
areas
where
decisions
have
to
be
made
whether
management
should
take
place
at
the
central
instance
or
at
the
local
instances:
User
and
course
management
There
are
a
number
of
critical
questions
that
have
to
answered
in
the
context
of
user
and
course
management:
Storage
of
user
information
Page 8
www.synergy-learning.com
User details
Course
Management
Should users from multiple tenants be able to enrol in the same course?
Tenant
Privacy
/
Walled
Gardens
Is it acceptable that users from one tenant can see users from other tenants?
Is it acceptable that courses from one tenant can be seen in another tenant?
Can
users
from
one
tenant
communicate
(send
messages)
to
users
form
another
tenant?
Depending
on
the
answers
to
the
above
questions,
a
potentially
very
different
multi-tenancy
set
up
has
to
be
constructed.
Admin
and
code
management
These
are
further
critical
decisions
that
have
to
be
taken
before
a
decision
can
be
made
about
the
most
suitable
multi-tenancy
setup:
Settings
Moodle
is
equipped
with
a
plethora
of
administrator
settings.
For
each
top-level
menu
item,
it
should
be
decided
whether
the
administration
will
be
dealt
with
centrally,
managed
locally,
or
inherited:
Page 9
www.synergy-learning.com
How
do
you
know
what
a
parameter
is
called?
Go
to
the
respective
setting
in
Moodle
(in
this
case,
Security
|
HTTP
security)
and
you
will
see
the
name
of
the
parameter
underneath
the
label.
If
the
value
is
specified
in
config.php,
Moodle
will
display
Defined
in
config.php
besides
the
parameter,
which
indicates
that
the
setting
cannot
be
changed
by
the
user.
Invalid
values
are
also
shown
for
these
hard-
coded
settings.
In
the
following
screenshot,
the
Debug
messages
value
is
incorrect
while
the
Display
debug
messages
value
is
correct:
Page 10
www.synergy-learning.com
Page 11
www.synergy-learning.com
Module
&
Code
management
One
of
the
many
advantages
of
Moodle
is
its
modularity
and
the
ability
to
modify
its
source
code.
Any
deviation
from
the
core
standard
system,
whether
via
third-
party
plugins
or
through
code
changes,
increases
the
amount
of
maintenance
work
when
it
comes
to
updating
and
patching
the
system.
When
dealing
with
multiple
installations,
this
can
potentially
become
an
extremely
onerous
task.
It
is
therefore
critical
to
decide
up-front
what
level
of
modifications
will
be
applied
to
the
system(s):
Modules
(third
party
plugins)
Will all tenants have the same plugins or will some require extra one?
Code
modifications
(patches
as
well
as
new
functionality):
Page 12
www.synergy-learning.com
Miscellaneous
management
There
are
a
number
of
miscellaneous
issues
that
can
have
an
impact
on
the
type
of
multi-tenancy
configuration,
namely
themes,
reporting
and
backups.
Branding
More
often
than
not,
tenants
require
their
own
branding.
A
faculty
might
want
its
own
colour
scheme
to
be
in
line
with
the
printed
prospectus;
companies
that
have
subscribed
to
training
offerings
on
a
commercial
site
whish
to
have
their
own
corporate
identity
applied;
and
each
school
might
require
its
logo
on
the
site
of
a
region-wide
installation.
What
is
often
critical
is
whether
the
branding
has
to
be
present
before
users
login
or
if
a
generic
login
page
is
acceptable
and
the
branding
changes
after
authentication
has
been
successful.
This
can
be
by-passed
by
a
separate
login
page
that
contains
the
branding
of
the
respective
tenant.
A
closely
related
issue
to
branding
is
the
front-page.
In
some
cases
it
is
acceptable
that
there
is
a
shared
front-page
across
tenants.
In
other
cases
it
is
compulsory
that
each
tenant
has
its
own,
dedicated
front-page.
There
exist
some
workarounds
with
modified
myMoodle
pages,
but
this
approach
is
only
suitable
certain
circumstances.
Reporting
Reporting
is
often
critical
in
learning
setups
and
Moodles
reporting
tools
are
not
its
strong
point.
This
is
emphasised
further
in
a
multi-tenancy
set
up.
Typical
requirements
include,
but
are
not
limited
to:
Page 13
www.synergy-learning.com
A
great
tool
for
reporting
is
the
Configurable
Reports
add-on,
which
can
be
downloaded
from
the
plugin
section
on
moodle.org.
It
allows
the
creation
of
a
wide
range
of
flexible
and
interactive
reports
using
a
generator
or
native
SQL.
It
further
supports
charts
and
export
to
common
formats,
such
as
CSV
and
MS-
Excel.
To
cater
for
certain
multi-tenant
setups,
Synergy
Learning
has
extended
the
module
with
a
powerful
drill-down
functionality.
In
the
screenshot
above,
the
drill-down
has
already
taken
place
from
the
region
North-West
Europe
(tenant)
to
United
Kingdom
(sub-tenant).
It
is
possible
to
further
drill-down
to
institutes
(sub-sub-tenants),
in
this
case
Glasgow
and
London.
Backups
A
solid
backup
and
restore
strategy
is
essential
in
any
Moodle
setup.
The
complexity
increases
when
dealing
with
multiple
tenants.
Issues
to
consider
are
Page 14
www.synergy-learning.com
Other
There
are
likely
to
be
other
requirements
that
are
unique
to
your
organisation.
For
instance,
a
unique
site
policy
might
be
required
for
each
tenant
or
different
customised
language
packs.
If
this
is
the
case,
your
list
of
needs
will
have
to
be
extended
accordingly.
Now
that
we
have
covered
the
majority
of
requirements
for
multi-tenancy
in
Moodle,
let
us
look
at
four
different
approaches
of
how
to
implement
it.
Page 15
www.synergy-learning.com
The
multi-tenancy
solution
that
is
NOT
coming
to
Moodle
It
might
come
across
cynical
to
describe
an
approach
that
will
not
be
implemented,
but
we
have
decided
to
include
it
in
this
paper
as
it
gives
some
interesting
insights
into
multi-tenancy,
its
complexity,
its
diversity,
and
the
fact
that
there
is
no
one-size-fits-all
method.
In
August
2011
multi-tenancy
was
added
to
the
Moodle
roadmap.
An
initial
specification
was
developed
(docs.moodle.org/dev/Multitenant_support)
and
a
tracker
item
was
created
(MDL-28946).
The
proposed
solution
introduced
a
new
Tenant
context
to
the
context
hierarchy
that
is
already
forming
the
basis
of
permissions
granted
in
Moodle
systems.
Page 16
www.synergy-learning.com
The
underlying
idea
is
that
each
tenant
has
its
own
categories
and
courses,
its
own
front
page,
and
also
its
own
users.
The
approach
has
a
number
of
advantages:
However,
the
solution
also
comes
with
a
number
of
drawbacks:
No MNet support
Page 17
www.synergy-learning.com
To
cut
a
long
discussion
(on
MDL-28946)
short,
it
was
decided
by
Moodle
HQ
in
March
2012
to
cancel
the
project.
Below
are
a
number
of
posts
from
the
comments
section
of
the
tracker
item
that
demonstrate
the
evolution
of
the
thread:
August
11:
January
12:
February
12:
Unfortunately,
during
2011
it
became
apparent
that:
It's
unfortunate,
but
I
think
the
responsible
thing
for
me
to
protect
Moodle
is
to
cancel
that
approach.
So,
what
went
wrong?
The
multitude
of
requirements
of
multi-tenancy
simply
couldnt
be
catered
for
with
a
single
one-size-fits-all
approach.
We
have
already
seen
the
wide
spread
of
different
and
potentially
incompatible
requirements.
Now
that
multi-tenancy
has
been,
at
least
for
now,
abandoned
by
Moodle,
let
us
deal
with
three
approaches
that
cater
for
different
sets
of
requirements
and
needs.
Page 18
www.synergy-learning.com
Monolithic
Approach
The
simplest
form
of
multi-tenancy
has
been
labelled
monolithic,
that
is
a
simple
Moodle
instance
in
which
a
category
represents
a
tenant.
Using
sub-categories
and
sub-sub-categories
also
sub-tenants
and
sub-sub-tenants
can
be
supported.
We
have
the
ability
to
create
a
dedicated
theme
for
each
category.
However,
this
will
not
be
seen
until
a
user
has
logged
in.
A
new
role
category
administrator
or
similar
can
be
created
and
the
appropriate
permissions
can
be
granted
accordingly,
for
instance
the
ability
to
add
sub-categories
and
courses.
Below
is
an
example
of
such
an
implementation.
The
Goethe
Institut
is
Germanys
cultural
institution
operational
worldwide.
It
promotes
the
study
of
German
abroad
and
encourages
international
cultural
exchange.
The
organisation
has
a
total
of
over
200
institutes
(tenants)
that
are
organised
in
more
than
100
countries,
which
themselves
are
represented
in
17
regions.
The
interface
has
been
modified
to
simplify
the
management
of
new
tenants
and
new
roles
have
been
created
for
regional,
country,
and
institute
managers.
Page 19
www.synergy-learning.com
One
main
criticism
of
the
monolithic
approach
is
that
plugins
can
only
be
configured
site-wide
and
not
at
a
tenant,
that
is
category,
level.
This
has
been
tackled
to
a
degree
in
Moodle
2.3
with
the
introduction
of
the
addinstance
capability
for
each
module.
Effectively,
the
capability
provides
a
vehicle
to
allow
administrators
to
control
which
activities
can
be
added
to
which
courses,
similar
to
the
already
existing
mechanism
for
filters.
However,
the
capability
only
caters
for
activities,
but
not
for
other
plugins,
such
as
authentication,
enrolment,
plagiarism,
and
so
on.
Also,
it
can
only
be
applied
at
course
level
and
not
at
category
level.
Page 20
www.synergy-learning.com
An
alternative
approach
to
monolithic
multi-tenancy
has
been
implemented
by
Totara.
Totara
is
a
powerful
Moodle
distribution
targeted
at
corporate
and
public
sector
organisations.
Totara
supports
the
concept
of
organisations.
Within
a
Totara
instance,
multiple
organisations
(tenants)
can
be
created,
which
themselves
can
represent
any
internal
organisations
structure.
Below
is
an
example
to
demonstrate
this:
Organisations,
among
other
information
such
as
position,
can
then
be
assigned
to
users,
either
manually
or
in
batch.
2012
Synergy
Learning
Page 21
www.synergy-learning.com
Learning
programs
(sets
of
Moodle
courses)
can
then
be
run
for
all
staff
of
an
organisation
(tenant)
and
powerful,
interactive
reports
can
be
created
at
every
level
of
the
organisation
hierarchy.
A
similar
approach
has
been
implemented
in
an
alternative
Moodle
distribution
called
ELIS.
ELIS
has
the
concept
of
organisational
clusters,
where
each
cluster
represents
a
tenant.
A
cluster
is
effectively
a
site-wide
group
that
can
be
associated
with
courses.
To
summarise
the
monolithic
approach,
here
is
its
pro-cons
table:
Tenant privacy
Site-wide reporting
Local modules
Page 22
www.synergy-learning.com
Distributed
Approach
The
principal
idea
of
the
distributed
approach
to
multi-tenancy
is
to
have
a
single
code
base,
but
multiple,
separate,
stand-alone
Moodle
instances.
All
systems
have
to
be
identical
and
no
local
modifications
are
possible.
The
solution
requires
two
main
steps:
1.
Web
server
configuration
These
are
crude
instructions
for
Apache
servers.
Other
web
servers
will
have
similar
facilities.
For
each
Moodle
instance,
a
separate
vhost
file
is
required
where
the
parameters
ServerName,
ErrorLog
and
CustomLog
point
to
the
individual
instances,
but
the
DocumentRoot
variable
has
to
be
identical
in
all
vhost
files.
This
ensures
that
the
same
code
base
(CFG->dirroot)
is
used.
2.
Moodle
setup
(config.php)
There
is
one
main
config.php
file
that
is
called
no
matter
which
instance
is
opened
in
a
web
browser.
This
acts
as
the
launch
pad
for
all
other
instances
that
are
represented
by
individual
config.php
files.
These
local
config.php
files
have
to
be
stored
in
a
separate
location
and
have
to
follow
a
strict
naming
convention
(in
our
example
<name
of
domain>_config.php).
The
installation
of
these
as
well
as
its
maintenance
is
usually
implemented
via
scripts
to
ensure
the
consistency
of
the
set
up.
In
order
to
make
this
work,
the
main
config.php
file
has
to
be
modified
as
follows,
assuming
your
local
config.php
files
are
stored
in
/etc/local_moodle:
Page 23
www.synergy-learning.com
<?php
$moodle_host = $_SERVER['HTTP_HOST'];
require_once(/etc/local_moodle/.$moodle_host._config.php);
In
each
local
config.php
file,
the
$CFG->dirroot
has
to
be
set
to
the
same
value
that
has
been
specified
in
DocumentRoot
in
the
vhost
file
above.
Local
config
files
can
then
be
customized
further
to
cater
for
any
idiosyncrasies
on
particular
tenant.
For
instance,
you
might
want
to
freeze
certain
administration
parameters
that
must
not
be
modified
by
the
tenant
administrator.
The
distributed
approach
has
been
implemented
in
Synergy
Learnings
training
setup
where,
in
the
Moodle
Administrator
course,
each
participant
has
its
own
instance.
This
regularly
requires
the
installation
of
20+
systems
when
multiple
sessions
are
taking
place
simultaneously.
This
has
been
supplemented
with
reset
scripts
to
clear
the
sites
after
course
completion.
One
large
implementation
of
a
distributed
system
that
follows
the
above
approach
is
at
Cumbria
and
Lancashire
Education
Online
in
the
UK.
It
comprises
of
almost
1,000
Moodle
instances,
where
each
tenant
represents
a
school
in
the
region.
Each
school
has
its
own
administrator,
its
own
theme
and
its
own
administrations
settings
to
manage
users,
courses
and
grades.
To
summarise
the
distributed
approach,
here
is
its
pro-cons
table:
Single codebase
Tenant privacy
Local modules
Separate theme
Site-wide reporting
Page 24
www.synergy-learning.com
Federated
Approach
The
main
drawback
of
the
monolithic
and
distributed
approaches
is
that
all
tenants
have
to
run
an
identical
system.
While
this
is
acceptable
or
wanted
in
many
scenarios,
it
is
a
showstopper
in
others.
To
tackle
this
shortcoming,
lets
have
a
look
at
the
federated
approach
to
multi-tenancy.
The
principal
idea
of
this
method
is
to
provide
tenants
with
their
own
modifiable
and
configurable
Moodle
instance,
but
with
a
built-in
mechanism
to
guarantee
consistency
of
the
source
code
across
systems.
To
achieve
this,
we
make
use
of
the
code
management
system
GIT
and
the
Moodle
command
line
interface
(CLI),
which
was
introduced
in
version
2.
The
picture
below
visualises
the
workflow
of
the
approach
(in
case
you
wondered,
the
strange
looking
creature
in
the
image
is
the
github
logo):
The
central
repository
is
your
own
github.
It
regularly
synchronises
with
the
main
github
of
Moodle.
That
way,
your
master
system
is
up-to-date.
You
then
have
the
ability
to
link
in
modules
from
other
githubs
(usually
third-party
plugins)
or
your
own
code
repository.
Page 25
www.synergy-learning.com
The
local
repositories
pull
their
latest
version
from
central
and
have
also
the
ability
to
link
in
modules
from
other
githubs
or
their
own
code
repository.
That
way,
each
tenant
has
full
flexibility,
but
there
is
still
a
degree
of
control
of
the
main
code
base.
There
are
a
number
of
permutations
of
the
above
workflow.
For
instance,
the
local
instance
can
pull
code
directly
from
the
main
Moodle
github,
or
code
could
be
pushed
from
central
to
local
(via
rsync),
if
only
additional
modules
have
to
be
installed
at
the
tenants
sites,
and
so
on.
The
entire
workflow
would
obviously
be
fully
scripted
to
minimise
the
amount
of
maintenance
work.
Below
is
a
skeleton
of
a
script
that
makes
use
of
GIT
and
CLI.
In
a
real-world
setup
additional
steps
would
have
to
be
added,
for
instance
to
allow
for
rollbacks
in
case
of
failure.
1
git fetch
1. Get
latest
version
from
Moodles
github
(has
to
be
set
up
prior
to
first
run)
2. Put
Moodle
in
maintenance
mode
3. Merge
latest
version
with
current
version
4. Run
update
script
without
user
input
5. Disable
maintenance
mode
2012
Synergy
Learning
Page 26
www.synergy-learning.com
One
system
where
the
above
approach
has
been
implemented
is
the
Foyle
Cloud
Moodle
Network.
The
current
set
up
includes
7
schools
aiming
at
25
schools
in
the
coming
years.
However,
the
infrastructure
can
scale
to
hundreds
or
even
thousands
of
instances,
if
required.
The
diagram
below
illustrates
the
Foyle
Cloud
Moodle
network
setup
and
the
main
user
type
responsibilities.
It
further
makes
use
of
the
Moodle
Networking
functionality
and
also
integrates
the
open-
source
e-portfolio
tool
Mahara:
To
summarise
the
federated
approach,
here
is
its
pro-cons
table:
Local modules
Tenant privacy
Site-wide reporting
Separate theme
Page 27
www.synergy-learning.com
Summary
We
have
covered
multi-tenancy
and
a
number
of
alternative
approaches
how
it
can
be
implemented
in
Moodle
environments.
These
were
monolithic,
distributed
and
federated
as
well
as
a
concept
by
Moodle
HQ
that
has
never
been
implemented.
We
have
also
provided
some
examples
to
demonstrate
the
feasibility
of
each
method.
What
has
hopefully
come
across
is
that
there
is
no
one-size-fits-all
solution.
The
decision
of
the
most
suitable
method
depends
entirely
on
the
requirements
of
the
application
to
be
put
in
place.
There
are
other
options
to
consider,
which
have
not
been
dealt
with:
Cohorts
There
has
been
some
on-going
discussion
about
extending
the
concept
of
cohorts
to
facilitate
multi-tenancy.
IMS-LTI
The
standard
allows
Moodle
to
be
an
LTI
consumer,
but
also
to
be
a
LTI
provider.
This
approach
opens
up
some
interesting
avenues
that
are
yet
to
be
explored
in
a
multi-tenancy
context.
Web
services
A
lot
of
organisations
have
developed
its
own
management
system
that
controls
Moodle
remotely.
This
is
certainly
a
feasible
approach
in
a
multi-
tenancy
environment,
if
the
management
system
is
able
to
cater
for
the
requirements
and
provides
a
programmable
interface.
Page 28
www.synergy-learning.com
We
have
mainly
focussed
on
technical
aspects.
Other
facets
that
have
not
been
dealt
with,
but
are
critical
in
the
decision-making,
are
more
of
operational
nature:
How
are
the
tenant
sites
being
supported?
Will
there
be
central
support
staff
or
will
there
be
local
support
staff.
Like
local
administrators,
how
about
the
training
requirements
of
these?
This
can
be
a
logistical
challenge
that
should
not
be
under-estimated.
A
further
issue
that
has
been
left
out
intentionally
is
that
of
data
protection
as
this
depends
heavily
on
local
idiosyncrasies
and
legal
structures.
It
might
be
the
case
that
the
storage
of
tenants
data
has
to
be
separate
or
that
reporting
across
tenants
is
not
compliant
with
regulations.
Another
challenge
that
will
only
be
applicable
in
some
scenarios
is
the
existence
of
stand-alone
Moodle
sites,
which
have
to
be
migrated
(tenant
import)
to
a
multi-tenancy
set
up.
A
technical
process
has
to
be
put
in
place
to
guarantee
the
import
of
data
and
potential
conflicts
in
terms
of
functionality
have
to
be
catered
for.
Equally,
if
a
tenant
wishes
to
leave
the
federation
(tenant
export),
what
are
the
technical
implications?
While
a
lot
of
all
this
might
look
very
technical,
daunting
and
labour-intensive,
it
will
be
a
relatively
pain-free
exercise
if
a
solid
plan
is
followed
alongside
a
professional
and
experienced
partner.
Page 29
www.synergy-learning.com
Appendix
I
Checklist
Below
is
a
checklist
that
forms
a
solid
starting
point
for
planning
a
multi-tenant
set
up.
This
list
is
by
no
means
complete,
but
should
give
you
some
indication
what
approach
is
most
suitable
for
your
requirements.
The
three
described
approaches
and,
for
completeness,
Moodles
planned
implementation,
have
been
Distribution
Federated
Moodle planned
Monolithic
User
Management
Must
each
tenant
administrator
be
able
to
manage
its
own
users?
N1
N2
N2
N1
B3
I3
L45
L45
?5
Course Management
course?
Can
a
user
enrol
into
courses
in
multiple
tenants?
Tenant
Privacy
Is
it
acceptable
that
users
from
one
tenant
can
see
users
from
other
tenants?
Is
it
possible
that
courses
from
one
tenant
can
be
seen
in
another
tenant?
Can
users
from
one
tenant
communicate
(send
messages)
to
users
form
another
tenant?
Administration
settings
Are
administration
settings
set
centrally,
locally
or
can
they
be
inherited?
Page 30
www.synergy-learning.com
Monolithic
Distribution
Federated
Moodle planned
Modules
N6
N6
N6
Drill-downs
Y7
Tenant backups
Miscellaneous
Sub-tenants
administrator?
Code
Base
Can
tenants
make
source
code
modifications
locally?
Branding
Reporting
Backups
?
Undecided
or
unknown
1
Has
to
be
implemented
as
a
system
setting
2
Has
to
be
implemented
as
an
authentication
plugin
3
Via
roles
and
roles
overrides
4
Individual
values
can
be
frozen
via
config.php
5
Inheritance
via
flavours
6
Modules
in
2.3
via
new
addinstance
capability
7
Custom
development
of
Configurable
Reports
plugin
Page 31
www.synergy-learning.com
Appendix
II
References
Below
is
a
list
of
references
that
has
been
utilised
while
authoring
this
white
paper:
http://docs.moodle.org/22/en/Cohorts
http://docs.moodle.org/22/en/Git_for_Administrators
http://docs.moodle.org/dev/Moodle_flavours
http://docs.moodle.org/dev/Multitenant_support
http://docs.moodle.org/dev/Module_security_improvements
http://docs.moodle.org/dev/Web_services_Roadmap
http://tracker.moodle.org/browse/MDL-28946
http://blog.danpoltawski.co.uk/archives/2011-10-multi-tenant-moodle-without-the-2-2-
feature.html
http://www.moodlenews.com/2011/what-is-multi-tenancy/
http://www.open-thoughts.com/2012/03/experiments-with-moodle-multi-tenancy/
For
all
aspects
on
user
and
course
management,
roles
and
permissions,
themes,
backups,
and
reporting,
please
refer
to
the
Moodle
2
Administration
book
by
Packt
Publishing.
http://www.packtpub.com/moodle-2-administration-configuring-
securing-customizing-extending/book
We
would
like
to
thank
Gavin
Henrick
for
some
fruitful
discussions
on
earlier
drafts
of
this
white
paper.
Page 32
www.synergy-learning.com
Moodle
Hosting
Synergy
Learning
operates
a
server
farm
hosting
over
500
Moodle
installations.
Installations
range
from
small
usage
packages
to
dedicated
VLE
servers
and
load
balanced
fault-tolerant
clusters.
The
secure
environment
has
been
optimised
for
Moodle
usage
and
provides
full
nightly
backup
facilities.
The
company
also
provides
an
installation
and
health-check
service
for
sites
hosted
internally
by
clients.
Moodle
Training
Synergy
Learning
initially
started
as
an
e-learning
company
10
years
ago
and
has
a
very
strong
educational
and
pedagogical
focus
that
is
complemented
by
its
technical
skill
set.
The
company
offers
a
range
of
standard
Moodle
courses
that
are
delivered
on
a
regular
basis.
Moodle
Support
Synergy
Learning
is
assisting
a
number
of
educational
and
commercial
customers
with
support
contracts
covering
course
creation
subjects
as
well
as
administration
issues.
The
Synergy
Learning
Moodle
help
desk
operates
through
a
ticket
system
by
email
and
phone.
Page 33
www.synergy-learning.com
Moodle
Development
Synergy
Learning
has
the
technical
skill
and
experience
to
customise
Moodle
through
code
and
to
develop
new
modules
using
its
underlying
PHP
programming
language.
A
large
number
of
development
projects
have
been
completed
providing
new
functionality,
modifications
to
standard
platform
features
or
integration
with
external
systems.
Synergy
Learning
actively
contributes
to
Moodle
core.
Moodle
Themes
Synergy
Learning
is
highly
skilled
in
creating
Moodle
and
Totara
themes
(skins)
according
to
an
organisations
visual
identity
guidelines
with
the
aim
of
increasing
the
overall
usability
and
impression
of
the
site
for
specific
target
audiences.
Moodle
Integration
A
number
of
projects
have
been
carried
out
where
Moodle
was
integrated
with
existing
systems.
These
ranged
from
standard
student
management
systems
and
commercial
systems
to
bespoke
applications.
Page 34
www.synergy-learning.com