Available Theses

Title Stud ent(s) Supervisor Description
Enactment engine to run a composition of functions in a serverless computing environment 1-2 Sashko Ristov, Thanh-Phuong Pham details
Large-scale distributed computing within IoT-Edge-Cloud continuum  1 Sashko Ristov, Thanh-Phuong Pham details
Data Abstraction to Compose Functions in a serverless computing framework 1 Sashko Ristov, Thanh-Phuong Pham details
Dynamic and fault tolerant scheduling of complex applications using volatile instances 1 Sashko Ristov, Thanh-Phuong Pham details
Inter-host Orchestration Platform Architecture for Ultra-scale Cloud Applications 1 Sashko Ristov, Thanh-Phuong Pham details
Disaster tolerant and cost effective replica placement in content delivery networks 1 Sashko Ristov details
Experimente und Datenanalyse für Clouds 1 Thomas Fahringer details

Title Enactment engine to run a composition of functions in a serverless computing environment
Number of students 1 or 2 (Can be joined together with “Data Abstraction to Compose Functions in a serverless computing framework”)
Language English
Supervisor Sashko Ristov, Thanh-Phuong Pham
Description The goal of this master thesis is to develop an enactment engine that will run efficiently an arbitrary composition of functions in a serverless computing environment. Students will explore and learn how to structure and model (e.g. based on XML or JSON) a composition in order to define data and control flow. Students can explore to install, configure and deploy several open source frameworks: e.g. Kubernetes (the container cluster), Docker (Container engine) and Fission and / or OpenWhisk (serverless framework).
Students can dive into each software in order to develop advance techniques, such as optimize resource utilization or scheduling algorithms. Additionally, students can explore to extend existing composition management systems, such as AirFlow.
Tasks
  • Configure and deploy a vertical stack of serverless computing framework
  • Model a composition of functions
  • Develop an enactment engine that will run the structured model of the composition
  • Measure and profile the performance
Theoretical Skills Distributed Systems, Cloud Computing, Algorithms, Deviceless Computing, Functions as a Service.
Practical Skills Kubernetes, Docker and Fission or OpenWhisk, Java or Python
Additonal Information

Title Large-scale distributed computing within IoT-Edge-Cloud continuum
Number of students 1
Language English
Supervisor Sashko Ristov, Thanh-Phuong Pham
Description A modern computing system should adapt autonomously and automatic to various dynamic and mobile user workloads. For example, some user requests can be finished in seconds and thus can effort to be sent to the Cloud data center. However, many distributed data sources require a real time data processing (within tens or hundreds of ms), which is less than the WAN networks latency and thus the processing has to be performed near the data sources (in Edge). In this thesis, the students should develop a distributed system that will make an intelligent decision when to offload the computing horizontally (to another Edge device) or to Cloud data center (vertically). The goal of the decision making will be to optimize non-functional conflicting objectives (e.q. maximize user requests, minimize the overall latency) Students will explore use cases with moving users / IoT devices and constant (static) Edge/Fog devices with heterogeneous, but limited resources (communication, computation and storage). In order to achieve higher interoperability and portability, as well as to maximize the revenue, students can exploit a serverless approach. In order to evaluate the system’s scalability, students can explore simulations with iFogSim or EdgeCloudSim.
Tasks
  • FaaS-ize a monolithic robust application
  • Develop a decision making algorithm for optimal scheduling and resource management in IoT/Edge /Cloud continuum
  • Migration of functions
  • Measure and profile the performance of the system
Theoretical Skills Distributed Systems, Cloud Computing, Optimization, Functions as a Service.
Practical Skills Docker, Kubernetes, Fission / OpenWhisk, Raspberry Pi / Android, Java or Python
Additonal Information

Title Data Abstraction to Compose Functions in a serverless computing framework
Number of students 1 or 2 (Can be joined together with “Enactment engine to run a composition of functions in a serverless computing environment”)
Language English
Supervisor Sashko Ristov, Thanh-Phuong Pham
Description Many business applications have constraints and flows within business processes. For example, a company should send a bill or invoice only after they send goods. Another example is “proceed with payment” shall enable two activities – “ship goods” and “inform the customer”. More complex example is a car can be delivered to the customer either after the payment is received or the credit is granted.
The goal of this master thesis is to abstract input and output data between composed functions in order to simplify the development and composition. The idea is to define an ordered data collection and using workflow patterns to allow the developer an easy way to define control and data flow between the composition of functions with visual components. From this visualized data and control flow, the system will provide a machine readable language (XML / JSON) that can be later executed in enactment engine.
Students can dive into each software in order to develop advance techniques, such as optimize resource utilization or scheduling algorithms, i.e. where and when to run specific functions.
Tasks
  • Configure and deploy a vertical stack of serverless computing framework
  • Develop a data abstraction framework to develop composition of functions
  • Evaluate the framework by FaaS-izing a large-scale monolithic real world business application in a serverless computing platform
Theoretical Skills Distributed Systems, Cloud Computing, Algorithms, Deviceless Computing, Functions as a Service, Business modelling.
Practical Skills Kubernetes, Docker and Fission or OpenWhisk, Java or Python
Additonal Information

Title Dynamic and fault tolerant scheduling of complex applications using volatile instances
Number of students 1
Language English
Supervisor Sashko Ristov, Thanh-Phuong Pham
Description Public cloud providers offer various on-demand IaaS resources with various capacities, prices and reliability. For example, Amazon offers on-demand instances, which are more reliable than their volatile (spot) instances, but more expensive. Amazon can interrupt and retake spot instances if the biding price is lower than the current market price or due to the lack of available resources. On the other side, spot instances are offered up to 90% of the on-demand price. Accordingly, users are allowed to decide about the trade-off between these parameters. The goal of this thesis is to develop a new algorithm that will schedule execution of many complex applications considering fault tolerance, price and performance. Students will explore the behavior of spot instances and can use our system Askalon to run the complex application on real Cloud’s (e.g. Amazon EC2) using APIs and upgrade our VolatileSim simulator.
Tasks
  • Review the state of the art solutions
  • Design a model for executions
  • Define heuristics to reduce the search space
  • Evaluate the model with simulation
Theoretical Skills Distributed Systems, Cloud Computing, Optimizaiton.
Practical Skills Cloud APIs, Java
Additonal Information

Title Inter-host Orchestration Platform Architecture for Ultra-scale Cloud Applications
Number of students 1 or 2
Language English
Supervisor Sashko Ristov, Thanh-Phuong Pham
Description Many memory pages in RAM memory of virtual machines are the same as their operating system, code segment and many parts of the data segment are the same. Cooperation among these virtual machines does not exist; neither between virtual machines hosted on different servers, nor among the servers themselves. If an instruction or data access generates a TLB miss at one node, the same instruction or data access will likely generate a TLB miss in other node of the cluster where the oblivious horizontally-scaled VM-siblings are hosted. The goal of this thesis is to develop an automatic and autonomous memory management over multiple servers (and hosted virtual machines). Students should explore how to read memory accesses in virtual and physical memory from the hypervisor, analyze memory access patterns and page faults. Further on, using Apache Kafka will collect data to a centralized location. Students will learn how to design a predictor, which will improve the memory organization and enable better exploitation of memory patterns. The prediction will process data using Apache Spark. The final goal is to reduce the page fault rate by pre-fetching memory pages on VMs on other hosts.
In case a group of two students are interested, you can explore the memory management at the container (application) level, beside the hypervisor level.
Tasks
  • Review the state of the art solutions
  • Reconfigure a hypervisor
  • Develop a profiler and predictor
  • Evaluate the model
Theoretical Skills Operating systems, hypervisors, containers, distributed systems, prediction techniques
Practical Skills Apache Kafka, Apache Spark and / or Apache Storm, Java or Python, XEN / KVM, docker.
Additonal Information

Title Disaster tolerant and cost effective replica placement in content delivery networks
Number of students 1
Language English
Supervisor Sashko Ristov, Thanh-Phuong Pham
Description Fault tolerance is an important feature of a distributed system. A user should not be aware of a failure of a single or several system components. Even more, users should achieve minimum (guaranteed) level of services by a distributed system. Replicating the content is an approach to improve the fault tolerance. This thesis focuses on a content placement problem in a content delivery network of data centers. The goal of the thesis is to design and implement a placement algorithm that will determine the optimal number of replicas of all contents in a distributed system considering to optimize the two conflicting objectives: network utilization and fault tolerance. Students can explore modern content file systems (such as IPFS) and dive into their architecture to improve their fault tolerance and performance.
Tasks
  • Review the state of the art solutions
  • Design a model for executions
  • Define heuristics to reduce the search space
  • Evaluate the model with simulation
Theoretical Skills distributed systems, cloud computing, optimization
Practical Skills Java or Python, IPFS.
Additonal Information

Title Experimente und Datenanalyse für Clouds
Number of students 1
Language German
Supervisors Thomas Fahringer
Description Das Ziel dieser Arbeit ist die Durchführung einer Serie von Experimenten, um die Eigenschaften und Fähigkeiten von Cloud Infrastrukturen (z.B. Amazon EC2) zu evaluieren. Es werden dabei zahlreiche Virtual Machine Instanzen (VMs) für kleinere Programme getestet. Dabei werden die Zeiten für die VMs und die Programme gemessen und anschließend ausgewertet. Zu den gemessenen Zeiten gehören: Zeit bis eine VM zugewiesen und gestartet wird, Zeit für die Ausführung der Programme (mit Messung von Speicher und CPU Verbrauch), Zeit um die VM wieder freizugeben, uva. Es werden dabei eine große Zahl von Experimenten gestartet (Script Programm). VMs und Programme müssen vorher instrumentiert werden. Die gemessenen Daten müssen in einer Datenbank abgelegt und dann statistisch ausgewertet und visualisiert werden. Eine Besonderheit ist dabei die Berücksichtigung von Spot Instances, die besonders billig aber vom Cloud Provider jederzeit entzogen werden können. Um solche Spot VMs zu bekommen, muss ein sogenanntes Bieterverfahren implementiert werden. Das Ziel dieser Arbeit ist ein besseres Verständnis von Cloud Ressourcen für verschiedene Programme. Dabei soll der Trade-off zwischen Performance und Kosten genauer untersucht werden.
Tasks
  • Script Programm zum Instrumentieren von VMs und Programmen
  • Script Programm zum Lesen und Speichern von Messdaten in einer Datenbank
  • Implementieren eines Bieterverfahrens für Cloud Spot Instances
  • Ausführen von Experimenten auf einer realen Cloud Infrastruktur
  • Auswertung und Visualisierung der gemessenen Daten
Theoretical skills einfache Kenntnisse im Bereich der Statistik
Practical skills Script Sprache, Datenbanken, Visualisierung von Daten
Additional information