How do we manage and deploy features without affecting the existing system?
Feature Flag
Feature flag is a decision point in your code that can change the behavior of your application.
Also known as feature toggles—have long been used to trigger “hidden” code or behaviors without having to
ship new versions of your software.
Example
do we need Feature Flag?
do we need Feature Flag?
Enables businesses to dynamically control the availability of application features to end users.
Developing major features in chunks without execution.
Cutting development cost and high development responsibility within or outside of application.
do we need Feature Flag?
Deploying and testing application empowering features with application control rather than environment
control.
Easy plug in and play features which are visible to end users and easily configurable by various teams
- development and operations engineers to product and marketing managers.
Server Side Implementation
Using Environment Variable
Using YAML/JSON Files
Using Database
client side Implementation
Client Side
Our Previous Attempts
Environment variables
Application level configuration
Our Previous Attempts - Example
extended version
extended version
do's and don'ts
Don't
Temporary flags which can't be removed quickly.
Stale Flags and dead codes.
No journal on feature flags.
Do
Appoint a maintainer for the flag.
Set Expiry Dates for flags at the time of creation.
Create a branch and PR to remove the flag at the same time when the flag is introduced.
Do
Follow Naming Convention for feature flag names and commits for references.