In my past experience, the way we enabled blue/green style deployments was to provision some servers for the new release that were copies of that app's production environment servers, deploy the new app version to them, test, then switch over the traffic routing to point to the new servers. When I suggested this in my new team, they said their impression was that blue/green should be across the entire IT environment - you have a copy of all the apps and servers duplicated at all times, and switch back and forth as changes are made.

This surprised me a bit as it seemed like a lot of overhead to switch the routing back and forth for hundreds of apps on hundreds of servers every time a single app is updated. I went back and re-read the [Martin Fowler article](http://martinfowler.com/bliki/BlueGreenDeployment.html) and it's unclear to me what the usual scope is; he repeatedly talks about identical environments, but the sample picture seems to just be a single app stack (one blue web server, app server, database, and one each for green). I found similar descriptions elsewhere around the web; everyone talks about a duplicate environment but then gives an example focused on just a single app.

So, how have you setup blue/green deployments? Am I missing something by having focused on the individual app/service level?