2. Background and Context
●
Managed thousands of Moodle sites
●
Managed millions of Moodle user accounts
●
Over 10 years experience with Moodle
●
Tuning, scalability, and performance expert
●
Author of Moodle Module Development
3. Format
● Variety of tips / tricks
● Learn the possibilities
● Some hands on
● Ask questions!
● Share your tips
4. Getting to Know You
● How many were in this
session last year?
● Interest in new features in
2.8 / 2.9?
5. Getting to Know You
● How many new
admins?
● How many running
Moodle 2.6? Moodle
2.7? Moodle 2.8?
● Anyone running
Moodle older than
2.6?
● Any Moodle 1.9
sites?
● Are you a 'geeky
6. Getting to Know You
● How many host your own Moodle site?
● What OS are you running?
● What web server are you running?
● What database are you running?
● What are you hoping to learn today?
7. Outages
● 80% of failures are bad changes
● 80% of downtime finding the bad change
8. Outages
● 80% of failures are bad changes
● 80% of downtime finding the bad change
9. Moodle Mission Critical?
Use Change Management!
● Have a stakeholder change advisory board
● Who are our stakeholders?
● What should we control?
● What causes downtime?
● What causes user issues?
10. Hands-on
● Forming a Change Advisory Board
● Who?
● How often?
● What are we controlling?
11. Change Management Tips
● Control settings management
● Control module approval
● Control stack changes
● Document the how's and why's
● Be responsive
● Read the Visible Ops book
13. Admin Know Thy Server
● Monitoring: Cacti / Zennoss
● SNMP monitoring
● Round robin log storage
● Alerts and Notifications: Nagios
● SNMP alert system
● Have your servers page or text you!
14. ●
Linux most used for scalability
●
Windows lower performance for PHP
apps, but improving
●
Mac OSX forking performance issue
●
Apache and MySQL concurrency issue
Platform Selection
15. Performance Tips
● PHP Accelerator – APC / OPCache
● MySQL –
– Buffers and Query Caching
– Use InnoDB
– Use MariaDB build
● Sessions
● Moodle source code location
20. JMeter Benchmarking
● Simulates simultaneous user activity
● Gathers response and throughput results
● Not a browser can't test javascript
● Can use to measure +/- of changes
● Can use to estimate expected concurrency, but
harder
● Moodle 2.6 and onward has builtin integration
21. User Management
● Plan ahead Moodle sites grow fast!
● Measure twice cut once
● Automate
22.
Great combination: LDAP authentication with
external database enrolment
Automate account creation
Enrollment Plug-ins
− Automate course creation
− Automate teacher assignment
− Automate student enrollments
Synchronization scripts
A Better Way – Automate!
23.
Automate user creation, course creation and
enrolments
Use LDAP auth + external DB enrolment
Get higher adoption rates from instructors
Instructor can focus more time on teaching less on the
technology
Just-in-Case Model
25. Roles
● Avoid changing built in roles
● Remember reset defaults option
● Know what level to apply roles at
– Admin: global
– Course Creator: global, or category
– Student, Teacher: course
● Know what level capabilities work at
● Make new roles by copying most similar existing role
27. ●
Course backups not a full backup!
●
Disable automated course backups?
●
Yesterday instance
●
Backup Elements
●
Moodle code
●
Moodledata
●
Database
Backups Management
28. Hands-on
● Make a Moodle backup
– Copy Moodle source dir
– Copy Moodle data dir
– 'dump' database to sql file
29. ●
Use an issue tracker / ticket system
●
Get a detailed user report
●
Use Moodle debugger
●
Reproduce issue
●
Use search
●
Google
●
Moodle tracker
●
Moodle forums and docs
Finding and Fixing
30. Hands-on
● Enable debugging
● Site Admin → Development →
Debugging
● Increase debugging level
● Enable display
● Enable performance info
31. Moodle Issue Tracker
Use notification screen to confirm version
Moodle Issue Tracker
»Vote for bugs
»Set a watch your important bugs
»Store issue ID in your support system
for later reference
»http://tracker.moodle.org
33. Custom Development and Modules
Don't load modules just because they are
available
Use modules over “hacks”
Use the forums to evaluate modules
Use the author's profile to research the creator
Consider long term availability
Consider security
34. Common Plug-in Types
● Blocks
● Activity modules
● Filters
● Auth
● Enrollment
● Local
● Themes
35. PhpMyAdmin / Adminer
Useful and powerful, but dangerous
Useful to pull reports not built into Moodle
Change settings not in GUI
Fix Moodle when “broken” by user error
Reset administrator password if locked out
37. MyODBC
Windows client software
Connect MySQL to desktop applications
Make ad hoc reports in MS Access, Excel,
Open Office, etc.
38. Various Admin Helpers
● Moodle debug
● General debugging
● Performance debugging
● phpinfo – confirm your php build
● iperf – test your network
● Iostat / sar – linux disk usage stats
● strace – see what a process is doing
39. Security
● Security report
● Use password salts
● User passwords – less secure then ever!
– Know about password managers like
lastpass and keepass
● Don't give web server user write
permissions to Moodle source
40. General Security
● Select Enterprise class OS with long term update
support.
● Automate updates / have set release schedule
● Moodledata outside of web root
● Try mod_sec
● Consider using weekly stable git for Moodle auto
updates
● Consider forced logins
● HTTPS logins
41. General Security
● Select Enterprise class OS with long term update
support.
● Automate updates / have set release schedule
● Moodledata outside of web root
● Try mod_sec
● Consider using weekly stable git for Moodle auto
updates
● Consider forced logins
● HTTPS logins
42. Hands-on
● Run security report
● Enable force logins
● Show secure logins setting
● Show kpass/last pass password manager
● Go to Moodle Docs security FAQ
43. Email delivery
Make sure you have valid reverse DNS
Make sure you have permission to send email
for primary administrator's email account
Use email debug to help diagnose problems.
44. Custom themes
Start with a basic theme
Copy existing theme to a new folder name
Prevents upgrades from wiping out
Test on a non-production site
Test with many browsers / screen sizes
47. What we do
● Expert advice and eLearning program review
● Evangelism and training
● Instructional design
● Custom development
● System tuning
● Performance assessment