Why microservices need feature flags

LaunchDarkly
By Edith Harbaugh   •   September 7, 2016
LaunchDarkly

Microservices is the practice of breaking up a huge, monolithic release where all components are tested and released as a whole, into many discrete services that can go on independent release schedules. The benefits of microservices were popularized by Martin Fowler, and put into practice by Amazon and Netflix. However, with microservices, releases become more complicated, by n-factorial. Instead of one monolith that can tested as a whole, if there are even as few as nine different services, each needs to be tested with every other component. Suddenly there are nine potential friction points.

Feature flags to the rescue! With feature flags, engineering teams can have complete control over their various microservices. First, wrap the microservice with a feature flag, with all traffic going to the old version. Then, release a new version. With a feature flag, gradually put whatever traffic you want to the new version, verifying functionality in all the other micro services. The new traffic and be cordoned off however suits your business. A feature flag at it's simplest can be an “on” “off” switch to quickly flip between versions, similar to a blue green deployment. However, feature flags can serve arbitrarily complex (or simple) variations of traffic to the new microservice. Some example of how to test the new micro service are
- percentage rollout
- by IP address of service
- by version number of other services
or whatever other information. Feature flags allow users to do “microdeployments” of microservices. A microdeployment is breaking a deployment into smaller components of who exactly receives the new service.

Using feature flags and microservices together allows engineering teams to truly unlock the value of decoupling. You can read more about how we use microservices and feature flags at LaunchDarkly here.

 

LAUNCHDARKLY HELPS YOU BUILD BETTER SOFTWARE FASTER BY HELPING MANAGE FEATURE FLAGS AT SCALE. START YOUR FREE TRIAL NOW.

 

You May Like
  •   BEST PRACTICESTesting in Production for Safety and Sanity
  •   BEST PRACTICESWhat Is Continuous Testing? A Straightforward Introduction
APRIL 16, 2021   •   BEST PRACTICESTest Environment Best Practices: 8 You Need to Know
APRIL 14, 2021   •   BEST PRACTICESGit Branching Strategies vs. Trunk-Based Development
APRIL 13, 2021   •   Team & NewsFavorite Moments from Galaxy, Our First-Ever User Conference
APRIL 8, 2021   •   BEST PRACTICES4 Software Release Management Best Practices