Hosting Moodle at the OU
Tim Hunt, Leading Technical Developer
iMoot 2014
Outline
1. Moodle at the OU
2. Servers
3. Development
4. Configuration
1. Moodle at the OU
We have lots of Moodles
• learn2 – the main VLE for module web sites
• learn4 – programme / qualification web sites
• learn1 – student resource websites
• learn3 – staff resource websites
• learn5 – The OpenScience Laboratory
• learn6 – online exams (pilot)
• OpenLearn – open courseware
• OpenLearn Works – collaborative open courseware
OU VLE
People
• Host systems (servers) team in IT
• Development team in IT
• Requirements/project management team in LTS
• Moodle administration team in LTS
• Academic and admin staff in faculties
• Associate lecturers (tutors)
• Students
Typical load
• 450 open web sites
• 150 000 student enrolments
• 50 roles
Each day
• 1 250 000 page-views
• 50 000 unique students
• 20 000 forum posts 6 500 000 total
• 2 000 quiz attempts 700 000 total
2. Servers
Server architecture – main VLE
Test servers
For the VLE
• learn2
• learn2-acct
• learn2upg
• learn2lt
For most other systems
• learnN
• learnN-acct
Load testing
• Simulated load using JMeter
–Course page view
–Resource view
–Forum view
–Forum post
• 6 VMs used to generate the load
• Compare releases. Try not to get slower.
http://tjhunt.blogspot.co.uk/2014/04/load-testing-moodle-262-at-ou.html
Server monitoring
3. Development
Release schedule
4 releases per year, March, June, September & December
June 2014
• 28th January: Development started
• 29th January: Moodle 2.6.1 code merged
• Early Feb: 211 add-ons tested for compatibility
• 12th March: Moodle 2.6.2 code merged
• 29th April: code freeze – September work starts
• 3rd June: release
Code management
• development branch ouvle based on v2.6.1
• features developed on topic branches wip1234
• stable branches OUVLE_419 for each release
Minor release:
• git merge v2.6.2
• cherry-pick security fixes to stable branch
http://tjhunt.blogspot.co.uk/2014/01/
moving-ou-moodle-code-to-moodle-261.html
Code management
• Major release:
git checkout -b helper_branch v2.6.1
git merge –s ours v2.5.4
git checkout ouvle
git merge –X patience helper_branch
then fix conflicts
Testing
• Two human testers
–test new features before merge
–regression testing before release
• We use PHPUnit http://docs.moodle.org/dev/PHPUnit
• Don’t use Behat yet http://docs.moodle.org/dev/Behat
4. Moodle configuration
Configuration
• Memcached for sessions
• Turn of filtered text caching
–but custom glossary filter
Moodle configuration - MUC
Moodle configuration - MUC
http://en.wikipedia.org/wiki/File:SS
9000J_(72ch)_@_The_Cutting_R
Recording_Studios,_NYC.jpg
mdl_log table
CREATE OR REPLACE VIEW mdl_log AS (
SELECT * FROM mdl_log_2014_02_12
UNION ALL
SELECT * FROM mdl_log_2014_02_05
UNION ALL
SELECT * FROM mdl_log_2014_01_01
);
CREATE OR REPLACE RULE mdl_log_delete AS ON DELETE TO mdl_log DO INSTEAD
NOTHING;
CREATE OR REPLACE RULE mdl_log_insert AS ON INSERT TO mdl_log DO INSTEAD
INSERT INTO mdl_log_2014_02_12
(time, userid, ip, course, module, cmid, action, url, info)
VALUES (new.time, new.userid, new.ip, new.course, new.module, new.cmid,
new.action, new.url, new.info);
https://moodle.org/mod/forum/discuss.php?d=243531
Summary
Outline
1. Moodle at the OU
2. Servers
3. Development
4. Configuration
Questions please!
https://learn5.open.ac.uk/ – The OpenScience Laboratory
http://www.open.edu/openlearn/ – OpenLearn

Hosting Moodle at the OU

  • 1.
    Hosting Moodle atthe OU Tim Hunt, Leading Technical Developer iMoot 2014
  • 2.
    Outline 1. Moodle atthe OU 2. Servers 3. Development 4. Configuration
  • 3.
  • 4.
    We have lotsof Moodles • learn2 – the main VLE for module web sites • learn4 – programme / qualification web sites • learn1 – student resource websites • learn3 – staff resource websites • learn5 – The OpenScience Laboratory • learn6 – online exams (pilot) • OpenLearn – open courseware • OpenLearn Works – collaborative open courseware
  • 5.
  • 6.
    People • Host systems(servers) team in IT • Development team in IT • Requirements/project management team in LTS • Moodle administration team in LTS • Academic and admin staff in faculties • Associate lecturers (tutors) • Students
  • 7.
    Typical load • 450open web sites • 150 000 student enrolments • 50 roles Each day • 1 250 000 page-views • 50 000 unique students • 20 000 forum posts 6 500 000 total • 2 000 quiz attempts 700 000 total
  • 8.
  • 9.
  • 10.
    Test servers For theVLE • learn2 • learn2-acct • learn2upg • learn2lt For most other systems • learnN • learnN-acct
  • 11.
    Load testing • Simulatedload using JMeter –Course page view –Resource view –Forum view –Forum post • 6 VMs used to generate the load • Compare releases. Try not to get slower. http://tjhunt.blogspot.co.uk/2014/04/load-testing-moodle-262-at-ou.html
  • 12.
  • 13.
  • 14.
    Release schedule 4 releasesper year, March, June, September & December June 2014 • 28th January: Development started • 29th January: Moodle 2.6.1 code merged • Early Feb: 211 add-ons tested for compatibility • 12th March: Moodle 2.6.2 code merged • 29th April: code freeze – September work starts • 3rd June: release
  • 15.
    Code management • developmentbranch ouvle based on v2.6.1 • features developed on topic branches wip1234 • stable branches OUVLE_419 for each release Minor release: • git merge v2.6.2 • cherry-pick security fixes to stable branch http://tjhunt.blogspot.co.uk/2014/01/ moving-ou-moodle-code-to-moodle-261.html
  • 16.
    Code management • Majorrelease: git checkout -b helper_branch v2.6.1 git merge –s ours v2.5.4 git checkout ouvle git merge –X patience helper_branch then fix conflicts
  • 17.
    Testing • Two humantesters –test new features before merge –regression testing before release • We use PHPUnit http://docs.moodle.org/dev/PHPUnit • Don’t use Behat yet http://docs.moodle.org/dev/Behat
  • 18.
  • 19.
    Configuration • Memcached forsessions • Turn of filtered text caching –but custom glossary filter
  • 20.
  • 21.
  • 22.
  • 23.
    mdl_log table CREATE ORREPLACE VIEW mdl_log AS ( SELECT * FROM mdl_log_2014_02_12 UNION ALL SELECT * FROM mdl_log_2014_02_05 UNION ALL SELECT * FROM mdl_log_2014_01_01 ); CREATE OR REPLACE RULE mdl_log_delete AS ON DELETE TO mdl_log DO INSTEAD NOTHING; CREATE OR REPLACE RULE mdl_log_insert AS ON INSERT TO mdl_log DO INSTEAD INSERT INTO mdl_log_2014_02_12 (time, userid, ip, course, module, cmid, action, url, info) VALUES (new.time, new.userid, new.ip, new.course, new.module, new.cmid, new.action, new.url, new.info); https://moodle.org/mod/forum/discuss.php?d=243531
  • 24.
  • 25.
    Outline 1. Moodle atthe OU 2. Servers 3. Development 4. Configuration Questions please! https://learn5.open.ac.uk/ – The OpenScience Laboratory http://www.open.edu/openlearn/ – OpenLearn