DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

How does AI transform chaos engineering from an experiment into a critical capability? Learn how to effectively operationalize the chaos.

Data quality isn't just a technical issue: It impacts an organization's compliance, operational efficiency, and customer satisfaction.

Are you a front-end or full-stack developer frustrated by front-end distractions? Learn to move forward with tooling and clear boundaries.

Developer Experience: Demand to support engineering teams has risen, and there is a shift from traditional DevOps to workflow improvements.

Related

  • Delivering Your Code to the Cloud With JFrog Artifactory and GitHub Actions
  • Managing Technical Debt in Software Development: Strategies and Best Practices
  • Dynatrace Perform: Day Two
  • 7 Tips for Using Instrumentation and Metrics To Align Site Reliability With Business Goals

Trending

  • Secure Your Oracle Database Passwords in AWS RDS With a Password Verification Function
  • How to Achieve SOC 2 Compliance in AWS Cloud Environments
  • What They Don’t Teach You About Starting Your First IT Job
  • Toward Indigenous AI: A Critical Analysis of BharatGen’s Role in Data Sovereignty and Language Equity
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. Deployment
  4. Why Leading Companies Dark Launch

Why Leading Companies Dark Launch

What dark launches are and how they improve the future releases and stability of application infrastructure.

By 
Justin Baker user avatar
Justin Baker
·
Apr. 22, 16 · Opinion
Likes (6)
Comment
Save
Tweet
Share
9.8K Views

Join the DZone community and get the full member experience.

Join For Free

When it comes to releasing new features, there is nothing worse than deploying a feature that cripples your application, degrades performance, and turns away customers.

With the rise of continuous delivery, software teams are embracing faster, more iterative feature releases.  It’s now imperative for teams to ensure their features will be well-received by customers and maintain their application’s performance.

This is why companies like Google, Facebook, and Amazon have embraced dark launching to ensure the efficacy of their feature releases and the stability of their app infrastructure.

Dark Launch with Feature Toggles and Feature Flags LaunchDarkly

The Dark Launch

Dark launching is the process of releasing production-ready features to a subset of your users prior to a full release.   This enables you to decouple deployment from release, get real user feedback, test for bugs, and assess infrastructure performance.

Scenario A — “I want to release an experimental One Click Checkout to my users to see if it increases sales.”

  • To dark launch this feature, you would enable it for 1% of your users, then to 5%, and 10%.. and assess performance along the way.  If you see that the checkout is increasing sales, then you can gradually increase the rollout percentage.  However, if you see that sales are worse, customers are confused, or that it degrades your app’s performance, then you can simply roll back the feature for further evaluation and refinement.

Scenario B — “I want to test new application infrastructure without switching all of my traffic.”

  • Before switching all of your traffic to a new system architecture, you can dark launch new infrastructure by routing traffic via a toggle/flag specifically geared for configuration management.  For instance, suppose you want to stop maintaining your own queuing system and switch to a managed service. You might create a flag that sends some jobs to the new managed service, while still sending most to the old queuing system (and you have workers set up to listen on both). Then, you can gradually transition to an all-managed service as you monitor performance and other metrics. For another example, you can ramp traffic up and down during the daytime hours (when your DevOps team is awake), rather than perform a hard cutover during the midnight hours.

Scenario C — “I want to specifically release a feature for beta testing.”

  • Also referred to as a canary launch, this type of dark launch specifically target users in your ‘beta’ group or target users via an ID (like email or UID).  This will enable the new feature for these particular users, while all of your other users receive the current feature set.  At any time, you can add or remove beta users, get feedback, and assess system performance.

Scenario D — “I want to release a new feature to my VIP users first.”

  • Dark launching via feature flags and toggles will allow you to roll out a new feature to your VIP users before doing a widespread release. You can also allow your users to opt-in and out of dark launched features, similar to a self-selected beta.

Implementation

The easiest way to dark launch is by utilizing feature flags or feature toggles to wrap code in logical chunks, thereby separating your feature rollout from code deployment.  However, too many feature flags may lead to technical debt if they are not managed properly over time.  It is very important to have full visibility into your feature flag lifecycle management and allow your development teams to coordinate efficiently.

Successful dark launches require developer due diligence and benefit from adopting feature flag driven development.  This style of development institutionalizes dark launching as a core part of your continuous delivery process.  Basically, every new feature is dark launchable because it will be wrapped in a feature flag or toggle to separate its rollout from code deployment.

Getting Started With Dark Launching

To learn how dark launching gets implemented at enterprise scale, you can read about Facebook’s Gatekeeper system.

feature flag Release (computing) application Infrastructure teams tech debt Continuous Integration/Deployment app

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

Opinions expressed by DZone contributors are their own.

Related

  • Delivering Your Code to the Cloud With JFrog Artifactory and GitHub Actions
  • Managing Technical Debt in Software Development: Strategies and Best Practices
  • Dynatrace Perform: Day Two
  • 7 Tips for Using Instrumentation and Metrics To Align Site Reliability With Business Goals

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • [email protected]

Let's be friends: