Feature flag use cases.
Leverage the power of feature flags for everything from releases and operations to experimentation and entitlements.
Decoupling deployments from releases
Gain the confidence to deploy faster. Feature flags allow software teams to deploy a new feature to production whenever they want. The flag conceals the code pathway, thus reducing the risk of it residing on a production server. When you're ready to release the feature to users, simply toggle the relevant flag. By decoupling code deployments from feature releases, feature flags unlock a host of other modern development practices.
Testing in production
It’s impossible to replicate a production environment. The only sure way to know how a feature will perform in the real world is to test it with real users. Feature flags give you the control you need to test in production safely. Take advantage of LaunchDarkly’s targeting capabilities to expose a new feature to a subset of specific users. If system performance suffers, you can halt the rollout and limit the blast radius of the incident. But if all goes well, you can gradually release the new feature to a wider audience.
Progressive Delivery: Risk-free CI/CD
Control is the bedrock of Progressive Delivery: control over who sees what, control over when engineers deploy changes versus when such changes get released, and control over who in your organization is permitted to initiate a rollout. As a new software development approach, Progressive Delivery builds upon the core principles of CI/CD and enables teams to achieve CI/CD with less risk. Employ Progressive Delivery techniques to code faster, reduce risk, and continuously improve the customer experience.
Beta testing and qualitative feedback
Employ user targeting in LaunchDarkly to rapidly create beta cohorts and then give product managers control over the flags for the associated tests. Product managers run beta tests for their domain of the product. And software engineers gain time back for other projects. The kill switch acts as a failsafe any time a beta feature introduces a bug. Teams run safer, streamlined beta tests—and more of them. Gather valuable feedback early.
Kill switches
Feature flags serve as kill switches or circuit breakers. When a feature causes a bug in production, you can disable it in real-time by toggling the appropriate flag. Unlike with config files, changing the status of a feature flag does not require an application restart. The offending feature gets shut off instantly. Kill switches allow developers, DevOps engineers, and SREs to limit the impact of an incident and cut down on their mean time to restore service (MTTR).
Targeted rollouts/release progressions
Release progressions are a key tenet of Progressive Delivery. They give teams the confidence to move fast without breaking things. LaunchDarkly allows for precise user targeting and feature flag rules that open the door to all kinds of targeted rollouts: ring deployments, percentage deployments, canary launches, and so on. These targeted, incremental release strategies, or release progressions, involve far less risk than big-bang waterfall releases.
Application modernization
Maintain high stability when making large back-end changes. Top organizations use feature flags to progressively migrate from a monolith to microservices, switch to a new database, and migrate infrastructure to the cloud. With flags, you can control the behavior of individual microservices, route specific types of web requests to designated endpoints in the cloud or on-premises, and quickly disable a service when it’s causing an incident.
Experimentation and A/B testing
Traditional experimentation tools tend to support front-end experiments while neglecting back-end ones. Moreover, they often fail to integrate well with your software deployment process. LaunchDarkly supports “holistic experimentation," letting you seamlessly run both front-end and server-side experiments (including multivariate tests) in a production environment. And it integrates experiments with your normal development process.
Trunk-based development
Feature flags, in acting as kill switches and separating deployments from releases, pave the way for trunk-based development. Teams mired in long-lived feature branches, merge conflicts, and aging pull requests (PRs) can find relief. With feature flags, you can comfortably merge imperfect code with the main branch in your version control system today and then pick up where you left off tomorrow. If the mainline gets pushed to the release branch, no sweat; users will be unable to interact with your flagged code.
Canary launches
Canary tests mitigate risk when deploying code. They allow product delivery teams to measure the impact of a new feature on system performance and user engagement in a controlled manner. With a canary release, you roll out new functionality to a small subset of users in production before unveiling it to the whole user base. Traditionally, teams route user traffic between two nearly identical versions of their application (on separate servers) when performing canary launches. But with LaunchDarkly, you can run the canary test on a single server and manage user traffic with feature flag rules.
Faster incident resolution
Turn would-be disasters into minor disruptions. By integrating with a host of observability and application performance monitoring (APM) solutions like New Relic, Datadog, and Honeycomb, LaunchDarkly allows teams to correlate a negative service metric (e.g., a spike in error rates) with a recent feature flag change. What’s more, Flag Triggers automatically disable buggy features when key service metrics exceed a certain threshold in your APM tool.
Entitlements
“Entitlements” refers to enabling or disabling software features, services, and products for customers. LaunchDarkly provides an intuitive UI for managing entitlements with feature flags, and provides access controls to ensure that only the right people in your organization can toggle such flags. Sales reps can give prospects access to a trial version of your software, customer support agents can enable functionality for users lacking access to features for which they paid, product managers can grant beta users access to their application, and so on—all with little developer intervention.
We've been able to roll out new features at a pace that would've been unheard of a couple of years ago.
Discover how to deploy code faster with less risk.