Some thoughts

directly from the furnace

Moodle auf Openshift betreiben

Moodle?

Moodle ist die klassische Lernplatform fürs Intra-/Internet und wird von vielen Schulen und Universitäten eingesetzt. Neben unzähligen Einstellungsmöglichkeiten und Plugins hat es mittlerweile einen Status erreicht, der es möglich macht, Moodle für nahezu jeden Anwendungsbereich einzurichten. Dabei spielt es dann keine Rolle, ob 12 Nutzer bedient werden oder 12 Millionen. Moodle ist für so ziemlich alles gewappnet und eine aktive Entwicklergemeinde sorgt für einen ständigen Fluss an Verbesserungen und Erweiterungen.

Das klingt erstmal gut, aber wer Moodle ernsthaft einsetzen möchte, braucht eine Menge Zeit, einige Ressourcen und Durchhaltevermögen. Moodle kann ein richtiges Monster sein. Die Basisinstallation ist recht umfangreich und man braucht einiges an Ressourcen, um Moodle einigermaßen zum Laufen zu bekommen. Der Speicherplatz, den man vom Provider nebenan zur Verfügung gestellt bekommt, reicht meistens nicht aus, um eine sinnvolle Installation einzurichten. Moodle ist durch seine schiere Größe speicherhungrig und verlangt nach mehr. Darüber hinaus muss der Server PHP 5.3 mit einigen Erweiterungen und MySQL bereitstellen. Da die meisten Provider keine genauen Angaben über Speicherkapazität machen und teilweise auch nicht verraten, welche Erweiterungen installiert sind, möchte man ungern Verträge eingehen.

Openshift

An dieser Stelle kommt Openshift von Red Hat ins Spiel. Openshift ist ein relativ neuer Anbieter einer Platform as a Service, zu neudeutsch Cloud. Man installiert eine sogenannte Applikation, in unserem Fall Moodle, bei Openshift und dort kümmert man sich um die notwendigen Ressourcen. D.h. braucht man viel Ressourcen, weil viele Nutzer auf den Dienst zugreifen, dann wird die Anwendung skaliert, bekommt also mehr Ressourcen zugeteilt. Bei geringerem Bedarf wird wieder runtergeschraubt. Das kostet natürlich Geld. Je nach Verbrauch. Dafür muss man sich um nichts kümmern, es läuft einfach.

Als einfacher Nutzer oder als Organisation mit weniger hohen Ansprüchen lässt sich Openshift aber auch schon verwenden. Man bekommt als kostenlosen Einstieg in den PaaS drei Instanzen zu jeweils 500MB zugeteilt, die man auch verbinden kann. D.h. es stehen einem kostenlos bis zu 1.5GB an Speicher zur Verfügung. Das lasse man sich jetzt mal auf der Zunge zergehen. Das bietet kein Provider um die Ecke und auch nicht für umsonst.

500MB sind eine gute Größe für eine einfache Moodle Installation. Es reicht um etwa 5–10 Personen gleichzeitig zu versorgen. 5-10 Personen, die gleichzeitig versuchen eine Seite zu laden. Mit anderen Worten, wenn eine ganze Klasse von 30 Schülern an 30 PCs sitzt und gleichzeitig versucht sich einzuloggen. Der eine braucht etwas länger, der andere ist etwas schneller. Im schlimmsten Fall muss der 11. etwas länger auf die Seite warten, wird aber dann auch bedient und kann sich einloggen. Wie viele Klassen arbeiten gleichzeitig an Moodle? In seltenen Fällen mehr als eine und wenn, dann staut es sich höchstens beim Login.

Git

Openshift ist kein klassischer Anbieter von Speicherplatz im Internet. Es ist ausgelegt für moderne Webanwendungen, die mit der Versionsverwaltung Git entwickelt wurden. Git ist keine Programmiersprache sondern ein Weg, unterschiedliche Versionen einer Software zu verwalten. Eine Art Buchhaltung für Software. Jeder Zustand wird festgehalten und kann rückgängig gemacht werden. Man kann Änderungen in sogenannte Branches verlagern und später mit einbinden. Es macht die Entwicklung von modernen Anwendungen erheblich einfacher und fördert die Zusammenarbeit mit anderen Entwicklern.

Openshift macht sich die unterschiedlichen Fähigkeiten von Git zu eigen und ermöglicht den Abgleich von Daten nur darüber. Kein FTP, keine umständlichen Überschreibeaktionen, um alte Daten mit neuen auszutauschen und der bangen Hoffnung, dass man nicht doch das falsche gelöscht hat. Git überträgt lediglich die Änderungen und startet den Server auf Openshift neu. Damit werden alle Aktualisierungen aktiv und die Anwendung ist auf dem neusten Stand.

Moodle verwendet zur Entwicklung bereits Git und betreibt ein sog. öffentliches Repository auf GitHub unter der Adresse https://github.com/moodle/moodle. Dort kann man alle Änderungen, sogenannte Commits nachvollziehen und beobachten. Leider kann man dieses Repository nicht direkt bei Openshift verwenden, dafür ist Moodle dann wieder etwas anspruchsvoll. Man muss Moodle vorerst in ein anderes Repository einbinden, damit es die richtigen Einstellungen für die Datenbank etc. findet und verwenden kann. Damit nicht jeder von vorne anfangen muss und das Rad mehrmals erfunden wird, habe ich unter openshift_moodle ein Repository eingerichtet, das sich direkt für Openshift verwenden lässt. Dort gibt es auch eine Anleitung auf Englisch, die bei der Einrichtung hilft. Sollte es Schwierigkeiten mit der englischen Anleitung geben, stehe ich für Fragen gerne zur Verfügung. Entweder per Twitter @btyga oder per eMail über b6tyger bei gmail.com.