Open Cloud Miniconf – Continuous Delivery using blue-green deployments and immutable infrastructure by Ruben Rubio Rey
- Lots of things can go wrong in a deployment
- Often hard to do rollbacks once upgrade happens
- Blue-Green deployment is running several envs at the same time, each potentially with different versions
- Immutable infrastructure , split between data (which changes) and everything else only gets replaced fully by deployments, not changed
- When you use docker don’t store data in the container, makes it immutable. But containers are not required to do this.
- Rule 1 – Never modify the infrastructure
- Rule 2 – Instead of modifying – always create from ground up everything that is not data.
- Advantages
- Rollbacks easy
- Avoid Configuration drift
- Updated and accurate infrastructure documentation
- Split things up
- No State – LBs, Web servers, App Servers
- Temp data , Volatile State – message queues, email servers
- Persistent data – Databases, Filesystems, slow warming cache
- In case of temp data you have to be able to drain
- USe LBs and multiple servers to split up infrastructure, more bit give more room to split up the upgrades.
- If pending jobs require old/new version of app then route to servers that have/not been upgraded yet.
- Put toy rocket launcher in devs office, shoots person who broke the build.
- Need to “use activity script” to bleed traffic off section of the “temp data” layer of infrastructure, determine when it is empty and then re-create.