Friday, February 15, 2013

Large Scale Course, Enrollment & Content Management

Notes from Moodlemoot 2013


Asim Aziz and Chris Goetz from the U of A presented

Challenges
Info from SIS is very fluid
18 different faculties
SIS info is often behind reality
Philosophy is if something is not urgent and not unusual, it should be automated.

Automation
course creation - automatically created upon instructor request
self-service request tool

Content management
copy content from old courses, user never sees moodle's backup restore page

enrollment management
180000 seats in flux
cohorts used for enrollment
instructors/TAs enrolled
sometimes a faculty level course used for shared resources

create course
copy contents
add cohorts

faculties broken down by categories
cohorts sync'd daily
groups created with cohort

copy content plugin + IMS enterprise plugin

Archive server filesystem is mounted to production server to allow access to courses (so it can get at MBZ)


Thursday, February 14, 2013

Automation Using SQL Server


Notes from Moodlemoot 2013


Jim Bennett from Greater Saskatoon Catholic School board presented

Uses MSSQL as all their existing servers were Microsoft, and expertise designing and maintaining asp apps
Server runs moodle 1.9 due to the amount of customization
Custom apps are in folders prefixed with division name
Custom blocks in moodle

courses run for 150 days in year (separate run of 2 months over summer)
students are enrolled for 150 days (needs to account for holidays/summer/etc)
every two weeks a report card is emailed to students with marks for activities
at 75 days midterm report card
at 150 days final report card is sent to teacher for approval before sending
"attendance" is tracked as more than just log onto the system uses moodle logs to see if they actually did anything
a 5 days misses message sent to student, parents, teacher
at 10 day missed same but more strongly worded
at 15 days warning goes to counselors and admin
Using maplewood for SIS
Stored procedures are generic and modulers
Self contianed accounts, no central auth

Why, When, How to Upgrade Moodle


Notes from Moodlemoot 2013


Olivier Guillot and Gilles-Philippe Leblanc from Université de Montréal presented

Why:
Bugfixes, security fixes
major improvements
stay close to current to make upgrades easier (ie 2.1 to 2.5 would be hard)
easier on any custom mods
easier to backport critical fixes from upcoming verisoin
avoid pitfall of being too far behind to upgrade

when:
avoid 2.x.0 versions
2.x.1 is usually out in a month with substantial fixes
each version has new improvements that are subject to bugs
january and august upgrade windows for major versions 2.x

how:
get neve version
merge custom code on new
commit sources
insall on devel server first, then road test

do functional testing using browsers
test critical modules (grades assignment forums)
fix/merge theme, fix functional test
backport blocker and critical issues from upcoming versojns
load testing to see if new ver has performance issues
winmerge
3 month testing phase

minor fixes - backoirt security blocker critical
search tracker for updates marked with UI change -> that way you know what to make users aware of
upgrade based on downtime from stats
post on form, post news block on all pages about upcoming downtime

Integrating Moodle With Facebook

Notes from Moodlemoot 2013


Rafael Scapin from Dawson College presented

Pilot project with a single course
They created a closed facebook group and added all the students to it.
The teacher creates a separate facebook account to manage the group with.
The teacher would post course updates to the facebook group so that students could get notifications.
Some issues:
Some students not comfortable with friending their teacher
Facebook changes all the time, sometime tools would disappear

The moodle server still holds all content, the facebook group just links into it.
The primary draw for it for students was being able to get notifications on their phone when new content was posted. Will this be a non-issue when the new moodle app is released?

There is a site called academicconnect.net which is a social network for educators and students.

Wednesday, February 13, 2013

Sustaining Moodle in a Large Organization

Notes from Moodlemooot 2013


Dave Sun from the U of A talked about their Moodle installation

The U of A migrated from Blackboard Vista to Moodle

They use three primary moodle servers, production, archive and test
archive is a copy of the expired course with all student data removed, used for staff to import course content from.

Git is used to maintain moodles.

The instances run as a vmware cluster, with pgsql as the database.

There is a provincial initiative to consolidate moodle hosting with Cybera. Cybera is using openstack and Chef to roll moodle installs.

In addition to the 6 application servers and single database server, there is a server dedicated to running moodle cron and backup jobs.

Redmine is used for project management.

Tuesday AM is set time for minor changes like plugin updates. Last sunday of month for major upgrades.
Moodle's cohort system is used for handling enrolments.

Users are kicked across in a daily batch
Using PeopleSoft on the back end
Help desk uses Kayaco support suite for ticketing with end users.
OTRS is also used for ticketing
Baseline response to tickets is 24h
Very few core modifications (maybe 10 lines of code total, and that's for their category level admin plugin)

0 to 100 in 18 Months

Notes from Moodlemoot 2013


Grzegorz Dostatni presented on the U of A's moodle infrastructure.

Highly available infrastructure
Organizational structure is as if not more important than the technology used. You need to strike a balance between developers "fix it now, put it in prod now" and sysadmins "must always remain stable".
Cyber is hosting the U of A, NAIT and Athabasca U moodle instances.
Using emc cx-4 for storage, U of A reviews storage vendors every 5-7 years.
6 physical hosts, 2 in a separate data center
vmware is set to never run app nodes on the same server to maintain redundancy
using ubuntu LTS for OS
pgsql used because of in house familiarity, caused some headaches as mysql is more widely supported
db is running in a vm, not a physical server
lvm fileserver replicatiion
drdb to mirror over network
hourly backups with 30 day retention using dedup on fileserer
eAccellerator for PHP acceleration
both servers are NTP sync'd as to restore to a certain point, the db and fileserver must be restored to the same point in time

Data points to monitor:
On all servers
cpu load
disk
free memory

On db server
sql errors
long processes (greater than 3h runtime)

On fileservers
drdb status/errors

On app servers
num apache processes (>100 = yellow alarm, >125 red alarm)

Have a process in place for dealing with bottlenecks (ie. first we upgrade ram, then cpu then disk)
Scripts: www.ualberta.ca/~dostatni/moodlemoot2013
NFS mounts to filestorage

43 000 Students – Which architecture?

Notes from Moodlemoot 2013


Olivier Guillot presented on Université de Montréal's moodle installation

At U of M, moodle is their 2nd most critical system after email.

The have a similar setup to U of A in that production instance is loadbalanced, and moodle cron is run on a separate server.

Using moodle's integrated backup system to do daily course backups, history of 10 backups

Using a PHP cache is necessary (doubles performance) U of M uses APC (alternate PHP cache)

Using mysql tuner/mysql enterprise monitor to monitor database health

Daily push of enrolments

courses are named with coursecode-section-semester (ie. MAT10101-A-W13)
currently in house SIS, moving to peoplesoft
single moodle instance
using munin for graphing, nagios for alterting, moving to git for version control/updates, using Hudson (now Jenkins) for server mirroring.
Moodle-Stats for monitoring instance (github moodle-scripts)
agile-scrum and jira/confluence for helpdesk
Leaves courses open for 3 years so that students can still audit them
Teachers responsible for importing content into new courses.