bundle and measure the total generation time. We
define the total generation time as the accumulated
time, which is required to build these container ima-
ges and to push the generated container images to the
artifact repository. In the transformation experiment,
we run the prototype to generate a self-configuring
service bundle and measure the total transformation
time. We define the total transformation time as the
elapsed time from the start of the prototype to the
point, where all steps of the AUTOGENIC method are
successfully completed. This also includes pushing
the generated container images to the corresponding
artifact repository (cf. Figure 4).
We executed our experiments on a CentOS 7 vir-
tual machine with 2 vCPUs clocked at 2.6 GHz, 4
GB RAM, and 40 GB disk running in our OpenStack-
based cloud environment. The virtual machine pro-
vides an OpenJDK Runtime Environment 1.8.0 and
Docker Engine 1.12.6. For building container ima-
ges, we rely on the Docker Engine API v1.24. As
artifact repository, we run a private Docker Registry
v2.6 on localhost. We executed ten independent runs
for each experiment and measured the total generation
time and the total transformation time, respectively.
In the baseline experiment, we build a single con-
tainer image for each container. These container ima-
ges are built based on the build specification spe-
cified in the service bundle. However, all contai-
ner images require base images from the Docker-
Hub. The wordpress container requires downloa-
ding php:5.6-apache
22
with 377.7 MB, memcached
requires debian:stretch-slim
23
with 55.24 MB, mysql
requires oraclelinux:7-slim
24
with 117.6 MB, and
backup requires python:2.7.14-jessie
25
with 679.3
MB. To ensure that we measure the total generation
time without caching, we cleared the Docker cache
and the Docker Registry before every run. In this con-
text, caching of container images relates to the inter-
mediate layers stored by Docker to speed up future
build processes. Based on the measurements, we cal-
culated an average total generation time of (882 ±38)
seconds.
In the transformation experiment, we ran our pro-
totype to measure the total transformation time. The-
refore, all required container images are built and
pushed to the artifact repository. This includes the
developer-supplied container images as well as con-
tainer images generated by the AUTOGENIC Nexus
prototype. Again, we cleared the Docker cache and
the Docker Registry before every run. Based on the
22
https://hub.docker.com/ /php.
23
https://hub.docker.com/ /debian.
24
https://hub.docker.com/ /oraclelinux.
25
https://hub.docker.com/ /python.
measurements, we calculated an average total trans-
formation time of (1349 ± 16) seconds.
The transformation adds an average overhead in
size of 67.8 MB per container image. This is largely
related to ContainerPilot and Consul-specific tooling.
Note that the container images built in the baseline ex-
periment are not self-configuring. Additional manual
effort would be required to enable the same features,
thus also leading to larger image sizes.
In summary, the transformation applied by our
prototype results in an average overhead of 467 se-
conds to enable the AUTOGENIC approach. However,
we enable software developers to implement their mi-
croservices independent of operational technologies,
which saves time during development. Moreover, our
model-based approach leads to several benefits such
as portability of microservice implementations and
the separation of concerns for software developers
and operations personnel (cf. Section 3).
The overhead measured is basically related to
building additional container images, which include
the required self-configuration mechanisms. Note
that the measurements depend on the size of required
and generated container images, the network band-
width for downloading the required base images, and
the location of the artifact repository. Thus, the re-
ported values may be different in a real world sce-
nario. Furthermore, we identified several opportuni-
ties to speed up the transformation performance such
as building container images concurrently and storing
required software packages locally. Obviously, ca-
ching techniques offer another opportunity for perfor-
mance tuning.
7 RELATED WORK
Our approach aims at facilitating the development of
self-configuring microservices by introducing an ab-
straction layer between software developers and ope-
rations personnel. Implementing the AUTOGENIC
method leads to a self-service tool that enables de-
velopers to take responsibility for the dynamic con-
figuration of their microservices independently of the
runtime environment. Using self-service tools and au-
tomation is a commonly applied approach for suppor-
ting DevOps (H
¨
uttermann, 2012).
Microservices require decentralized management
and prefer choreography over orchestration (Fowler,
2017; Newman, 2015; Zimmermann, 2017). The aut-
hors of (Schermann et al., 2016) state that more re-
search on choreography rather than orchestration is
required. Self-configuring microservices are a solu-
tion to ensure dynamic configuration without relying
CLOSER 2018 - 8th International Conference on Cloud Computing and Services Science
44