Are there any examples of Octopus managing a Blue-Green Deployment (http://martinfowler.com/bliki/BlueGreenDeployment.html) of a web application?
We’ve currently got a Blue environment and a Green environment. We manually kick off Octopus to deploy to Green (or Blue if it’s the non-live one) and then we run our smoke tests, when they pass we cut over to that environment (ie Green is now live) and then manually kick off Octopus to deploy to Blue (or Green).
I am aware that I can orchestrate with a PS script and call the Octopus APIs, but is there anything in the box (or in futures) that will make this easier (ie more fault tolerant)?
(Hope this makes sense)
As you say, it can be co-ordinated using Octo.exe and PowerShell scripts, but there’s no special inbuilt support. You could probably even hook this into TeamCity. Running smoke tests and then ‘chaining’ a deployment on success is the kind of feature I’d like Octopus to support in future.
Are there any plans to better support this scenario or do you have an idea of how we should setup the environments in octopus? I could set an environment for each copy so I could have Prod-Blue and Prod-green. or have them all in a single production environment. The down side of the multiple environments would be the scope of the variables management. Are there any other downsides to creating two production environments?
I can’t think of any and I think it more realistically models how you are deploying. Note that in 2.0 a single variable can be scoped to multiple environments (you don’t have to duplicate the variable to assign it to more than one environment) so there really shouldn’t be any overhead.