Softwareentwurf und Anwendungen verteilter Systeme
Die Vorlesung “Softwareentwurf und Anwendung verteilter Systeme” bietet den Studierenden eine umfassende Einführung in die Konzeption, Entwicklung und Implementierung verteilter Softwaresysteme.
Im Rahmen dieses Kurses erwerben die Teilnehmer*innen fortgeschrittene Fähigkeiten in der Nutzung und Verwaltung moderner Softwaretechnologien. Der Kurs ist praxisorientiert und zielt darauf ab, die Studierenden auf reale Herausforderungen in der Softwareentwicklung vorzubereiten.
Moderne Software-Entwicklung erfolgt heute in schnellen Zyklen mit häufigen und kontinuierlichen Updates. Dadurch wird es nötig, den Prozess der Softwarebereitstellung zu automatisieren. Zu diesem Zweck werden Deployment Pipelines konzipiert und genutzt, die dafür sorgen, dass Code-Änderungen schnell und zuverlässig in Produktionsumgebungen gelangen. Daher lernen die Studierenden in diesem Kurs, ihre Projekte nicht nur lokal auf ihren Rechnern zu testen, sondern sie tatsächlich zu deployen und im Internet von überall aus zugänglich zu machen. Dies erfordert das Einrichten und Pflegen eines eigenen Servers.
Ein Schwerpunkt liegt dabei auf Docker. Die Studierenden erwerben Kenntnisse im Serverhosting, einschließlich der grundlegenden Begriffe und Techniken wie SSH, Domain- und DNS-Verwaltung, Firewall-Konfiguration, Terminal-Kommandos, Paketinstallation sowie der Einrichtung von SSL-Zertifikaten und HTTPS. Der Bereich Deployment umfasst die Einführung in Continuous Integration und die kollaborative Nutzung von git branches, Portainer zur webbasierten Verwaltung von Docker, Container Registries wie GHCR, die Konfiguration von Reverse Proxies mit Traefik und die Automatisierung von Workflows mit GitHub Actions.
Eine grundsätzliche Einführung in das Thema Astronomie setzt den thematischen Rahmen und dient als Inspiration für die Projektarbeit. Die Aufgabe ist dabei, eine funktionierende Anwendung zu entwickeln, die mehrere integrierte Services umfasst. Diese Anwendung wird auf einem eigenen vServer unter einer eigenen Domain gehostet und nutzt Mechanismen für kontinuierliches Deployment. Ziel ist es, eine praxisnahe, interaktive und nutzerfreundliche Softwarelösung zu präsentieren, die das erworbene Wissen und die erlernten Fähigkeiten widerspiegelt.
Die Webanwendung Solar bietet eine visuell ansprechende Darstellung unseres Sonnensystems. Zu sehen sind die wichtigsten Elemente: Sonne, Planeten Merkur, Venus, Erde, Mars, Jupiter, Saturn, Uranus, Neptun und Zwergplanet Pluto. Diese sind stark vergrößert dargestellt, um die Sichtbarkeit zu gewährleisten, aber proportional korrekt. Kometen und Asteroiden sind auch enthalten, jedoch hier nicht abgebildet. Die Objekte stammen aus einer umfangreichen Datenbank. Nutzer können interaktiv das Sonnensystem erkunden und in dessen Details eintauchen.
Technisches
Die Seite wurde in Javascript geschrieben. Zur Darstellung der 3-dimensionalen Körper wurde Three.js verwendet. Über Github Actions steht eine Deployment Pipeline, mit der Neuerungen direkt über portainer.io auf die Webseite übertagen werden können.
Hinterlasse einen Kommentar