Scientific Reports:

P. Hönisch, I. Weber, S. Schulte, L. Zhu, A. Fekete:
"Four-fold Auto-scaling for Docker Containers";
Report No. UNSW-CSE-TR-201513, 2015; 12 pages.

English abstract:
Virtual machines (VMs) are quickly becoming the default method of hosting Web applications (apps), whether operating in public, private, or hybrid clouds. Hence, in many cloud-based systems, auto-scaling of VMs has become a standard practice. However, VMs suffer from several disadvantages, e.g., the overhead of needed resources as a full operating system (OS) needs to be started, a degree of vendor lock-in and the relatively coarse-grained nature. This can be overcome by using lightweight container technologies like Docker as the OS is not included in a container, instead, the one from the host machine is used. Like VMs, containers offer resource elasticity, isolation, flexibility and dependability. On the one hand, containers need to run on a compatible OS and share resources through the outside OS, on the other hand, exactly this fact leads to benefits such as a faster start-up time and less overhead in terms of used resources. A common approach is to run containers on top of VMs, e.g., in a public cloud. Doing so, the flexibility for auto-scaling increases, since VMs can then be sub-divided. However, the additional freedom also means that scaling decisions become more complex: considering horizontal and vertical scaling on both, the container and the VM level, auto-scaling is now four-fold. We address four-fold auto-scaling by (i) capturing the decision space as a multi-objective optimization model, (ii) solving instances of that model dynamically to find an optimal solution, and (iii) executing the dynamic scaling decision through a scaling platform for managing Docker containers on top of VMs. We evaluated our approach with realistic apps, and found that using our approach the average cost per request is about 20-28% lower. This technical report provides details omitted from a short conference paper [3], as follows. Section 1 presents the optimization model in detail, after first introducing the preliminaries needed to understand the model. The control architecture is described in Section 2, and the evaluation of our approach is described in Section 3. A broader introduction, a motivating example, and a discussion of related work in turn can be found in [3].

Created from the Publication Database of the Vienna University of Technology.