Skip to content
This repository has been archived by the owner on Dec 14, 2020. It is now read-only.
/ Infrastruktur Public archive

Sammlung und Dokumentation der Infrastruktur

Notifications You must be signed in to change notification settings

DHBW-sWIm/Infrastruktur

Repository files navigation

Inhaltsverzeichnis

Infrastruktur

Dieser Text soll einen Überblick über die Infrastruktur für das sWIm-Projekt des Jahrganges WWI-15-SCB geben. Ziel des Projektes war es, die Lern-Plattform Moodle an der DHBW um Funktionen zu erweitern.
Alle verwendeten Dienste, Software oder anderweitige Angebote werden in diesem Rahmen entweder in einer Ausführlichkeit, die für den Betrieb und die Wartung der Infrastrukur nötig ist, erläutert und erklärt, oder eine Referenz auf die exakte Quelle wird angegeben.

Übersicht

Für ein grundsätzliches Verständnis der Infrastruktur ist es notwendig, die verwendeten Dienste des Projektes zu kennen.

Der Name des Projektes legt nahe, dass die Lern-Plattform Moodle beteiligt ist. Hierbei handelt es sich um eine in PHP geschriebene Webanwendung, welche einer Schule, Hochschule oder Universität die Verwaltung von Stundenten und Kursen ermöglicht und für die Studenten eine Möglichkeit bietet, mit den Dozenten im Austausch zu stehen. Kalenderverwaltung, Teilen von Dateien und Foren gehören zu den bekanntesten Funktionen. Moodle lässt sich durch Plugins in seiner Funktionalität nahezu beliebig erweitern, sofern man sich als Entwickler an die Vorgaben für Versionierung und Resourcen-Zugriff hält.

Um die Daten aller Studenten, Dozenten und Resourcen persistent zu halten, benötigt Moodle eine Datenbank. Hierbei ist laut Dokumentation dem Betreiber die freie Wahl zwischen MySQL, MariaDB, PostgreSQL, MS SQL und OracleDB gelassen. Aus gründen der Einfachheit, und zur Vermeidung später eventuell anfallender Lizenzkosten, wurde sich für eine MariaDB entschieden.

Um Prozesse innerhalb des Universitätslebens einfacher abbilden und durchführen zu können, wurde beschlossen, das Konzept eines Business Process Management Systems vom Vorjahr zu übernehmen. Zwar verwendete der Kurs des Vorjahres an dieser Stelle die Software jBPM, eine kurze Einarbeitungsphase in dieses Tool durch einige Kursteilnehmer zeigte jedoch rasch, dass die Bedienung dieses Tools eine längere Einarbeitungszeit gebraucht hätte und mit "nicht intuitiv" von den Testern höflich als für dieses Projekt ungeeignet abgelehnt wurde. Eine Evaluierung anderer Optionen resultierte in der gemeinsamen Entschidung für Activiti.

Auch Activiti benötigt für die Persistenz von Prozessen eine Datenbank. Hierfür wurde eine H2 Datenbank verwendet. Die genaueren Gründe für diese Entscheidung finden sich in Kapitel 4.

Infrastrucutre as Code

Um eine leichte Migration auf andere Systeme, eine potentielle Skalierung oder eine Rekonfiguration zu erleichtern, wurde sich entschieden, die gesamte Infrastruktur des Projektes in Code festzuhalten.

Die Verwendung von Docker als Betriebsplattform für alle Dienste des Projektes macht die Infrastruktur unabhängig von dem Betreiber der Systeme, auf der sie läuft, und erlaubt einen schnellen Umzug. Mehr dazu in Kapitel 2.

Hauptsächlich bedeutet dieses Setup für einen neuen Administrator, dass die Infrastruktur in sich selbst dokumentiert ist, da die verwendeten Docker-Container grundlegend eigene Dokumentation zu ihren Möglichkeiten und Konfigurationsoptionen bieten, und Aktualisierungen schnell und unkompliziert durchzuführen sind.

Verwendete Systeme

Während des Projektes wurde die gesamte Infrastruktur auf privater Hardware gehostet. Dies lag an mehreren Gründen, die wie folgt erläutert sind:

  • Einfachheit: Im Umfeld des Kurses gab es bereits Server-Hardware, welche mit (für einen Heimserver überragender) Ausfallsicherheit durch RAID 5 und bereits installiertem, getestetem und produktiv genutztem Docker überzeugte. Das Starten erster Container für erste Test war auf diesem System deutlich schneller, als sich über die DHBW zunächst Zugriff auf Systeme zu besorgen und diese anschließend einzurichten. Da es bis auf die in den Datenbanken abgelegten Daten quasi keine persistent zu haltenen Daten gab, war die Sorge bezüglich der Übergabe an folgende Kurse gering.

  • Erreichbarkeit: Zum Testen und Entwickeln von Plugins für Moodle und für Tests der Prozesse für Activiti ist ein Zugriff auf die Webinterfaces dieser beiden Dienste nötig. Systeme innerhalb des DHBW-Systems sind lediglich über einen VPn erreichbar. Für diesen VPN sind Studenten jedoch standardmäßig nicht zugelassen. Eine Zulassung der Studenten eines Kurses kann unter Umständen länger dauern. Zugriff auf Seiten durch diesen VPN ist dazu umständlicher und kann bei weniger technischen Projektmitgliedern zu Frustration führen. Der verwendete Server war bereits über einen Hostnamen mit gültigem TLS-Zertifikat aus dem Internet erreichbar. Für dieses Projekt wurden lediglich zwei Subdomaisn hinzugefügt und die Dienste intern weitergeleitet. Für weitere Informationen zu diesem Setup, siehe Kapitel 5.

Start der Infrastrukur

Für eine kompakte Anleitung zum Start der Infrastruktur, siehe Kapitel 6


Next - Chapter 2: Docker

About

Sammlung und Dokumentation der Infrastruktur

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •