.. only:: html
.. figure:: _static/logo-h150.png
:align: center
A framework for trace-driven simulation of serverless Function-as-a-Service platforms.
*faas-sim* Overview
===================
*faas-sim* is a trace-driven simulation framework to simulate container-based function-as-a-service platforms.
It can be used to develop, and evaluate the performance of operational strategies for such systems, like scheduling, autoscaling, load balancing, and others.
Architecture
------------
*faas-sim* is based on the `SimPy `_ discrete-event simulation framework.
It uses `Ether `_ as network simulation layer, and as source for cluster configurations and network topologies.
By default, it uses the `Skippy `_ scheduling system for serverless resource scheduling,
but schedulers, autoscalers, and load-balancers can be plugged in by the user.
*faas-sim* is trace-driven, and uses profiling data from real workloads and devices to simulate function execution.
It comes pre-packaged with traces from several common computing devices and representative cluster workloads.
The following figure shows a high-level overview:
.. figure:: figures/architecture-overview.png
:align: center
Background
----------
*faas-sim* was developed at the `Distributed Systems Group `_ at `TU Wien `_ as part of a larger research effort surrounding serverless edge computing systems.