|Subject area||Operating, Communication, Database and Distributed Systems|
|Funding||Deutsche Forschungsgemeinschaft (DFG)|
Function-as-a-Service (FaaS) is the next step in the evolution of cloud-based virtualization after virtual machine services and container services. A key benefit of FaaS is how easy it has made application development: Developers only write small stateless functions which interact with platform services such as databases, streaming pipelines, or messaging -- all operation concerns are left to the FaaS provider and a large part of the application functionality is delivered by platform services. Due to the attractiveness of the programming model as well as the clear separation of state and function management, FaaS is also a promising candidate when extending the cloud towards the edge. While FaaS offers a powerful programming paradigm, it also suffers from a number of drawbacks: First, function placement usually does not consider data input and output implying that FaaS platforms tend to ship data between servers. Second, the cold start problem, which occurs when an arriving request finds no idle function instance, causes latency outliers which add up in multi-function workflows. This is even more pronounced in geo-distributed fog environments where the function code needs to be retrieved from a (geo-)remote machine first, further increasing cold start latency. Third, in the existing event-driven FaaS programming model, functions are triggered by single events. For modern applications, particularly in the Internet of Things, however a more powerful event model which can trigger functions based on multi-event rules would be very useful and also increase reusability of functions through loose function coupling and help to close the paradigm gap between FaaS and stream processing systems. Fourth, existing composition frameworks are provider-specific and do not support multi-provider workflows which, however, is crucial for cloud/edge/fog workflows. They are also orchestration-based, thus, leading to double billing.In OptiFaaS, we will research and design a FaaS platform which is ready for mixed cloud/edge/fog environments, addressing the problems outlined above. Namely, we will (i) design a novel FaaS platform which can run in a federated way across cloud/edge/fog while integrating existing FaaS services, (ii) design a novel multi-event trigger inspired by complex event processing, (iii) design a cross-platform FaaS choreography framework, (iv) design a smart function placement and scheduling approach which optimizes and adapts function placement at runtime regarding quality of service goals. The approach will consider locations of data input and outputs as well as already deployed functions, resource usage in participating FaaS nodes, cold starts, monetary cost, and constraints such as privacy. For this, we will apply and extend model predictive control and distributed decision-making techniques to the domain of FaaS.