Search code examples
deploymentintegrationagilescrumcontinuous

How do you continuously deploy a large system consisting of several applications


At the moment we are deploying our whole application chain together and at once to production, because of the many dependencies that the systems have.

Our Scrum teams are business theme based in order to ensure real business value at the end of each Sprint with every user story, so it often happens, that user stories need changes in several applications.

And we have several Scrum teams, working on the same systems. Logically we end up acceptance testing everything in a huge acceptance and (semi automated) regression test.

But doing a big bang roll-out to production is very time consuming, error prone and not scalable anymore... (or is it?) With continuous deployment we would like to enable the team to self service a roll out to production, so business rolls out features when they want to, not based on an IT schedule.

But how do we manage to roll-out changes (code, DB scripts) that are distributed over several code bases and find a strategy in order to deal with the dependencies between applications?

What's the strategy to have scalable continuous deployment? And how do you transition to this point?

What do you think?


Solution

  • (That is quite a few questions inside one big question.)

    But I would refer to the Continuous Delivery book http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912/

    Edit: (As commented you already read this book) Some suggestions which you may already do, but for others with similar issue:

    But I have no solid solution to the inter-dependency auto-deploy strategy you actually ask for :|