Immutable Infrastructure: The practice of replacing your infrastructure with new instances each time you deploy new code to ensure mutated code does not carry forward.
- How does this benefit my company?
Immutable infrastructure makes server maintenance as easy as installing fresh new copies of your servers into the cloud and deleting your old versions when it’s confirmed that the newer ones are up and running.
Below is a short list of benefits immutable infrastructure may provide you:
- Your company is preparing to run cloud-native applications
- You are trying to automate the scaling of your infrastructure in the cloud
- You want simple and infinitely repeatable deployments
- Continuous deployments safely and quickly (Netflix deploys 4000 times a day!)
- The operations becomes more automated and responsibility falls on the developers
- Server and node failures do not result in your service going down for long, if at all
- When would my team use it?
Every time your team wants to deploy new code and upgrade your servers it should be good practice to install fresh copies of your infrastructure instead of simply injecting your code onto existing ones.
Think of your infrastructure like a house: over time things break and become dented as you bring in furniture and remodel things. You can paint over scratches and fix leaky faucets (updating existing infrastructure) but the age will eventually show in ways you don’t expect - such as creaking floorboards or carpet imprints - and users notice these things. Practicing immutable infrastructure is like building a brand new identical house each time you introduce an item, but without the cost and effort of building an actual house!
- Do my services have to commit all-in?
No: just like how some companies are only hybrid-cloud, it is possible to use hybridized immutable infrastructure.