All too often we hear teams talk about Continuous Delivery as a destination. There are questions asked along the lines of what are the things a team needs to do in order to qualify as doing Continuous Delivery.
We believe this is a flawed line of questioning. Continuous Delivery is not a destination that is arrived at by doing a fixed set of steps.
We posit that Continuous Delivery is a value system adopted by teams that informs their choice of architectural principles, the space of available designs, the selection of development practices, the choice of tools and most importantly, the culture of collaboration that they embrace.
Thought of in this way, we believe Continuous Delivery can have as much of an impact on our software delivery process as testability and TDD have on our development processes.
In this talk we will share our experiences on how Continuous Delivery helped us evolve our architecture and choice of tools on our current project SnapCI, a hosted Continuous Delivery tool. We will present how our early design of many well defined Microservices, highly customised but unreliable monitoring and configuration management evolved into a much simpler architecture and a more reliable product.
We hope that using examples such as feature toggles over branches, starting as a Monolith over Microservices and others, our audience takes away how they can start practising CD on their projects and use it to drive their architecture design and choice of tools and technologies.