Over a million developers have joined DZone.

Powering Continuous Delivery With Feature Flags

DZone's Guide to

Powering Continuous Delivery With Feature Flags

Separating feature rollout from code deployment to mitigate risk in Continuous Delivery.

· DevOps Zone
Free Resource

The DevOps Zone is brought to you in partnership with Sonatype Nexus. The Nexus Suite helps scale your DevOps delivery with continuous component intelligence integrated into development tools, including Eclipse, IntelliJ, Jenkins, Bamboo, SonarQube and more. Schedule a demo today

We are in the era of Continuous Delivery, where we are expected to quickly deliver software that is stable and performant.  We see development teams embracing a suite of Continuous Integration/Delivery tools to automate their testing and QA, all while deploying at an accelerated cadence.

However, no matter how hard we try to mitigate the risk of software delivery, almost all end-user software releases are strictly coupled with some form of code deployment. This means that companies must rely on testing and QA to identify all issues before a release hits production. It also means that companies primarily rely on version control systems or scraped together config files to control feature releases and mitigate risk.  For instance, many homegrown feature release systems rely on hard coded values read from config files.  These systems can work with a handful of configuration values, but accrue massive technical debt at scale and may require a full redeploy for any updates.

Once a release is in production, it is basically out in the wild.  Without proper controls, rolling back to previous versions becomes a code deployment exercise, requiring engineering expertise and increasing the potential for downtime.

One way to mitigate risk in feature releases is to introduce feature flags (feature toggles) into the continuous delivery process.  These flags allow features (or any code segment) to be turned on or off for particular users.  

First, let’s explore software delivery from a systemic perspective.

Continuous Delivery and Feature Flags LaunchDarkly

Admittedly, there are many ways to frame the software delivery process, but this diagram provides a more segmented overview.  It demonstrates that most teams who harness continuous integration and continuous delivery do so up to the software’s release.  By using feature flags in the continuous delivery process, teams are able to efficiently integrate release, deployment, and operational management into the software development cycle.

Benefits of Continuous Delivery and Continuous Integration with Feature Flags LaunchDarkly

Adding feature flags into the continuous delivery cycle enables the separation of feature rollout from code deployment.  This allows teams to conduct percentage rollouts, user-targeted releases, and instant feature rollbacks.  You can essentially get real world user and performance feedback without the risk of widespread user backlash and degraded performance.

This is why companies like Google, LinkedIn, and Facebook have supplemented their continuous delivery processes with their own feature flagging systems.  Facebook, for instance, uses a system called Gatekeeper that controls feature rollouts and targeted releases.  It also enables them to roll back features that users do not like and assess how their infrastructure performs under new releases.

The new age of continuous delivery, therefore, harnesses release management as a way to mitigate risk, but also as a way to adapt to shifting consumer preferences and market conditions.

The DevOps Zone is brought to you in partnership with Sonatype Nexus. Use the Nexus Suite to automate your software supply chain and ensure you're using the highest quality open source components at every step of the development lifecycle. Get Nexus today

continuous delivery ,feature flags ,devops ,continuous integration ,risk management ,continuous deployment

Published at DZone with permission of Justin Baker, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}