This is a follow up question from my Continuous Delivery talk at Codemotion. Please check the original post for the slides.
Under a Continuous Deployment scenario we might expect non-technical staff pushing new features to the wild by just pressing a button.
If you’re worried this can potentially break the live environment, you should put your focus on the reliability of the process triggered by the button. Use this fear to drive the identification of the issues preventing a safe release.
Some advice from past experiences:
Limit the amount of changes produced by the button. If it triggers any hardware provisioning, it will likely go nuts at some point. Decouple release and deploy so the button only updates configuration (such as Feature Toggles)
Make the changes incremental. Divide the updates into reversible steps. Remember, Low-Risk Releases Are Incremental
Setup monitors and prepare a failover strategy. The latter an issue is identified, the more it takes to fix. If it makes your life easier, prepare a failover strategy to rollback the change if something goes wrong.