blog post banner image

The Ultimate Guide to Dark Launch Releases

Ann McArthur


Dark Launching: Everything You Need to Know

Dark launches have become a popular way for companies to release new production-ready software without revealing it to their entire user base. A dark launch can also mean deploying code to a production environment but without exposing it to any production traffic. This guide to dark launches will help you learn how to gain control of your releases and improve your software development process.

A Quick Definition

A dark launch or dark release refers to releasing new features to a subset of users to gather feedback. Dark launching is like a soft launch and can be enabled by feature flags in order to get a low-risk deployment of code.

This technique allows developers to see how users respond to new features. This ensures the best possible release. Developers can use this interaction to determine whether they need to make any improvements. 

Smaller, tightly controlled releases of new features are a major advantage for user-facing companies. New features are not released to all users at once, but instead gradually over time to a small group of participating users. This method minimizes the risks that come with releasing a new feature and it reduces the impact because if anything goes wrong, developers have time to adjust the feature or make any changes.

It's also important to maintain the momentum of continuous delivery. The faster you can deploy new features and get your users' feedback, the better.

Common Use Cases

New features are being released at an incredibly fast rate. Luckily, continuous delivery allows teams to get feedback on features and fixes at a faster rate. A dark launching process is a great option for large companies who want to test new features at scale and make sure they work before they release them to the public.

Switching Infrastructure 

Dark launches can be used to test new application infrastructure with part of your traffic. Before you move to new system architecture, you can dark launch it by routing some of the traffic through a feature flag. This will allow you to test the new network and all its features before implementing it on the main platform. In this scenario, you would first want to stop maintaining a queuing system and use a managed service. You would create a flag that sends some jobs to the new system, while still sending most to the old queuing system. If this is accomplished, you would need workers listening to both queues. 

Making the switch to an all-managed service can be a difficult task. It is important to gradually transition and monitor metrics like performance to ensure that the service is running smoothly. Feature flags also allow you to have a gradual transition in traffic during the daytime hours (when your DevOps team is awake) rather than a hard cutover at midnight. 

Beta testing

Companies can use a beta release to target certain users with new features. They can either target users who are part of their beta group, or they can target those users who share a specific email address. This way, the company can release the new feature to targeted groups of people while leaving other users on the older version of the product.

Beta testing is a powerful tool that allows you to add or remove users as needed, either for feedback or system performance assessment. It's also possible to measure the canary launch by percentage. For example, you might deploy a new feature to 5% of your users in order to see how it fares before deploying it to the rest of the audience. 

A canary launch is a common tactic for companies looking to test a new product or feature before releasing it to the public for the first time. It typically includes a 2% release, which is tested and evaluated. If there are no concerns, then a new product or feature can be released to a small, pre-defined beta group.

The same strategy can be applied for VIP users. You can toggle a feature on only for certain customers to either gain early access or have exclusive access to one of your features. An example is how National Geographic’s app has content that’s gated. If you’re a subscriber you have access to exclusive features and articles, but if you’re a free user a pop-up appears informing you that you need to subscribe to gain further access.

Testing a new feature

Let’s say you want to try releasing a new checkout flow. To introduce this feature to your customers, you can start with a small group of users, and gradually increase that percentage as the performance of the checkout increases. If you see that the new checkout flow increases sales, then you can gradually increase the feature rollout percentage. If you notice that sales are worse, customers are confused, or your app’s performance is slowing down, it’s worth rolling back the feature in order to evaluate and refine it.

What are the Benefits?

See how a feature affects your performance

The dark launch process is a vital part of the software development cycle for any organization that releases new features. Software teams monitor how the new functionality affects system performance and how users react to it. The team uses these insights to decide whether the new feature should be rolled out to a wider audience.

Gain feedback

What happens when a feature your company has been working on and is just about to release to the public, doesn’t catch on? You’ve spent weeks of work and significant money to develop it and market it only to see that users are not interested or there are a number of bugs. With a dark launch, you can simply disable the feature with a single click without having to restart the app and then continue to work on refining it.

Minimize risk 

Traditionally, deploying new features can be a risky endeavor. It’s not uncommon for software teams to toil for weeks leading up to launch and hope for the best, only to scramble frantically when things go wrong. Dark launching allows you to test new features on a subset of your users which makes launching much safer. 

The best way to know what works is to run experiments with real users. Dark launching enables iterative, continuous development like modern software. Dark launches are less risky, more efficient, and more popular than ever before. Big all-or-nothing launches make software teams fragile to risk. The more dark launches you do, the flatter your risk profile.

Tech giants like Google, Facebook, and Amazon have embraced the strategy of dark launching. It limits the risk of having a big launch that could be a disaster. Instead, they test features with small groups before making them available to everyone. By dark launching, software teams don’t have to rely on risky, all-or-nothing launches. 

Changing your tech stack

To ensure a safe and fast transition to new technology, DevOps teams can employ the use of feature flags. These can be used to better manage infrastructure migrations. For instance, if you need more capacity and are planning on migrating to a new cloud database, you can set it up so that only 10% of your web requests will go to the new database and the other 90% will go to the legacy version.

Run experiments

It’s never easy to introduce new features to your customers. But now, with dark launching, you can experiment in production without taking on extra risk. You can run experiments for both front-end and back-end features and release only the winning variation to our clientele. 

Why Dev Teams Love Dark Launching 

Not only does dark launching save time and minimize risk but if you are worried about the stability of your site, you won't want to run it in a staging environment. Dark launching with feature flags allows you to safely test a new feature in production. This saves you time and money. Rather than spending time replicating a staging environment, you can put your efforts into seeing how a new feature will work in the real world.

It also minimizes the complexity of running canary tests. Canary testing is a powerful way to test new software features with a small group of real users. It would traditionally require multiple production environments and complex routing configurations, but feature flags make it easy to expose new features only to those few people. 

Are There Any Disadvantages?

The main objection people have to dark launches is the time it takes to set up. Starting to use feature flags can be a learning curve for engineers who haven’t been using modern software development processes. However, once implemented the time and resources used to start using feature flags will pay off in the long run. Another common objection is the cost of implementation. 

While building feature flags in house can be time-consuming and expensive, leveraging a feature management platform can reduce costs and ensure your engineers are focusing on their core job functions. Having a feature management tool also ensures that your team is following best practices and has a support team to reach out to if you run into any errors or needs help onboarding your feature flags.

How is it Related to A/B Testing?

Feature flags allow you to easily run A/B tests. Simply create 2 different versions of a feature and show half your users version A and the other half version B. After having both features run for 2 weeks you can monitor which one performs best and drives towards your KPIs. From there you can turn off the feature that didn’t perform as well and have the winning version available to your entire user base. 

How to Implement it at Scale

The easiest way to dark launch a new feature is with feature toggles or feature flags. These are if-then statements that enable or disable certain functions remotely without having to deploy code. You can decouple code deployments from feature releases, which makes it much easier to release new features. Once you've developed a feature, make sure it's pushed to production. That way, your development team can scale up the feature to different groups of people.

Dark launches are a great way to deploy new features without risking any downtime. First, wrap the new feature in a feature flag which helps to decouple the deployment from release. Start by pushing the new product out to a small percentage of your users and gradually toggling it on for more users with each iteration.

When launching a new feature, you'll want to make sure that you're gathering feedback and monitoring for potential issues. It's important to be able to turn off this feature in the event of negative feedback or system errors.

Frequently Asked Questions 

Should I build or buy a feature management platform?

When it comes to software development, feature flags are an invaluable way to manage and test new features. Homegrown systems often lead to technical debt due to a complete lack of organization. This can be avoided by using a powerful feature flag management system. Since these platforms are designed for scaling and ease of use, they’re the perfect solution for any software team.

As an organization expands its use of feature flags, it becomes very difficult to effectively manage with an in-house system. DevCycle is a feature management platform that can keep up with the needs of any software team by providing speed, scalability, and reliability. It's an enterprise-grade architecture built for the modern era.

Get Started with DevCycle 

When it comes to DevOps, you need all the right pieces in place. DevCycle has all the key components: sophisticated targeting capabilities, a clean UI, robust access control, and enhanced security. These carefully designed features enable your DevOps team to ship fast quickly and with confidence. Get started with a 14-day free trial of DevCycle.

Written By

Ann McArthur