I'm interested to hear how people manage code deployments and how they tie it into their orchestration system.
I've not been able to find a good puppet subversion module which works the way I want. Say I split my application servers into two groups, A and B and I do deploys in a see-saw fashion. What I pictured, is having two variables which define what revision each group should use.
$groupA_svn_tag = 'myCode-1.0' $groupB_svn_tag = 'myCode-1.0'
Then, when I want to do a deployment, I take groupA off line (in my load balancer) and increment the tag variable.
$groupA_svn_tag = 'myCode-1.1' $groupB_svn_tag = 'myCode-1.0'
I wait for puppet to do it's thing (svn switch myCode-1.1) and flip the balancer and increment groupB.
Perhaps this is a misuse of puppet as it's more of a 'keep the servers in this state' sort of tool. Should I be using mcollective for this? How do other people approach this problem?