Autonomic Orchestration of Containers: Problem Definition and Research Challenges
Autonomic Orchestration of Containers: Problem Definition and Research Challenges
ABSTRACT not only to start/stop but also to upgrade and release a new version
Today, a new technology is going to change the way cloud of a containerized service in a seamless way. IBM researcher
platforms are designed and managed. This technology is called “believe that the new cloud operating environment will be built
container. A container is a software environment where to install using containers as a foundation. No virtual machines…”[4].
an application or application component and all the library Containers became so popular because they potentially may solve
dependencies, the binaries, and a basic configuration needed to many cloud application issues, for example: the “dependency
run the application. The container technology promises to solve hell” problem, typical of complex distributed applications.
many cloud application issues, for example the application Containers give the possibility to separate components, wrapping
portability problem and the virtual machine performance overhead up the application with all its dependencies in a self-contained
problem. The cloud industry is adopting the container technology piece of software, that can be executed on any platform that
both for internal usage and as commercial offering. However, we supports the container technology. The application portability
are far away from the maturity stage and there are still many problem; a microservice can be executed on any platform
research challenges to be solved. One of them is container supporting container and moreover the Docker container
orchestration, that make it possible to define how to select, management framework is compliant with the cloud portability
deploy, monitor, and dynamically control the configuration of frameworks TOSCA [5][6]. The performance overhead problem;
multi-container packaged applications in the cloud. This paper containers are lightweight and introduce lower overhead
presents the problem of autonomic container orchestration, compared to VMs. The literature shows that the overhead
analyze the state of the art solutions and discuss open challenges. introduced by containers, compared to bare-metal installations, is
around 10% while hardware virtualization (classical VMs)
CCS Concepts introduce an overhead of the 40% [7]; moreover, launching and
• Computing methodologies~Self-organization • Computer shouting down a container requires 1-2 seconds rather than
systems organization~Cloud computing • Information minutes. Besides, the concept of microservices and the portability
systems~Computing platforms • Applied computing~Service- feature of containers make it possible to satisfy typical constraints
oriented architectures • Theory of computation~Distributed imposed by the legislation and the regulation e.g., the data
computing models sovereignty and the vendor-lock-in.
For all those reasons, and more, the cloud industry adopted the
Keywords container technology both for internal usage [8] and for offering
Container; Docker; Cloud Computing; Autonomic Computing;
container-based services and container development platforms [2].
Service Orchestration. Examples are Google container engine [8], Amazon ECS [9],
1. INTRODUCTION Alauda (alauda.io), Seastar (seastar.io), Tutum (tutum.com),
Azure Container Service (azure.microsoft.com). Containers are
Operating system and application virtualization, also known as
also the state of the art solution adopted to deploy large scale
container (or Docker container or simply Docker [1]), became
applications, for example big data applications requiring high
popular since 2013 with the launch of the Docker open source
elasticity in managing a very large amount of concurrent
project (docker.com) and with the growing interest of PaaS
components (e.g. [10][11]).
providers [2] and Internet service providers [3]. A container is a
software environment where one can install an application or Despite that wide interest in containers, we are far away from the
application component (the so called microservice) and all the maturity stage and there are still many challenges to be solved, for
library dependencies, the binaries, and a basic configuration example: the need for reducing networking overheads compared
needed to run the application. Containers provide a higher level of to hypervisors; the need for secure resource sharing and isolation
abstraction for the process lifecycle management, with the ability to enable multi-tenancy; the need for improving container
monitoring capabilities; the need for improving container resource
management at run time (e.g. vertical scaling of a container is not
possible) and the need for improving orchestration policies and
SAMPLE: Permission to make digital or hard copies of all or part of this adaptation models adding autonomic capabilities.
work for personal or classroom use is granted without fee provided that
copies are not made or distributed for profit or commercial advantage This work defines and discusses the problem of container
and that copies bear this notice and the full citation on the first page. To orchestration with a focus on autonomic mechanisms. The paper
copy otherwise, or republish, to post on servers or to redistribute to lists, is organized as in what follow. Section 2 defines container
requires prior specific permission and/or a fee. orchestration. Section 3 discusses the related work. The research
Conference’10, Month 1–2, 2010, City, State, Country. problem of autonomic container orchestration is formulated in
Copyright 2010 ACM 1-58113-000-0/00/0010 …$15.00.
Section 4. Research challenges and final remarks are presented in
DOI: http://dx.doi.org/10.1145/12345.67890 Section 5.
2. CONTAINER ORCHESTRATION contemplate security, but no-one considers constraints imposed by
Orchestration is intended as the set of operations that cloud legal rules [22][23], e.g. sovereignty of data.
providers and application owners undertake (either manually or The idea of container dates back to 1992 [24] and matured over
automatically) for selecting, deploying, monitoring, and the years with the introduction of Linux namespace [25] and the
dynamically controlling the configuration of resources to LXC project (linuxcontainers.org), a solution designed to execute
guarantee a certain level of quality of service [6]. In the same full operating system images in containers. From operating system
way, container orchestration allows cloud and application virtualization the idea has moved to application container [1]. The
providers to define how to select, to deploy, to monitor, and to experiments in [7] show that Docker performs as bare-metal
dynamically control the configuration of multi-container systems and outperforms KVM in most of the cases but that it is
packaged applications in the cloud. weak for I/O and network intensive workloads. In [26] the authors
Container orchestration is not only concerned with the initial shown that for specific memory configuration Docker is capable
deployment of multi-container applications, but it also includes to perform slightly better than VMs while executing scientific
the management at runtime, for example: scaling a multi- workloads.
container application as a single entity; controlling multi-tenant The adoption of container technologies calls for new autonomic
container-based applications; composing containers in high management solutions. An early study on container management
available software architectures; optimizing the networking of the is presented in [27]. Here the authors compare a VM-based and
application, e.g. executing computation near the data. Elastic Application Container based resource management with
Because the highly dynamic and complex environment in which regards to their feasibility and resource-efficiency. The results
containers are operated, the orchestration actions must be show that the container-based solution outperforms the VM-based
automatically adapted at run time, without human intervention, approach in terms of feasibility and resource-efficiency. Today,
and that entails autonomic orchestration mechanisms. there are technologies that specifically support container
orchestration but the level of automation is very naïve. CoreOS
Today, the container orchestration frameworks are at their infancy integrates an orchestrator, called fleet, that supports live container
and do not include any autonomic feature [12]. Cloudify migration from one host to another and the possibility to modify
(getcloudify.org) and Kubernetes (kubernetes.io) are the main at runtime the environment of running containers. Google
TOSCA compliant implementations allowing orchestration of Kubernetes adopts a mixed approach to the virtualization that
Docker containers. However, how to execute and orchestrate allows to scale both the computing resources available to
container in a distributed environment without leveraging on containers and the number containers available to applications. In
hypervisors is still an open issue. Docker Swarm requires a static that way, application can rapidly scale up and down according to
setup of the cluster nodes. Core OS (coreos.com) is a first step their needs. In [12] the authors analyze the state of the art and
toward in this direction, but it is a young solution, and again it is challenges in container orchestration pointing out the high
effected by the standardization problem. The auto-scaling policy fragmentation of technologies, lack of standard image format and
implemented in Kubernetes is a simple threshold based algorithms immaturity of monitoring systems. C-Port [28] is the first example
that only uses CPU usage metrics. The scheduling and load of orchestrator that make it possible to deploy and manage
distribution policy implemented in Swarm is rather naïve. container across multiple clouds. The authors plan to address the
issues of resource discovery and coordination, container
To realize autonomic container orchestration many research
scheduling and placement, and dynamic adaptation. However, the
problems must be addressed, among them: resource management
research is at an early stage. In term of orchestration policy, they
at run time, synchronization between design and execution
developed a constraint-programming model that can be used for
environments, monitoring, performance profiling and
dynamic resource discovery and selection. The constraints that
characterization, performance modeling, definition of
they considered are availability, cost, performance, security, or
optimization models for orchestration and adaptation.
power consumption.
3. RELATED WORK 4. RESEARCH PROBLEM
Autonomic orchestration of Docker containers could leverage
The orchestration of container is a broad research topic because it
more than ten years of research results in the field of autonomic
covers the whole life-cycle management. In this work we focuses
computing [15], autonomic service oriented systems [16],
on the elastic properties of container management over distributed
autonomic cloud computing [17][18].
datacenters and in multitenant environments. We concentrate our
A recent survey on service level management in the cloud [17] attention on why, when, where and how to deploy, to launch, to
found that: the monitor-analysis-plan-execute (MAPE) run, to migrate and to shut down container. All those actions are
architecture style [14] is predominant in autonomic cloud systems; defined in what is called an orchestration or adaptation policy.
and, heuristics (e.g. [19][13]), and optimization policies (e.g. Why orchestration action should occur is determined by specific
[20][13][21]) are the most commonly used techniques for resource events such as an increase in the workload intensity or volume,
allocation. In [18] the authors review literature on autonomic the arrival of a new tenant, change of SLA, node failures, critical
QoS-aware resource management in cloud computing since 2009. node load/health state, and so on. Figure 1 shows our approach to
Both from [17] and [18] it results that mainly researchers consider autonomic container orchestration. It is based on the classical
time, availability, cost (in general), energy consumption, as main MAPE-K cycle [14].
constraints or objective of the adaptation. A few works
Container'
image'
Container(
Container(
registries
engine
Container(
image
Autonomic'controller Code( Build Push image(
repository repository
Monitor
(e.g.(Docker)
Container(A(
Container(
Container(B
Container(C
CE CE
Engine(
CE
CE
CE CE CE
Clusters'of'Nodes'' Clusters'of'Nodes'' CE
CE
Clients CE
Host(OS
Clusters(of(Nodes((