Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hosting Moodle at the OU

880 views

Published on

My presentation to iMoot 2014 (similar to one I gave at MoodleMaharaMoot Leipzig 2014) about how we host Moodle at the Open University, UK.

Published in: Technology
  • Be the first to comment

Hosting Moodle at the OU

  1. 1. Hosting Moodle at the OU Tim Hunt, Leading Technical Developer iMoot 2014
  2. 2. Outline 1. Moodle at the OU 2. Servers 3. Development 4. Configuration
  3. 3. 1. Moodle at the OU
  4. 4. 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
  5. 5. OU VLE
  6. 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. 7. 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
  8. 8. 2. Servers
  9. 9. Server architecture – main VLE
  10. 10. Test servers For the VLE • learn2 • learn2-acct • learn2upg • learn2lt For most other systems • learnN • learnN-acct
  11. 11. 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
  12. 12. Server monitoring
  13. 13. 3. Development
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 4. Moodle configuration
  19. 19. Configuration • Memcached for sessions • Turn of filtered text caching –but custom glossary filter
  20. 20. Moodle configuration - MUC
  21. 21. Moodle configuration - MUC
  22. 22. http://en.wikipedia.org/wiki/File:SS 9000J_(72ch)_@_The_Cutting_R Recording_Studios,_NYC.jpg
  23. 23. 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
  24. 24. Summary
  25. 25. 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

×