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.
Diese Website ist im Rahmen des Kurses “Softwareentwicklung und Anwendung verteilter Systeme” entstanden. Das Ziel war, eine Astronomie-Website mit einer Deployment-Pipeline für kontinuierliche Updates zu entwickeln.
Mein Ziel war es, die Datenbanksuche spannend und interaktiv zu gestalten. Die Benutzeroberfläche ist einem Raumschiff nachempfunden, um der Nutzererfahrung eine spielerische Note zu geben.
Das Herzstück ist eine in ThreeJS gerenderte Sonne, die mit Shadern zum Leben erweckt wird und dynamisch die Farbe des ausgewählten Sterns annimmt.
Deployment Pipeline
Ein wichtiger Teil des Kurses war es, eine Deployment-Pipeline für unser Projekt zu implemetieren. Dies haben wir mit GitHub Actions umgesetzt. Die Action hört auf Versionierungen nach dem Standard der Semantischen Nummerierung. Wenn ein Push mit einer neuen Version erfolgt, wird automatisch ein Build-Befehl ausgeführt, um ein neues Docker-Image zu erstellen. Dieses Docker-Image wird von Blaze automatisch auf den Server gepullt und deployed.
Features
Suche eines Sterns anhand verschiedener Katalog-IDs
Hinterlasse einen Kommentar