This framework has been designed and implemented to create a serverless container infrastructure where the resource limits (i.e., CPU, Memory, disks, network) of such containers can be rescaled in real time according to multiple user-defined policies such as the resource usage of the applications running inside a container or any desired time-varying resource limit.

With this serverless environment several interesting features can be exploited from both the user and the provider point of view:

  • Increased resource utilization, as it is possible to dynamically adjust the resource scheduling to match the real resource usage of the containers.
  • A serverless environment is provided and thus, only the used resource amounts are acccounted for, being the provider's task to adjust the resources provided as needed while minimizing any performance impact.
  • Increased serverless flexibility is offered to the user as by using software containers, which offer a similar environment to virtual machines, a broad range of applications can be deployed and executed.

To account for the container's resource usage and thus have a container-level view, BDWatchdog has been used as the monitoring agent.

Figure 1: Application-view plot for the used and allocated CPU resources in a TeraSort workload
Figure 2: Application-view plot for the used and allocated Memory resources in a TeraSort workload