Uni Wien:Cloud Computing VU (Benkner)

Aus VoWi
Zur Navigation springen Zur Suche springen

Daten[Bearbeiten | Quelltext bearbeiten]

Vortragende Siegfried Benkner, Atakan Aral, Enes Bajrovic, Martin Köhler
ECTS 6,00 / 4,00
Aufgezeichnet Nein
Sprache English
Links ufind:052511
Zuordnungen
Bachelor Informatik Modul Internet Computing & Software Technologies (Gebundenes Wahlfach)
Bachelor Informatik Modul Parallel Computing (Gebundenes Wahlfach)
Master Informatik Modul Parallel Computing (Gebundenes Wahlfach)
Master Informatik Modul Internet Computing & Software Technologies (Gebundenes Wahlfach)
Master Medieninformatik Modul Erweiterung Medieninformatik (Gebundenes Wahlfach)


Inhalt[Bearbeiten | Quelltext bearbeiten]

Es werden diverse Bereiche zu den Themen Virtualization, Containerization, Microservices, Container Orchestration, Kubernetes, Serverless Computing Und Cloud Storage in dem Vorlesungsteil durchgegangen. Dabei handelt es sich um eine klassische Frontal Vorlesung.

Im Praktischen Teil der Übung gibt es 4 Assignments, wobei das erste Assignment aus 2 Teilen besteht (Ass 1. und Ass 2.).

Ablauf[Bearbeiten | Quelltext bearbeiten]

Die VU wird in 3 Teile aufgeteilt, der erste von Anfang Oktober bis Mitte November, der zweite von Mitte November bis Mitte Dezember und der letzte Teil von Mitte Dezember bis Ende Jänner.

Jeder Teil besteht jeweils aus 2-6 Vorlesungen, 1 Assignment (der erste Teil beinhaltete 2 Assignments, jedoch Assignment 1 und Assignment 2 werden zusammen bewertet und auch gleichzeitig abgegeben), 1 oder 2 Q&A Sessions zu dem Assignment und einem Exam.

Es gibt pro Woche 2 Vorlesungsslots (WS 21/22 war es Mi 16:45-18:15 und DO 18:30-20:00), jedoch werden nicht alle Slots als Vorlesungsslots hergenommen, es gibt auch manchmal einen Slot der z.B. Home work assignment 1 & 2 heißt, dabei gibt es keine Vorlesung. Diese Sessions sind quasi Frei.

Der erste Teil der Vorlesung wird von Herrn Prof Bajrovic gehalten, der 2. Teil von Herrn Prof Wöhrer und der 3. Teil von Herrn Prof Köhler.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten | Quelltext bearbeiten]

  • Erfahrungen mit der Cloud(am besten Google Cloud und Kubernetes).
  • Erste Berührungspunkte mit Docker.

Assignments[Bearbeiten | Quelltext bearbeiten]

Es gibt 4 Assignments, wobei das erste Assignment aus 2 Teilen besteht (Ass 1. und Ass 2.).

Assignment 1 und 2 (WS2021)[Bearbeiten | Quelltext bearbeiten]

Bei den ersten beiden Assignments muss man Schnittstellen entwickeln, die sich theoretisch in einer größeren Anwendung befinden. Alle Services müssen unabhängig von ihrer Implementierungssprache oder ihrem Framework miteinander kommunizieren können, indem Docker als Containerisierungstechnologie verwendet wird. Dabei sollte bedacht werden wie man die Dienste am besten skalieren kann(z.B. Replicas).

Bei jedem Assignment muss man eine Doku mit abgeben und das Design und die Implementierung erläutern(ca. 1-5 Seiten, je nach Assignment und Kompläxitet der Implementierung.

Assignment 2 knüpft direkt an Assignment 1 an und man muss die Docker Container auf GKE zum laufen bringen, dazu muss man Kubernetes manifest files written in YAML abgeben. Dazu muss man erklären welche Kubernetes Objekte man benutzt hat (deployments, services, pods, ...) und warum und welche services man genutzt hat (NodePort, ClusterIP, or LoadBalancer).

Ebenso einen Ingress sollte man implementieren. Für beide Assignments werden Infos in der Angabe angegeben, genauso gibt es bereits vorbereitete Services welche man direkt ansprechen kann (z.B. das Camera Service)

Assignment 3 (WS2021)[Bearbeiten | Quelltext bearbeiten]

Entwerfen und implementieren Sie eine lose gekoppelte Anwendung über die Google App Engine-Standardumgebung (ohne Container/Cloud Run) und (falls erforderlich) Google Functions, die die folgenden Eigenschaften erfüllen:

  • irgendeine Form von Parallelisierung verwenden (nicht über ein eigenes Thread-Management)
  • Verwendung von Cloud Storage und/oder verwalteten Datenbankdiensten wie Cloud SQL/Bigtable
  • mit Google Tasks und/oder Google Pubsub
  • Bereitstellung einer grafischen Benutzeroberfläche mit detaillierter Fortschrittsanzeige (nicht nur 0 – 100 %) sowie einer Möglichkeit, die App-Nutzung anzuzeigen, z. historische Ergebnisse

Dazu wird ebenso eine detaillierte Doku gefordert(PDF file, ~ 15 pages without code).

Assignment 3 ist sehr offen gestaltet und man muss im Forum posten was man machen will und in welcher Programmiersprache man es umsetzen will.

Meiner Meinung nach war Assignment 3 das einfachste aber auch das interessanteste, da man sehr viel Freiheit hat bei der Wahl der Anwendung.

ACHTUNG: Man muss aufpassen mit den Credits bei der Google Cloud, sollte man diese bei Assignment 1/2 bereits aufgebraucht haben bekommt man keine neuen für Assignment 3 und man muss echtes Geld dafür bezahlen um die Google App Engine laufen zu lassen.

Assignment 4 (WS2021)[Bearbeiten | Quelltext bearbeiten]

Das Ziel dieser Aufgabe ist es, ein Cloud-Speichersystem basierend auf einem der beiden distribution techniques zu implementieren (Hash-based structure oder Search trees). (Meiner Meinung nach war es einfach die Hash-based structure umzusetzen)

Die Implementierung muss Folgendes unterstützen:

  • Permanente Speicherung von Key-Value-Pairs(dies erfordert Lese-/Schreibvorgänge auf der Festplatte!)
  • Unterstützung einer dictionary-based data access API
  • Einen CLI oder GUI Client Anwendung, die die data access API verwendet.

Bei der Implementierung gibt es einiges zu beachten, das System muss Insert, Delete und Search beinhalten. Als Bonuspunkte kann man eine Range Query implementieren.

Wie bei allen anderen Assignments muss man auch hier eine Dokumentation abgeben(~10 Pages).

Grading. You can reach 20 points on this exercise. The points can be reached as follows:

  • Client implementation: 30%
  • Cloud storage implementation: 45%
  • Documentation including generated report and git commit history: 25%

Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]

Es gibt 3 Exams (letztes Jahr gab es nur Exam1 und Exam3 aufgrund von Corona).

  • Exam 1 handelt von den ersten 5 Foliensätzen (Introduction, IaaS, Virtualization, Containerization, Microservices, Container Orchestration, Kubernetes, Serverless).
  • Exam 2 beinhaltet nur 2 Foliensätze zum Thema PaaS
  • Exam 3 beinhaltet den Foliensatz Cloud Computing.

Jedes Assignment und jedes Exam ist 16,67% wert, also genau 1/6. (Kann sich ändern, da Exam 2 ausgefallen ist im WS 21/22)

Für eine positive Beurteilung ist folgendes erforderlich:

Erreichen von mindestens 50 % für alle Aufgaben und Tests UND maximal eine negative Teilleistung (Aufgaben oder Test)

Notenverteilung:

  • >= 88% --> Sehr Gut (1)
  • >= 75% und maximal 1 negative Teilleistung --> Gut (2)
  • >= 62% und maximal 1 negative Teilleistung --> Befriedigend (3)
  • >= 50% und maximal 1 negative Teilleistung --> Genügend (4)
  • < 50% oder mehr als 1 negative Teilleistung --> Nicht Genügend (5)

Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]

Das letzte Exam war am 27.1.2022, die Note wurde am 23.02.2022 eingetragen.

Semester Letzte Leistung Zeugnis
SS22 27.01.2022 23.02.2022 4 Wochen

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

Die Assignments sind je nach Vorkentnissen eher mittel viel Aufwand. Für die erste beiden Assignments habe Ich sehr viel Zeit verschwendet, da ich mit Docker/Kubernetes/Google Cloud nicht sehr viel Erfahrung hatte. Assignment 3 war relativ schnell fertig, da habe ich <20h benötigt. Assignment 4 war wiederum etwas aufwendiger, da ich leider zum Search-Tree zugeteilt wurde und dieser etwas komplexer ist, wenn man jedoch Erfahrung mit Docker hat, kann man auch Assignment 4 schnell erledigen. Alles in allem würde ich etwa 90h(+-20) für die Assignments hernehmen.

Die Antworten zu den Exams konnte man 1:1 aus den Vorlesungsfolien hernehemn, also kann man für jedes Exam etwa 5-10h hernehmen und man sollte easy durchkommen.

Unterlagen[Bearbeiten | Quelltext bearbeiten]

  • 8 Slidesets/Vorlesungsunterlagen
  • 4 Assignments

Sonst wurden keienrlei Unterlagen zur Verfügung gestellt

Tipps[Bearbeiten | Quelltext bearbeiten]

noch offen

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

noch offen

Materialien

Diese Seite hat noch keine Anhänge, du kannst aber neue hinzufügen.