Function as a Service (FaaS) is a novel approach for application virtualization in
the cloud. Complex cloud native applications may be implemented as chains of functions.
Due to the inter-dependencies between the functions of such chains, their performance
is harder to predict. This also means that the design of a resource efficient scaling
mechanism is a challenging task, the goal is to avoid wasteful scaling strategies.
In this paper, we propose an auto-scaling framework that keeps the amount of resources,
allocated for the functions in the chain, at a minimum level, while meeting the latency
requirements of an application implemented as a function chain. Then, we show how
to integrate our auto-scaling framework with a general open source FaaS system, as
well as with, OpenFaaS. We also introduce our modifications on OpenFaaS that enable
to use various load-balancing algorithms for distributing the requests between the
function instances. We compare our auto-scaling framework to the auto-scaler of OpenFaaS
by the completion time of our python3 based image processing test function chain,
as well as, by the amount of allocated resources.