Our development group is adopting microservices. We found that having developers set up build pipelines by hand for each service was time-consuming and led to inconsistencies as our environment changed, so we automated the process. We developed a meta-pipeline that will generate a continuous delivery pipeline for any of our repositories that follow a set of conventions - our Meta-Pipeline Protocol. Standardising our pipeline definition has greatly reduced our programmers' effort and allowed us to safely evolve our build environment. We're starting to exploit this meta information to improve our overall environment, for example: to visualise relationships, to manage the running of client contract tests, and to profile build timings. In this experience report we will describe the structure of the system, our struggles to develop it, and some of the design decisions we made along the way.
Hilverd Reker is a developer at Springer Nature in London where he works on the Tools Engineering team. He is identifying and implementing solutions to problems faced by most of Springer Nature's software development teams, and doing longer-term work that individual teams can find difficult to justify in short-term value.