The “Take Release Automation to the Next Level” series gives you insights into the benefits and challenges surrounding DevOps deployment patterns. In this series, we’ll look at how different patterns work, the advantages and disadvantages of each one, considerations for implementing them, and best practices when applying them.
In Episode 4, we discussed canary releases, which allow teams to roll out new features and functionality to targeted user groups without impacting other users. Dark launches and feature toggles are alternative deployment strategies that enable you to introduce new features to users in a highly controlled way, without requiring you to maintain multiple environments.
What Is a Dark Launch?
Dark launching a feature means releasing an early version of a feature to Production so you can test it with realistic user traffic and usage patterns without actually exposing the feature to users. Dark launching is particularly effective for testing the back end of a feature because you can run back-end functionality in the background without the user being aware of it. When it’s time to give users access to the feature, you simply deploy its front-end interface.
For example, you could implement the back end of a product recommendation feature on an ecommerce website and test its performance without showing the recommendations to site visitors. When you’re satisfied with the feature’s performance, you can deploy the front-end recommendation interface on the website.
What is a Feature Toggle?
Feature toggles—also known as feature flags—allow you to further decouple the deployment of different software versions from the release of features to users. You can deploy new versions of an application as often as needed, with certain features disabled: releasing a feature to users is simply a matter of toggling it “on”.
Advantages of Dark Launches and Feature Toggles
Like canary releases, dark launching and toggling features allow you to roll out new features in a controlled way. However, dark launches and feature toggles do not require you to run multiple versions of an application in an environment simultaneously, which you must do for a canary release.
Disadvantages of a Dark Launch or Feature Toggle
Dark launches and feature toggles can be difficult to adopt because they require you to change the application that you want to deploy. Development teams must build the capability to dark-launch or toggle a feature into the application at the code level, but doing so can be a challenge for mature applications with a large code base.
Rolling Back a Dark Launch or Feature Toggle
Rolling back a feature that has been dark-launched or controlled by a feature toggle is relatively simple. In the case of a dark launch, you simply remove the interface that allows users to access the feature. And in the case of a feature toggle, you disable access to the feature.
Master Dark Launches and Feature Toggles with the XebiaLabs DevOps Platform
While dark launches and features toggles primarily impact the architecture of the application, scaling their use across the enterprise has the most positive effect if you implement automated, repeatable deployment processes that enforce consistency and reuse across teams and applications. The XebiaLabs DevOps Platform makes it easy to dark launch and toggle features. With XebiaLabs, you can deploy features strategically and release new functionality to users in a way that is decoupled from technical deployment.
This white paper gives you insights into the DevOps best practice of advanced deployment patterns. It describes how each pattern works, the advantages and disadvantages of each one, considerations for implementing them, and best practices when applying them. Read more.
- Episode 1: Speed Up Delivery with Advanced Deployment Patterns
- Episode 2: Blaze a Trail with Blue/Green Deployments
- Episode 3: Rock Your Pipeline with Rolling Updates
- Episode 4: Create Stability with Canary Releases
- Best Practices for DevOps: Advanced Deployment Patterns
- How to dark launch a feature with XebiaLabs
- 11 Black Holes of DevOps: How Not to Get Lost in Outer Space