<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Elastic Allocation of Docker Containers in Cloud Environments</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Matteo Nardelli</string-name>
          <email>nardelli@ing.uniroma2</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Civil Engineering and Computer Science Engineering University of Rome Tor Vergata</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <fpage>59</fpage>
      <lpage>66</lpage>
      <abstract>
        <p>Docker containers wrap up a piece of software together with everything it needs for the execution and enable to easily run it on any machine. For their execution in the Cloud, we need to identify an elastic set of virtual machines that can accommodate those containers, while considering the diversity of their requirements. In this paper, we briefly describe our formulation of the Elastic provisioning of Virtual machines for Container Deployment (EVCD), which takes explicitly into account the heterogeneity of container requirements and virtual machine resources. Afterwards, we evaluate the EVCD formulation with the aim of demonstrating its flexibility in optimizing multiple QoS metrics.</p>
      </abstract>
      <kwd-group>
        <kwd>Container</kwd>
        <kwd>Cloud computing</kwd>
        <kwd>Resource allocation</kwd>
        <kwd>QoS</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Docker1 containers enable to package an application together with all of its
dependencies and then run it smoothly in other environments. They exploit the
operating system level virtualization, therefore multiple containers can co-exist
and run in isolation on the same machine, thus improving resource utilization.
Diferently from virtual machines, containers are lightweight [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], because they
bundle only the application dependencies while reusing the underlying operative
system. For the execution, a container needs to be deployed on a hosting machine,
which provides computing and memory resources. While doing this, we still want
to exploit the Cloud computing principles, which promote the elastic usage of
on-demand resources. This problem is named container deployment problem (or
container allocation problem). If the deployment of a single container can be done
easily, deploying lots of them, belonging to multiple applications with diferent
requirements, can be complicated and might lead to resource shortage or resource
under-utilization. In the literature only few solutions consider container features
while determining their allocation (e.g., [
        <xref ref-type="bibr" rid="ref1 ref11 ref3 ref6 ref9">3 ,6 ,9 ,1</xref>
        ]) and the most of them are
characterized by diferent assumptions and optimization goals. Aside from the
work presented in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], there is no general formulation of the container deployment
problem in the Cloud.
      </p>
      <sec id="sec-1-1">
        <title>1 https://www.docker.com/</title>
        <p>
          In this paper, we investigate the problem of deploying containers in the
Cloud. Specifically, we evaluate EVCD [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], a general formulation of the container
deployment problem that determines the optimal allocation on virtual machines,
acquired on-demand, while considering the QoS attributes of containers and
virtual machines. Besides computing the initial deployment and the following
runtime adaptation, EVCD provides a benchmark against which other deployment
algorithms can be compared. With respect to our previous work [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], in this paper
we show how EVCD can optimize diferent user-oriented QoS metrics, such as
the deployment time and cost.
        </p>
        <p>This paper is organized as follows. We review related work in Sect. 2 ; in Sect. 3
we describe the system model and the problem under investigation, before
formulating EVCD as an Integer Linear Programming problem in Sect. 4 . We
evaluate the flexibility of EVCD in Sect. 5 and conclude in Sect. 6 .
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        In literature a limited number of works provides a formal definition of the
allocation problem for containers; however, due to NP-hardness of the problem,
many heuristics have been proposed. As regards the modeling, in [
        <xref ref-type="bibr" rid="ref1 ref11">1</xref>
        ] the authors
propose a constraint programming model that, diferently from our approach,
ifnds a feasible (but not optimal) deployment solution. The work most closely
related to ours has been presented by Hoenisch et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Their model accounts
for container replication as well as their allocation, while considering several
QoS attributes. We do not explicitly consider container replication, however we
postpone to future work the extension of EVCD for considering it.
      </p>
      <p>
        The existing heuristics aim at optimizing a diversity of utility functions,
namely fairness, load balancing, network trafic, or energy consumption. The
fairness of resource allocation is considered in [
        <xref ref-type="bibr" rid="ref5">5 ,10</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], Ghodsi et al. propose
the Dominant Resource Fairness (DRF) policy, which works in a system containing
diferent resource types (i.e., CPU, memory) and assigns them to containers in
a Pareto-optimal manner. Then, Wang et al. [10 ] further generalize the notion
of DRF to work with multiple heterogeneous servers. Considering a topology
of communicating containers, Zhao et al. [
        <xref ref-type="bibr" rid="ref1 ref11">1</xref>
        ] propose a policy that minimizes
the trafic exchanged using the network, while balancing the load among virtual
machines. The minimization of energy consumption is considered in [
        <xref ref-type="bibr" rid="ref3 ref9">3 ,9</xref>
        ]; these
works propose a greedy placement scheme that allocates containers on the most
energy eficient machines first. All these works focus on system-oriented metrics,
whereas we consider user-oriented metrics, such as the deployment time and
cost. However, EVCD provides a general framework for solving the deployment
problem that can be easily extended to incorporate also those kind of metrics.
Proprietary solutions that support container allocation (e.g., Amazon ECS2,
Google Container Engine3) and open-source alternatives (e.g., Kubernetes4,
      </p>
      <sec id="sec-2-1">
        <title>2 https://aws.amazon.com/ecs/</title>
      </sec>
      <sec id="sec-2-2">
        <title>3 https://cloud.google.com/</title>
      </sec>
      <sec id="sec-2-3">
        <title>4 http://kubernetes.io/</title>
        <p>
          Docker Swarm5) usually bundle simple scheduling heuristics and also enable
the execution of custom policies. Among the most common heuristics, we can
ifnd the round-robin policy, which tries to evenly use resources, and well-known
heuristics that solve the bin packing problem, namely greedy best-fit and
firstift. Specifically, Docker Swarm, the oficial Docker component that allocates
containers on a centralized pool of resources, includes a bin packing policy and
a strategy that balances the number of containers among computing nodes.
In our previous work [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], we used EVCD to compare some of these heuristics
(i.e., round-robin, greedy first-fit) in terms of achievable QoS performance.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>System</title>
    </sec>
    <sec id="sec-4">
      <title>Model and Problem Statement</title>
      <p>Devising an optimal container deployment strongly depends on the assumptions
made about the domain it will be applied to. In this section, we provide a formal
description of the domain entities: containers and virtual machines.</p>
      <p>Software Container Model. A Docker container is an instance of an image,
which represents a container snapshot and contains all the data needed for its
execution. For eficiency reasons, an image is structured as a series of layers (e.g.,
libraries, custom files), where each one can be downloaded independently from the
others. We define the set of containers as S. A container s ∈ S is characterized by
the following QoS attributes: Cs, the number of required CPUs; Dssc, the startup
time; Ms, the amount of required memory; and Is, the set of image layers needed
for its instantiation. We assume Is ⊆ I, where I is the set of all the available
containers images. Each image layer i ∈ I is characterized by the size of data li
composing the layer.</p>
      <p>Virtual Machine Model. A virtual machine (VM) hosts and executes
containers with respect to its capabilities. Being a Cloud resource, a VM can
be acquired and released as needed and paid for the amount of, albeit partially,
consumed Billing Time Units (BTU). Finally, although in theory unlimited, we
assume the number of leasable virtual machines to be limited in a certain time
period. Let V be the set of all VMs, including the active (leased) ones and the
leasable ones. A virtual machine v ∈ V has the following QoS attributes: Cv,
the amount of available CPUs; Mv, the available memory capacity; DRv, the
download data rate of v; Dvsv, the startup time; Pv, the cost per BTU; and Iv,
with Iv ⊆ I, the set of image layers available in v without downloading them
from an external repository.</p>
      <p>Container Deployment Problem. To solve the deployment problem, we
need to determine a mapping between the set of containers S and the set of
virtual machines V in a such a way that all constraints are fulfilled. We investigate
the initial deployment as well as its adaptation at runtime, therefore we solve
EVCD periodically, every τ unit of time. We model the container deployment
with binary variables xs,v, s ∈ S, v ∈ V : xs,v = 1 if s is deployed on v and
xs,v = 0 otherwise. The variables zv denote whether v ∈ V is active and hosts</p>
      <sec id="sec-4-1">
        <title>5 https://www.docker.com/products/docker-swarm</title>
        <p>at least one container. Relying on the deployment configuration determined at
time t − τ , we also define the following auxiliary binary variables: av, which
indicates whether v ∈ V , turned of in t − τ , has to be activated in t; as,v, which
indicates whether s is deployed on a newly activated virtual machine v (i.e., with
av = 1); and δ s,v, which indicates whether, in t − τ , s ∈ S was not allocated or
was allocated on u ̸= v, with u ∈ V .
4</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Elastic Provisioning Model</title>
      <p>
        In this section we present our formulation of EVCD (acronym of Elastic
provisioning of Virtual machines for Container Deployment) as an Integer Linear
Programming (ILP) model. Due to space limitations, we do not report the full
formulation of EVCD, which can be found in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. EVCD is solved periodically,
every τ unit of time. We model as QoS metrics the deployment time D(x, z) and
cost C(x, z). The former represents the time needed to deploy every container
in S, whereas the latter represents the monetary cost of the virtual machines
leased for executing the containers. Since the relative importance of these metrics
depends on the utilization scenario, EVCD provides a general formulation that
can be aimed at optimizing specific QoS attributes. Therefore, the objective
function of EVCD is the minimization of F (x, z), which is defined as a weighted
sum of the normalized QoS attributes:
      </p>
      <p>C(z) =</p>
      <p>X Pvav +
v∈ V</p>
      <p>X
v∈ V exp</p>
      <p>Pvzv</p>
      <p>D(x, z) − Dmin + wc C(z) − Cmin</p>
      <p>F (x, z) = wd Dmax − Dmin Cmax − Cmin
where wd, wc, with wd, wc ≥ 0, wd + wc = 1, are weights for the diferent QoS
attributes, and Dmax (Dmin) and Cmax (Cmin) denote, respectively, the maximum
(minimum) value for the overall expected deployment time and cost. Observe
that these normalization factors can be computed by solving other optimization
problems or can be approximated relying on previous experiments or on statistical
analysis of the runtime execution. The overall deployment time D(x, z) accounts
for the time needed to spawn new VMs, retrieve container images, and finally
start the containers. It can be formally defined as:</p>
      <p>
D(x, z) = X X  Dvsvas,v +
s∈ S v∈ V</p>
      <p>X
i∈ Is\Iv</p>
      <p>li
DRv
xs,v + Dsscδ s,v

where Dvsv is the startup time of a new VM, considered only if a new one is
needed, P li represents the time needed to download the images Is not yet
on v, and Di ssDc Risv the startup time of s, if s was not already running on v. The cost
C(x, z) includes the leasing of the new VMs and the renewing the expired ones
which are still needed. Relying on the activation vector z and on the auxiliary
variables av, we have that:
(1 )
(2 )
(3 )
2000 2500</p>
      <p>Simulated Time (min)
500
1000
1500
3000
3500
4000
4500
(a) Number of active containers</p>
      <p>Active Containers</p>
      <p>EVCD_C
EVCD_D
EVCD_CD
rse 40
n
i
tna 30
o
foC 20
r
be 10
m
u
N 0
s 10
M
V 8
e
v
i
tc 6
A
fo 4
r
bem 2
uN 0
0
0
where the first term on the right end side accounts for the cost of newly acquired
VMs, and the second one accounts for renewing the expired leasings, if needed
(i.e., if the related VM is still used). The set V exp ⊆ V includes the VMs whose
leasing is going to expire between the current time t and the next execution of
EVCD in t + τ .</p>
      <p>
        The full optimization in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] includes constraints that limit the number of
containers deployable on a VM with respect to the available resources as well as
the formal definition of the auxiliary variables.
5
      </p>
    </sec>
    <sec id="sec-6">
      <title>Experimental Results</title>
      <p>To evaluate the EVCD model, we simulate its execution in a system that receives
containers and allocates them on VMs. The aim of this experiment is to show the
lfexibility of EVCD, which can elastically acquire and release VMs to host and
execute software containers while optimizing the deployment time of containers,
the cost of leased VMs, or a combination thereof.</p>
      <p>We solve EVCD with CPLEX©6, the state-of-the-art solver for ILP problems,
on a machine with 4 CPUs and 16 GB RAM. We simulate the execution of EVCD</p>
      <sec id="sec-6-1">
        <title>6 http://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/</title>
        <p>
          every τ = 15 minutes. Each container requires unitary resources (i.e., CPU,
memory) and has a lifespan of L = 30 minutes. A container depends on a set
of image layers, whose cardinality is uniformly chosen between 2 and 4; this set
includes 70% of existing images (if any) and 30% of new images. Each image layer
has a size li uniformly defined in [200, 800] MB. The startup time Dssc of s ∈ S
ranges uniformly in [8.5, 11.5] s. Two type of VMs are available in V : type A with
4 CPUs, 16 GB of RAM, and Pv = 1; and type B with 8 CPUs, 32 GB of RAM,
and Pv = 1.7. Similarly to the most popular commercial solutions, the BTU is
60 minutes. The startup time Dvsv of v ∈ V ranges uniformly in [85, 115] s, in
accordance with [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. During the experiment, the number of containers requiring
resources fluctuates between 0 and 20 during the timespan of a (simulated) day,
and this pattern is repeated for the following two days. Figure 1 a shows the
number of active containers during the whole experiment; being L ≥ τ , the
number of active container can be greater than 20.
        </p>
        <p>We evaluate the efects on the containers deployment of three diferent
configurations of EVCD, namely EVCD_C, EVCD_D, and EVCD_CD. EVCD_C
deploys containers by minimizing, as QoS metric, the cost C(x, z), i.e., it solves
EVCD with F parametrized with weights wc = 1 and wd = 0. EVCD_D
minimizes the deployment time D(x, z), by solving EVCD with wd = 1 and wc = 0.
Finally, EVCD_CD minimizes both the QoS metrics, by solving EVCD with
wd = wc = 0.5, and normalization terms Dmin = 8.5 s, Dmax = 152.1 s, Cmin = 0,
and Cmax = 10.1. These values result from preliminary experiments. Figure 1 b
shows the number of active VMs during the experiment, whereas Table 1 reports
the average values of the considered QoS metrics and the relative number of
used VMs per type. From Fig. 1 b we can see that, although every configuration
of EVCD acquires and releases VMs to satisfy the incoming load, each of them
follows a diferent strategy. Diferently from the other configurations, EVCD_C
tries to use as few VMs as possible and, if needed, prefers type B VMs (76.6%
of the time, see Table 1 ), because of their economy of scale. However, this leads
to the highest deployment time, which is higher then the optimal one of about
76% (see Table 1 ). EVCD_D neglects the diferences in terms of price between
VMs of type A and type B, which are used almost equally. This strategy has the
highest cost (29% higher than the optimal one), however it obtains the lowest</p>
        <p>2000 2500
Simulated Time (min)
3000
3500
4000
4500
possible deployment time, because it allocates containers on VMs that already
host some of the needed image layers, thus reducing the container startup time.
EVCD_CD finds a trade-of between the previous strategies, as can be seen from
Table 1 . It optimizes both the QoS metrics, achieving a deployment time and
cost about 9% and 8% higher than the optimal values, respectively. Moreover,
this strategy shows that, by selecting the weights of F according to the user
preferences, EVCD can be aimed at optimizing diferent QoS metrics of interest.
Observe that any other combination of weights wc, wd lead to configurations
that lie in between EVCD_C and EVCD_D. Determining the best trade-of
between deployment time and cost depends on the relative importance of these
QoS metrics on the utilization scenario (e.g., diferent user preferences).</p>
        <p>On EVCD Resolution Time. We now discuss about the resolution time of
EVCD and its relationship with the optimization goals. We consider as resolution
time the time needed to compute the exact solution of the ILP problem. During
this experiment, the maximum number of managed virtual machines (both active
and leasable) in V is 19, whereas the maximum number of active containers in S is
40. Figure 2 reports the resolution time of EVCD for the diferent configurations
(i.e., EVCD_C, EVCD_D, and EVCD_CD) during the experiment. In general,
we observe that the resolution time is influenced by the size of the problem
as well as by the optimization function F resulting from the diferent set of
weights. Optimizing a single QoS attribute, i.e., solving EVCD_C or EVCD_D,
is less computationally demanding and has better performances; as can be seen
from Fig. 2 , the resolution time of EVCD_C and EVCD_D is always below
1 s. Conversely, solving a multi-objective optimization problem is harder and
produces higher resolution times with greater fluctuations with respect to the
previous configurations. The complexity of CPLEX does not easily reveal the
motivations behind the number and amplitude of these fluctuations. During the
whole experiment, the 95th percentile of the resolution time for EVCD_C and
EVCD_D is 189 ms and 33 ms, respectively, whereas EVCD_CD has a 95th
percentile of about 24.6 s, i.e., two order of magnitude higher.</p>
        <p>
          It can be demonstrated that the deployment problem is NP-hard (see [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]),
therefore EVCD does not scale well as the problem instance increases in size.
Nevertheless, by determining the optimal deployment of containers over an elastic
set of VMs and evaluating the subsequent runtime reconfigurations, EVCD
provides a benchmark for evaluating heuristics, for developing new ones, and for
identifying the most suitable ones with respect to specific optimization objectives.
6
        </p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>In this paper we have described and evaluated EVCD, a formulation of the elastic
provisioning of virtual machines for container deployment. EVCD is a general
and flexible model that can be conveniently configured to optimize diferent QoS
metrics. Aside computing the initial allocation, EVCD can adapt the containers
deployment at runtime, if needed. The experimental evaluation has shown the
lfexibility of the proposed model, which has optimized the deployment time of
containers, the monetary cost for their execution, and a combination thereof.
As future work, we plan to extend the formulation of EVCD to include other QoS
attributes (e.g., network trafic, resource utilization) and the runtime replication
of containers. Moreover, we plan to develop eficient heuristics to deal with large
instances of the container deployment problem for the initial deployment and to
support runtime reconfigurations.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1 .
          <string-name>
            <surname>Abdelbaky</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diaz-Montes</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parashar</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , et al.:
          <article-title>Docker containers across multiple clouds and data centers</article-title>
          .
          <source>In: Proc. of IEEE/ACM UCC</source>
          <year>2015</year>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2 .
          <string-name>
            <surname>Cardellini</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grassi</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Lo</given-names>
            <surname>Presti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Nardelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Optimal operator placement for distributed stream processing applications</article-title>
          .
          <source>In: Proc. of ACM DEBS ' 16</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3 .
          <string-name>
            <surname>Dong</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhuang</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rojas-Cessa</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Energy-aware scheduling schemes for cloud data centers on google trace data</article-title>
          .
          <source>In: Proc. of IEEE OnlineGreenComm</source>
          <year>2014</year>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4 .
          <string-name>
            <surname>Felter</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferreira</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rajamony</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , et al.:
          <article-title>An updated performance comparison of virtual machines and linux containers</article-title>
          .
          <source>In: Proc. of IEEE ISPASS</source>
          <year>2015</year>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5 .
          <string-name>
            <surname>Ghodsi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaharia</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hindman</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , et al.:
          <article-title>Dominant resource fairness: Fair allocation of multiple resource types</article-title>
          .
          <source>In: NSDI</source>
          . vol.
          <volume>1</volume>
          (
          <issue>201</issue>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6 .
          <string-name>
            <surname>Hoenisch</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weber</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schulte</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , et al.:
          <article-title>Four-fold auto-scaling on a contemporary deployment platform using docker containers</article-title>
          .
          <source>In: Proc. of ICSOC</source>
          <year>2015</year>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7 .
          <string-name>
            <surname>Mao</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Humphrey</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A performance study on the vm startup time in the cloud</article-title>
          .
          <source>In: Proc. of IEEE CLOUD</source>
          <volume>201</volume>
          (
          <issue>201</issue>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8 .
          <string-name>
            <surname>Nardelli</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hochreiner</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schulte</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Elastic provisioning of virtual machines for container deployment</article-title>
          .
          <source>In: Proc. of ACPROSS</source>
          <year>2017</year>
          ,
          <article-title>colocated with ACM/</article-title>
          SPEC ICPE '
          <volume>17</volume>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9 .
          <string-name>
            <surname>Piraghaj</surname>
            ,
            <given-names>S.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dastjerdi</surname>
            ,
            <given-names>A.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calheiros</surname>
            ,
            <given-names>R.N.</given-names>
          </string-name>
          , et al.:
          <article-title>A framework and algorithm for energy eficient container consolidation in cloud data centers</article-title>
          .
          <source>In: Proc. of IEEE DSDIS</source>
          <year>2015</year>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          01 .
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liang</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Dominant resource fairness in cloud computing systems with heterogeneous servers</article-title>
          .
          <source>In: Proc. of IEEE INFOCOM</source>
          <year>2014</year>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          1 .
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mandagere</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Alatorre</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          , et al.:
          <article-title>Toward locality-aware scheduling for containerized cloud services</article-title>
          .
          <source>In: Proc. of IEEE Big Data</source>
          <year>2015</year>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>