Archiv: 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024
Der Verein betreut Projekte, um praktische Erfahrungen im Bereich Freier Software zu vermitteln. Diese Projekte müssen einen definierten Aufgabenbereich besitzen und im Vorfeld diskutiert werden. Sie sollen a) ein umzusetzendes Ergebnis beinhalten und b) einen Erfahrungsbericht bzw. eine Fallstudie hervorbringen.
Es wurden die nachfolgenden Projekte durchgeführt. Projekte umfassen in der Regel Inhalte von mehreren Studienmodulen. Sie sind nachfolgend unter ihrem Hauptmodul gelistet.
Auf ausgewählte Projekte aus den unterschiedlichen Modulen wird im Folgenden genauer eingegangen.
Das Modul System-Verwaltung hat den Betrieb und die Wartung von komplexen Software-Systemen zum Inhalt wie den Betrieb eines Webservers, auf dem eine Wiki-Software läuft, die wiederum auf eine Datenbank zugreift.
Ziel dieses Projektes war es einen produktiven Server auf neue Hardware umziehen und dabei möglichst wenige Einschränkungen für Benutzer zu haben.
Die alte Serverhardware war über 10 Jahre alt. Und auch softwaremäßig war ein Update der Datenbankserversoftware angemessen. Dies wäre unter normalen Umständen allerdings auf Grund der notwendigen Datenmigration allerdings mit einer Downtime von über einer Woche verbunden gewesen.
Dieses Projekt wurde in mehreren Phasen angegangen:
Planungsphase: Während der Plangungsphase wurde der alte Server analysiert: Welche Dienste laufen hier? Welche Software ist installiert? Wie ist diese konfiguriert? Welche Vereichnisse können wir einfach auf den neuen Server kopieren? Welche Software muss neu installiert werden? Welche Daten müssen importiert werden?
Vorbereitungsphase: In der Vorbereitungsphase wurde der neue Server angemietet und eingerichtet. Hier wurde Software installiert und konfiguriert. Daten wurden kopiert. Insbesondere wurde auch 230GB große MySQL-Datenbank kopiert, geupdated und in eine aktuelle Version von MariaDB importiert. Es wurde eine Datenbankreplikation eingerichtet, damit die Datenbank nach Abschluss der Migration auf den neusten Stand gebracht und aktuell gehalten werden konnte. Es war wichtig, dass die Vorbereitungsphase weniger als einen Monat dauert, weil wir während dieser Phase zwei Miete für zwei Server zahlen mussten.
Produktivnahme des neuen Servers: Zu einem Stichtag wurde der alte Server abgeschaltet, geänderte Dateien auf den neuen Server kopiert, die Datenbankmigration angehalten und die neue Datenbank in den Produktivmodus versetzt. Nach einigen kurzen Tests wurden die Domain-Namen-Einträge auf die neue IP-Adresse umgestellt. Diese Phase dauert weniger als einen Tag.
Abschlussarbeiten: In der letzten Phase mussten noch Abschlussarbeiten durchgeführt werden, wie beispielsweise die Aktivierung des Backups vom neuen Server, sowie die Löschung und Kündigung des alten Servers.
Programmierprojekte stellen in der Regel die Umsetzung der in den Modulen Software-Design und Game-Design entwickelten Konzepte dar. Sie sollen neben dem Computercode eine Dokumentation und ggf. Anleitungen erstellen.
Im Rahmen dieses Projekts haben wir die Modernisierung einer alten JavaScript-Anwendung in TypeScript begonnen. JavaScript ist die Programmiersprache des World-Wide-Webs. Allerdings ist JavaScript ursprünglich nur für sehr kleine Programme gedacht gewesen, so dass Wartbarkeit komplexer Anwendungen sehr aufwändig und schwierig ist.
Mittlerweile gibt es eine Reihe von JavaScript-Spracherweiterungen, die die Erstellung und Wartung komplexer Anwendungen vereinfachen sowie eine abgeleitete Sprache names TypeScript, die weitere Vorteile bietet.
Im Rahmen dieses Projekts haben wir Möglichkeiten gefunden, eine sehr komplexe in altem JavaScript geschriebene Anwendung Schritt für Schritt auf modernes TypeScript umzustellen.
Insbesondere haben wir eine Möglichkeit geschaffen, wie JavaScript-Programmteile TypeScript-Programmteile aufrufen können; und andersherum. Außerdem war es wichtig, die Modernisierung geschickt in kleine Teile zu zerlegen. Dadurch konnten wir Schritt für Schritt Teile umstellen, ohne Programmcode für die gleiche Funktionalität in beiden Programmiersprachen pflegen zu müssen.