SCrAMbLE: management of ServiCes Across MultipLE clouds

This project group is open to computer science and computer engineering students. It is intended to start in the winter termin 2018/2019.

Please see the slides for the project presentation!

Large-scale distributed clouds consist of a heterogeneous infrastructure that includes computation, storage, and networking resources. These resources are provided based on different technologies and span across multiple geographical or even multiple administrative domains, as shown in Figure 1. Cloud and network services, like video streaming services, communication services, etc. can be deployed on top of this infrastructure, serving users in different locations.

Different services have different requirements, e.g., in terms of resource demands, latency, required performance guarantees, etc., which might also change during the lifecycle of a service. On the other hand, different resources of the underlying heterogeneous infrastructure also have different capabilities, that can fulfill different requirements from services. For example, a video encoder can be cheaply deployed as a virtual machine on a general-purpose hardware in multiple locations close to users to shorten the delay for users. However, if a high throughput and supporting specific compute-intensive operations is more important than distance to users in a scenario, it might be more desirable to deploy the same functionality on top of a special-purpose hardware.

Using network function virtualization (NFV) and software-defined networking (SDN), changing the type and location of deployment for services and their composing elements (i.e., virtual network functions or cloud-based microservices) is becoming easier and cheaper. Service users and service providers can benefit from the choice of resources offered by the large-scale heterogeneous hardware and software resources, but they obviously do not want to deal with the complexities of managing and operating them. Similarly, providers of the resources need appropriate tools to manage their resources and customer requests efficiently.

To fulfill the requirements of different actors in such a scenario, an abstraction layer is required, analogous to a computer operating system. This operating system has an overview of existing resources, receives and handles customer requests, deploys services using the optimal set of resources, and modifies the deployment if necessary. Figure 2 shows the high-level architecture of this operating system, which is the baseline for this project.

In this project, you will develop and implement a proof of concept based on this architecture, for orchestrating services that can be deployed on a heterogeneous infrastructure, e.g., parts of the services deployed as a VM, as a Container, or as an accelerated instance. As Figure 3 shows, you will be working with state-of-the-art tools and frameworks like OSM, Kubernetes, OpenDaylight, etc.

For a smooth start into the project work, you should like programming (mostly Python), networking, system development, and Linux. It definitely helps if you have participated in the bachelor’s lectures Rechnernetze/Computer Networks and Verteilte Systeme/Distributed Systems (or equivalent).

This project is in the context of SFB 901 On-The-Fly Computing and the EU-funded project 5G-PICTURE, which you can get to know more closely.