Don't just watch the containers pass by: How we (plan to) use Docker to streamline the Kieker development process and infrastructure

The Kieker Monitoring Framework is an open-source project mainly developed by researchers in Kiel and Stuttgart. It provides tools for application performance monitoring and the analysis of the collected performance data.

After having moved to a pipeline-centric development process (as presented in SSP'16), we intended to be more environment-agnostic by using Docker containers in several contexts. In addition, we plan to use them in even more cases to make developing, testing, and building with Kieker easier.

In this talk, we will present how Docker containers are currently used and what we could think of to further improve our development and delivery/deployment processes.

Currently, our build infrastructure uses Docker to execute single stages of the build pipeline. The task for a build pipeline stage is delegated to a worker that has Docker installed which then executes the stage inside a Docker container.
The Kieker Live Demo is also "dockerized". A separate infrastructure pipeline builds Docker images from the current nightly and release version and pushes them to DockerHub. The Live Demo servers stop the running Live Demo containers, pull the new Docker images and start the new containers at regular intervals.

In the future we can think of some more use cases.
To support the developers, it would be helpful, if they could execute the build process in a reproducable manner that the outcome of the local build is exactly the same as the one in the Jenkins pipeline. This could be achieved by providing Docker containers that can resemble the build environment on our build infrastructure.
Furthermore, Docker containers could be used to run (integration) tests and example applications to make sure that they work properly and do not interfere with each other.

The goal of this talk is to share our experiences and plans with the community on the usage of Docker in development processes and infrastructure in the context of developing research tools.