Nach positiver Absolvierung der Lehrveranstaltung sind Studierende in der Lage...
Auf dem Weg zu Lösungen, die die Produktivität maximieren, den Overhead minimieren und die Nachhaltigkeit fördern, stehen serverlose Paradigmen bei der Entwicklung zukünftiger verteilter Systeme wohl an vorderster Front. Es kann als die nächste Evolutionsstufe des Cloud-Computing angesehen werden, da es die Grenzen der effizienten, skalierbaren und kostengünstigen Softwareentwicklung verschiebt. Genauer gesagt handelt es sich beim Serverless Computing um ein neuartiges Ausführungs- und Programmiermodell, bei dem der Plattformanbieter die Zuweisung und Bereitstellung der Recheninfrastruktur dynamisch verwaltet. Der Serverless-Anbieter ermöglicht es den Usern, Code zu schreiben und bereitzustellen, während sich der Anbieter um die gesamte Infrastruktur kümmert, die der Anwendung zugrunde liegt, aber auch um die Verwaltung der Anwendung während ihrer Laufzeit, z. B. um elastische Skalierung.
Es gibt mehrere Konzepte und Prinzipien, die dem Serverless Paradigma zugrunde liegen und die wir in diesem Kurs vorstellen wollen. Zum Beispiel werden wir das Function-as-a-Service (FaaS)-Paradigma als eine neuartige Programmierungs- und Ausführungsmethode diskutieren, bei der die Anwendungen in Auslöser und Aktionen (Funktionen) zerlegt werden, die von einer Serverless Plattform verwaltet werden. Die Serverless Plattform ist für die Isolierung der Funktionen verantwortlich, z.B. durch den Einsatz einiger der bekannten Virtualisierungsansätze wie Micro-VMs und Container. Um ein optimiertes Kostenmodell zu bieten, ermöglichen solche Plattformen in der Regel ein Serverless-Ausführungsmodell, das Scale-to-Zero ermöglicht, d. h. eine vollständige Downskalierung der Serverless-Funktionen, wenn keine Anfragen eingehen.
Ziel dieses Kurses ist es, die Studierenden mit dem aufkommenden Serverless-Paradigma vertraut zu machen und dessen Grundlagen, Technologien, Architekturen, Beispiele und Best Practices der jüngsten Entwicklungen im Serverless Computing zu diskutieren. Die folgenden Hauptthemen des Serverless Computing sind derzeit zur Behandlung vorgesehen. Bitte beachten Sie, dass der Inhalt vorläufig ist und sich noch ändern kann.
Dieser Kurs besteht aus einem Vorlesungs- (ca. 40%) und einem Übungsteil (ca. 60%). In der Vorlesung vermittelt der Vortragende die grundlegenden Konzepte des Serverless-Paradigmas sowie die wichtigsten Technologien des Serverless Computing und diskutiert diese mit den Studierenden. Die Interaktion mit den Studierenden wird durch den Einsatz von Klassenzimmer-Tools (für Diskussionen, Ideensammlungen etc.) sowie Online-Tools und Foren (Zoom, TUWEL) erleichtert.
Im Rahmen des Praktikums wird den Studierenden Gruppenarbeit zugewiesen (Gruppengröße: 3 bis 5 Studierende). Die Studierenden müssen sich mit serverless Plattformen und Technologien vertraut machen und eine praktische Lösung liefern. Während des Semesters müssen die Studierenden in Teams eine Lösung für ihr Thema entwerfen und implementieren und die Ergebnisse zweimal präsentieren, in einer Zwischen- und einer Abschlusspräsentation.
ECTS-Aufschlüsselung:
3ECTS entsprechen etwa 75 Stunden.
VO (30h):
UE (45h):
Kursmaterialien & Vorlesungsunterlagen
Im Folgenden sind die Quellen angeführt, die für die Vorlesung verwendet werden:
Vorlesungsskripte werden online in TUWEL zu jeder Vorlesung und unmittelbar nach jeder Vorlesung zur Verfügung gestellt.
Sonstiges
Bitte informieren Sie sich in TUWEL über die genauen Vorlesungstermine. Die Teilnahme an der Vorlesung ist nicht verpflichtend. Darüber hinaus gibt es drei obligatorische Treffen für den Laborteil dieses Kurses: ein Kickoff Meeting und zwei Präsentationen.Generell bietet TUWEL die aktuellsten und umfassendsten Informationen über Vorlesungs- und Übungstermine sowie über anstehende Fristen.
Vorbehaltlich der Genehmigung durch die STUKO (Studienkommission) ist diese Lehrveranstaltung als gebundenes Wahlfach für die folgenden Masterstudiengänge zu klassifizieren. Der Beschluss wird rückwirkend angewendet, d.h. er gilt auch für alle, die diese Lehrveranstaltung im WS 2024 absolvieren.
Laborübungen und eine schriftliche Prüfung über die Vorlesung.
Die Prüfung besteht aus zwei Teilen. Zunächst gibt es eine Klausur, die insgesamt 40 Punkte umfasst und 40 % der Gesamtpunktzahl ausmacht, die die Studierenden in diesem Kurs erreichen können. In der Klausur wird der Inhalt der Vorlesung abgefragt und angewendet. Je nach Teilnehmerzahl kann die Prüfung auch mündlich durchgeführt werden.
Die restlichen 60% der Gesamtpunktzahl werden durch die Leistungen im Laborteil erreicht:
Der Kurs wird für Master- und PhD-Studenten der Informatik empfohlen.
Erhebliche Kenntnisse in der Programmierung (z.B. Java, Python, TS, NodeJS, Rust, Go) sowie in verteilten Systemen werden vorausgesetzt. Eine gewisse Vertrautheit mit den wichtigsten Konzepten des Cloud Computing wird vorausgesetzt.
Erfahrungen mit fortgeschrittenen Themen wie der Arbeit mit Containern, z. B. Docker-Containern, Container-Orchestratoren, z. B. Kubernetes oder Docker Swarm, oder bestehenden serverlosen Plattformen, z. B. AWS Lambda, OpenFaaS oder Open Whisk, sind von Vorteil, aber nicht zwingend erforderlich.
Der Kurs ist in sich abgeschlossen.
Begleitende Kurse: Es ist hilfreich, wenn die VU Advanced Internet Computing (184.269) bereits absolviert wurde, die beiden Kurse können aber auch problemlos parallel besucht werden.
Vorangehende Kurse: (194.024) VU Verteilte Systeme