Feature flags are great for feature rollouts and canary launches, but what about system-saving functionality? Imagine being able to funnel all of your traffic away from a broken application to a redundant cloud backup without any service disruption. That is the true power of feature flags. It is the ability to toggle sub-sections of your application on/off at a moment’s notice and remedy the problem before any major harm is done.
Dev ops use cases of feature flags:
- Redundant cloud infrastructure
- Toggle between two different cloud providers for redundancy in case of outages. For example, back your real-time infrastructure with both Pusher and PubNub. In case one goes down, flip a switch and keep your service running without interruptions
- Recover from load with graceful degradation
- In case of an outage, keep critical subsystems running by turning off non-essential features. Divert power to life support, and turn off the holodecks.
- Systems Integrations
- Tweak Algorithmic turning parameters
I highly recommend reading the article Better Development with Feature Flags by Leonard Garvey. He talks about the benefits of deploying ‘immature’ features and how feature flags enable dev ops teams to optimize their workflow.
As Martin Fowler highlights, feature flags facilitate the art of continuous delivery: a way of continuously integrating software, building new features, and running tests to detect problems. It allows dev teams to rapidly iterate with an ever-present safety net and collaborate more frequently and effectively.