Advanced Deployment Patterns

Take Release Automation to the Next Level, Episode 5: Demonstrate Value with Dark Launches and Features Toggles

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”.
Dark Launch

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.

Application Release Automation

Best Practices for DevOps: Advanced Deployment Patterns

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.

Related resources

Leave a Comment

Your email address will not be published. Required fields are marked *