canary launches and feature flag-driven development

Post on 17-Jan-2017

305 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

of teams practice continuous delivery37%only *

*https://www.perforce.com/pdf/continuous-delivery-report.pdf

FEATURE FLAG-DRIVEN DEVELOPMENTJohn Kodumal

collaborationlack of

Barriers

levelsskillemployee

automationlack of

ENTER CANARY LAUNCHES

MECHANISMS

Load balancer Feature flags

ANATOMY OF A FEATURE FLAG

IN CODE

new.signup

{ key: “bob@example.com”, orgs: [“google”, “microsoft”], inBeta: true}

if ( ),

then/*show the new signup page */

else/*show the old signup page */

USE CASES

• Risk mitigation

• Private betas

• Redundant cloud services

• Performance / load monitoring

• A/B testing and optimization

• Personalization

FEATURE FLAG-DRIVEN DEVELOPMENT

1. Add a feature flag

2. Write some code

3. Launch and measure

4. Select winning variation, remove flag

5. Repeat for every code change

“ ”When a test goes out we look at the data immediately and adapt the products quickly. We do this on a daily basis. This cycle of iteration is the engine of progress and the people who use Facebook are not just the beneficiaries but are also intimately a part of the process. We don’t just develop this product for them, we develop it with them.

- Andrew Bosworth, Facebook

BEST PRACTICES

Flag early, flag often

FLAG

Think experimentally

Remove flags diligently

ANTI-PATTERNS

Retro-flagging

Flags via static configuration files

“ ”Overall, engineers are treated as creative collaborators in the overall process with design and product, and products are worked out and iterated on with engineers instead of simply being handed to them for implementation.

- Chad Dickerson, Etsy

AVAILABLE TOOLS• Togglez— Feature flags for the Java platform

• Waffle— Feature flags for Python / Django

• FeatureToggle— Feature flags for .NET

• Sixpack— Platform-agnostic A/B testing framework

• LaunchDarkly— SaaS platform for feature flags + A/B testing

top related