TIM WONG | PRINCIPAL TAM | LAUNCHDARKLY | @TWONG
Ship Faster, Reduce Risk, and
Build Scale with Feature Flags
Ship Faster Reduce Risk
Build Scale Feature Flags
2
3
#TODO: Need a better picture, this is too
political
4
5
`
Release Deploy
6
=
Change
7
Release Deploy
Release
Deploy
Deliver Value
Reduce risk
8
Release
Deploy when it’s convenient
when it’s ready
9
What is a feature flag?
CONTEXT
10
A decision point in code
whose behavior can vary
during runtime based on
external input
FEATURE FLAGS ARE
11
Fancy IF Statement
FEATURE FLAGS ARE
12
doSomeThing();
doAlternateSomeThings();
13
doSomeThing();
doAlternateSomeThings();
if (NewFeatureEnabled()) {
}
else {
}
14
doSomeThing();
doAlternateSomeThings();
if (NewFeatureEnabled()) {
}
else {
}
Feature flag
Old behavior
New behavior
15
doSomeThing();
doAlternateSomeThings();
if (NewFeatureEnabled()) {
}
else {
}
Feature flag
Old behavior
New behavior
FalseTrue
16
if (NewFeatureEnabled()) {
Shameless plug!
17
#deadhorse
18
19
#deadhorse
20
#deadhorse
21
#deadhorse
22
#deadhorse
23
#deadhorse
24
#deadhorse
Time for some sweet sweet
usecases
25
26
#deadhorse
27
#deadhorseLife with a feature flag
New Feature
Operational Risk
28
#deadhorseLife with a feature flag
Functional Risk
29
#deadhorseLife with a feature flag
New Feature
Functional Risk
30
#deadhorseLife with a feature flag
New Feature
Kill Switch
Setting the routing of a
flag to 0% to “remove”
a feature
31
32
functionaloperational
THE PUNCHLINE
`
IF statements
are very useful
#summit17
OH @LaunchDarkly
33
# dead horse
New Feature
5%
34
Life with a feature flag
Canary Launch
Shipping to a small
random subset before
rolling the change to
100%
35
ReleaseDeploy !=
EveryoneExperience !=
Feature Flags
allow you to decouple
dependencies
Key concept!
37
ABC
-123
38
Master
ABC
-123
39
Master
ABC-344-Refactor UserSearch
ABC
-123
ABC
-234
Master
ABC
-245
ABC-344-Refactor UserSearch
ABC-345-Create v2 UI Elements
#dependencyhell #coderot40
ABC
-123
ABC
-234
ABC
-245
ABC
-345
ABC-345
41 #dependencyhell #coderot
Master
ABC-344-Refactor UserSearch
Life with a feature flag
We’re looking to move from
legacy monolith systems to
microservices
42
43
44
No MeowMeows allowed!
45
46
47
48
Life with a feature flag
Patrick Kaeding
49
http://go.launchdarkly.com/dm
50
51
#dependencyhell
52
53
Shameless plug!
53
54
http://go.launchdarkly.com/cleaningup
Dashboard
One central dashboard to manage the lifecycle of your features
from local development, to QA, to production.
Fine-Grain Targeting
Release features to users through percentage rollouts and
custom targeting rules
Audit Logging
Real-time visibility into every feature flag change in your
system
Custom Roles
Create flexible policies for access controls in LaunchDarkly
and allow extended teams to control releases
Streaming Architecture
LaunchDarkly uses streaming architecture to serve feature
flags in microseconds without making remote requests. All
flags are served located and backed up by two layers of
globally distributed CDNs.
Processing 10 billion+ flag requests daily
56
57
58
TIM WONG | PRINCIPAL TAM | LAUNCHDARKLY
Ship Faster, Reduce Risk, and
Build Scale with Feature Flags
Ship Faster Reduce Risk
Build Scale Feature Flags
Ship Faster
Reduce Risk
Build Scale
Feature Flags
?
60
Feature Flags
allow you to decouple
dependencies
Key concept!
61
62
Faster != Risk
Release != Deploy
Experience != Everyone
Scale != Slower
63
TIM WONG | PRINCIPAL TAM | LAUNCHDARKLY | @TWONG
Come visit me at the booth!
I have swag!
and I don’t want to take it home…

Ship Faster, Reduce Risk, and Build Scale with Feature Flags