C
H
A
R
T
B
Y
C
L
A
U
S
P
A
H
L
,
F
R
O
M
“
C
O
N
T
A
I
N
E
R
I
Z
A
T
I
O
N
A
N
D
T
H
E
P
A
A
S
C
L
O
U
D
”
Technology | DOI: 10.1145/3005680 Chris Edwards
Containers Push Toward
the Mayfly Server
The container revolution represents a large-scale shift
in thinking about multitasking systems.
ating system running on bare metal.
Virtualized installations imposed a
performance penalty for I/O-intensive
applications, although improvements
in hardware support for virtualization
have narrowed the performance gap.
Even as the performance gap has re-
duced, the growing base of support soft-
ware that has emerged around Docker
and its competitors has bolstered mar-
ket acceptance of containers. Orches-
tration software, such as Google’s Ku-
bernetes or Apache’s Mesos, has given
large users of server farms the ability to
quickly start containers and to delete
them just as rapidly. Chris Aniszczyk,
interim executive director of the Cloud
Native Computing Foundation and for-
THE DRIVE FOR efficiency in servers is changing the way applications and operating systems interact. The proc- ess has accelerated in just
the past five years, as server-farm op-
erators have moved on from virtual-
machine technology as a way of improv-
ing hardware utilization toward even
more streamlined options. The work
has led as far as the operating system
and application being compiled into
one block of software and stripping
out any unused services to reduce both
memory footprint and startup times.
Speaking about a project he and
fellow researcher Anil Madhavapeddy
worked on to pursue more efficient
server software, Richard Mortier, Uni-
versity Lecturer in the University of
Cambridge’s Computer Laboratory,
says: “The original motivation that Anil
and I had was that you should be able
to write software for the cloud, particu-
larly for network-connected services.
But if we were to do that, what would
it look like? Related to that was the
idea that it should be possible to build
software without having to worry about
what platform it was targeted for.”
To a limited extent, the move to vir-
tualization provided an answer for the
second problem. Virtualization lets
completely different operating systems
and their associated applications share
the same processors on a server blade.
A hypervisor manages and schedules
the operating systems running within
each virtual machine (VM).
The problem with virtualization is
that each VM partition calls for a com-
plete installation of the operating sys-
tem and its support software, even if
those partitions run the same versions
and differ only terms of the applica-
tions they or the users who own them
utilize. The container, an approach
popularized by companies such as
Docker, removes a lot of this overhead
by sharing one operating system im-
age among multiple partitions. Each
container only stores the additional
services and tasks required by the ap-
plications they hold, which can greatly
reduce the memory footprint. Runtime
also improves because full virtualiza-
tion demands multiple context switch-
es whenever I/O calls are made. Not
only does the operating system need to
switch into a supervisor mode to handle
I/O, the hypervisor itself forces a switch
to a more heavily protected mode in
order to service the I/O request.
Studies by Ericsson and IBM have
found containers to have little more
overhead than a conventional oper-
A container-based virtualization architecture.
Container
Container
Container
Container
Host node
Host node
Volume
Container
Host node
Host node
Container
Container
Service
Volume
Cluster
Link
Mounted