The Kieker Monitoring Framework [1] 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.
Recently we decided to turn the rather people-centric development process into a pipeline-centric one. Before the changes were put in place the infrastructure was a self-hosted Trac [2], Gitlab [3] and Jenkins [4] setup. To give an example, well-known developers were allowed to commit their code changes directly to the main VCS branch without having a quality check prior to their commit. The continouous integration was triggered after commits were pushed to the repository. This led to cases where the main branch was erroneous for some time until the issue was fixed.
We migrated from a self-hosted Trac, Gitlab, Jenkins to publicly available SaaS-Services (GitHub [5], Atlassian Cloud (Confluence, JIRA) [6], Snap CI [7]. Only some small tasks are still done by a self-hosted Jenkins instance. Today, all commits must pass the --- now explicitly implemented --- continouous delivery pipeline before the changes get into the stable Kieker branch.
The drivers for said changes are manifold:
In the talk we will go through the different aspects and present the original state, what we wanted to change and why; and which considerations led us to the newly established state and what lessons we learned. Even though we went a long way already to achieve the current state, we are not finished yet, as there are still some issues to be tackled.
As all our infrastructure is public, you can see the current state here:
The idea of this talk is to share our experiences and lessons learned, which may be helpful to other open-source projects in the community to improve their processes. Furthermore, at the symposium this would be an interesting topic to discuss in a wider audience.
[1] Kieker: kieker-monitoring.net
[2] Trac: trac.edgewall.org
[3] Gitlab: about.gitlab.com
[4] Jenkins: jenkins.io
[5] Github: www.github.com
[6] Atlassian Cloud: www.atlassian.com
[7] Snap CI: snap-ci.com