Live data from Hacker News

BlueGreenDeployment (2010)

martinfowler.com

1–10 of 38 posts

Re: BlueGreenDeployment (2010)

#3
post #2

This can be implemented easy using Ansible http://docs.ansible.com/guide_rolling_upgrade.html btw article is 4 years old

This actually doesn't describe a green/blue environment - it describes having a single environment that has code deployed in a rolling fashion. Which is useful, but not this use case.

It's also worth noting that this use case is actually pretty hard to model in ansible without external tools or the like. You basically need to deploy four jobs:

- deploy new code to inactive environment

- switch persona from inactive to active

- reconfigure load balancer to send to newly active

- switch formerly active persona to inactive

within some or all of those individual tasks you might want to apply these rolling techniques. But since rollouts may not be idempotent and this process isn't transactional, you have to be very careful indeed to code this out.

Re: BlueGreenDeployment (2010)

#6
BlueGreen deployments are easy to achieve using something like AWS ElasticBeanstalk (and they also force you to have your entire env setup in code so its quickly duplicatable for each deploy) with how easy it is to create a new stack and its 'Swap CNAME' feature.

However, now that Elastic Beanstalk supports incremental rollouts I don't see as much value in the approach.

We use Blue/Green deployments (with AWS EB) at Mi9 to deploy all our high traffic websites

Re: BlueGreenDeployment (2010)

#7
The most interesting thing for me was the link to http://continuousdelivery.com/ and the diagrams summarizing some of the concepts in the book (they're CC licensed):

http://continuousdelivery.com/wp-content/uploads/2014/02/01_...

http://continuousdelivery.com/wp-content/uploads/2014/02/02_...

http://continuousdelivery.com/wp-content/uploads/2014/02/03_...

http://continuousdelivery.com/wp-content/uploads/2014/02/04_...

Re: BlueGreenDeployment (2010)

#9
post #4

The idea reminds me of double-buffering. I wonder if there are other parallels that can be drawn (pun not intended) from the similarities

This is exactly double buffering, and I think it would be better to call it that than "blue/green deployment", because "blue" and "green" suggest that there is some difference between the two environments, that the question whether current "production" is "blue" or "green" matters, whereas this seems to be just two environments and a pointer that switches between them.
Post reply on HN