SlideShare a Scribd company logo
Powering Progressive
Delivery With Data
@SplitSoftware
A Layered Approach
Do you do this when
your team releases
to production?
Evan-Amos, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons
https://upload.wikimedia.org/wikipedia/commons/a/ac/Hands-Fingers-Crossed.jpg
Can you remember
a release night
that went like this?
https://imgflip.com/user/Knightrogens
https://imgflip.com/i/1mp8tq
How do you respond
when someone asks,
“How successful
was that release?”
https://www.flickr.com/photos/tomhilton/16686579989
linkedin.com/in/davekarow
What I’m up to: demystifying progressive delivery, especially
the role of automated data attribution, early in partial releases.
How I got here: Three decades of experience in developer tools,
developer communities, and evangelizing sustainable software
delivery practices that deliver impact, without burning out
humans.
Where I’ve been: DHL Worldwide Express, Sun Microsystems,
Gupta Technologies, Remedy Software, Marimba (BMC), Keynote
Systems (Dynatrace), SOASTA (Akamai), BlazeMeter
(CA/Broadcom) and now Split Software.
It doesn’t have to be that way!
@SplitSoftware
Powering Progressive Delivery With Data
A Layered Approach
Progressive Delivery: What Is It, Really?
01
Role Models: Progressive Delivery In The Wild
The Foundation: Decouple Deploy from Release
The Upper Layers: Data-Informed Practices, Automated
02
03
04
@SplitSoftware
Progressive Delivery
What Is It, Really?
01
@SplitSoftware
The Roots of “Progressive Delivery”
“Well, when we’re rolling out services. What we do is
progressive experimentation because what really
matters is the blast radius. How many people will be
affected when we roll that service out and what can
we learn from them?”
Sam Guckenheimer, quoted in
https://www.infoq.com/presentations/progressive-delivery/
@SamGuckenheimer @monkchips
(James Governor)
(James Governor)
@SplitSoftware
The Roots of “Progressive Delivery”
@monkchips
(James Governor)
...a new basket of skills and technologies concerned
with modern software development, testing and
deployment.
@SplitSoftware
Carlos Sanchez
(Sr. Cloud Software Engineer @ Adobe)
https://blog.csanchez.org/2019/01/22/progressive-delivery-in-kubernetes-blue-green-and-canary-deployments/
Progressive Delivery is the next step after Continuous Delivery,
where new versions are deployed to a subset of users
and are evaluated in terms of correctness and performance
before rolling them to the totality of the users
and rolled back if not matching some key metrics.
@SplitSoftware
Role Models:
Progressive Delivery In the Wild
02
@SplitSoftware
Example:
Walmart EXPO
Example:
LinkedIn LiX
The Foundation:
Decouple Deploy from Release
03
@SplitSoftware
You Are Here
4 Ways to Decouple Deploy From Release (How You Roll Matters)
Approach
Benefits
Blue/Green
Deployment
Canary Release
(container based)
Feature Flags Feature Flags +
Data, Integrated
Avoid
Downtime
Limit The
Blast Radius
Limit WIP /
Achieve Flow
Learn During
The Process
https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/
Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware
Approach
Benefits
Blue/Green
Deployment
Canary Release
(container based)
Feature Flags Feature Flags +
Data, Integrated
Avoid
Downtime
Limit The
Blast Radius
Limit WIP /
Achieve Flow
Learn During
The Process
https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/
Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware
4 Ways to Decouple Deploy From Release (How You Roll Matters)
Approach
Benefits
Blue/Green
Deployment
Canary Release
(container based)
Feature Flags Feature Flags +
Data, Integrated
Avoid
Downtime
Limit The
Blast Radius
Limit WIP /
Achieve Flow
Learn During
The Process
https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/
Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware
4 Ways to Decouple Deploy From Release (How You Roll Matters)
Approach
Benefits
Blue/Green
Deployment
Canary Release
(container based)
Feature Flags Feature Flags +
Data, Integrated
Avoid
Downtime
Limit The
Blast Radius
Limit WIP /
Achieve Flow
Learn During
The Process
https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/
Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware
4 Ways to Decouple Deploy From Release (How You Roll Matters)
Approach
Benefits
Blue/Green
Deployment
Canary Release
(container based)
Feature Flags Feature Flags +
Data, Integrated
Avoid
Downtime
Limit The
Blast Radius
Limit WIP /
Achieve Flow
Learn During
The Process
https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/
Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware
4 Ways to Decouple Deploy From Release (How You Roll Matters)
Feature Flag
Like a dimmer switch for changes
0%
10%
20%
50%
100%
@SplitSoftware
What a Feature Flag Looks Like In Code
treatment = flags.getTreatment(“related-posts”);
if (treatment == “on”) {
// show related posts
} else {
// skip it
}
Simple “on/off” example
@SplitSoftware
What a Feature Flag Looks Like In Code
Multiple variant example
treatment = flags.getTreatment(“search-algorithm”);
if (treatment == “v1”) {
// use v1 of new search algorithm
} else if (treatment == “v2”) {
// use v2 of new search algorithm
} else {
// use existing search algorithm
}
@SplitSoftware
Foundational Capabilities Unlocked By Feature Flags
Decouple Deploy From Release
With Feature Flags
● Incremental Feature Development for Flow
● Testing In Production
● Kill Switch (big red button)
@SplitSoftware
The Upper Layers:
Data-Informed Practices,
Automated
04
@SplitSoftware
DEPLOY
Code deployed
No exposure
Why Automate Data-Informed Practices?
A Different Way to “Ship” Becomes Possible
@SplitSoftware
DEPLOY
Code deployed
No exposure
ERROR MITIGATION
0-50% Ramp
Identify bugs/crashes
@SplitSoftware
Why Automate Data-Informed Practices?
A Different Way to “Ship” Becomes Possible
DEPLOY
Code deployed
No exposure
ERROR MITIGATION
0-50% Ramp
Identify bugs/crashes
MEASURE
Maximum Power Ramp
Understand impact
@SplitSoftware
Why Automate Data-Informed Practices?
A Different Way to “Ship” Becomes Possible
DEPLOY
Code deployed
No exposure
ERROR MITIGATION
0-50% Ramp
Identify bugs/crashes
MEASURE
Maximum Power Ramp
Understand impact
SCALE MITIGATION
50-100% Ramp
Identify scaling issues
@SplitSoftware
Why Automate Data-Informed Practices?
A Different Way to “Ship” Becomes Possible
DEPLOY
Code deployed
No exposure
ERROR MITIGATION
0-50% Ramp
Identify bugs/crashes
MEASURE
Maximum Power Ramp
Understand impact
SCALE MITIGATION
50-100% Ramp
Identify scaling issues
RELEASE
Complete rollout
@SplitSoftware
Why Automate Data-Informed Practices?
A Different Way to “Ship” Becomes Possible
New Release Metrics Change
“Can’t we just
change things
and monitor
what happens?”
Heads Up! Not Everything Is As It Seems
@SplitSoftware
New Release Metrics Change
Everything else in
the world
● Product changes
● Marketing
campaigns
● Global Pandemics
● Nice Weather
Problem To Solve: Separating Signal From Noise
@SplitSoftware
How do you feel when this happens?
What’s the effect on your culture if this happens often?
@SplitSoftware
100%
Rolled Out
How would you feel if you could find problems
here, instead?
@SplitSoftware
5%
Rolled Out
Existing New
5%
95%
@SplitSoftware
Solution: Random Assignment + Statistical Comparison
Decouple Deploy From Release
With Feature Flags
Automate Guardrails
Safety: Automate Guardrails/Do-No-Harm Testing
● Alert on Exception / Performance Early In Rollout
● “Limit The Blast Radius” w/o Manual Heroics
@SplitSoftware
Guardrail Metrics
@SplitSoftware
Measure
Release Impact
Decouple Deploy From Release
With Feature Flags
Automate Guardrails
Meaning: Measure Release Impact
● Iteration w/o Measurement = Feature Factory 😡
● Direct Evidence of Our Efforts → Pride 😎
@SplitSoftware
Measure
Release Impact
Decouple Deploy From Release
With Feature Flags
Automate Guardrails
Test
to Learn
(A/B Test)
Humility: Test to Learn (A/B Test)
● Take Bigger Risks, Safely
● Learn Faster With Less Investment
○ Dynamic Config
○ Painted Door
@SplitSoftware
This is What Sustainable Software Delivery Looks Like:
DEPLOY
Code deployed
No exposure
ERROR MITIGATION
0-50% Ramp
Identify bugs/crashes
MEASURE
Maximum Power Ramp
Understand impact
SCALE MITIGATION
50-100% Ramp
Identify scaling issues
RELEASE
Complete rollout
@SplitSoftware
Progressive Delivery → bit.ly/pd-thoughts
Coding Practice + Free Accts → bit.ly/split4devs
Split Explainer Video (2 min) → bit.ly/what-is-split
Connect → linkedin.com/in/davekarow or @davekarow
@SplitSoftware
Let’s Chat! Q&A / Resources
Feature flags
Sensors
Correlation
Stats Engine
Causation
“Holy Grail”
Mgmt console
System of record
Alerting
| > $50M annual cost
| > $30M annual cost
| > $25M annual cost
Increasing functionality & company adoption
Cost
to
build
and
maintain
How In-House Progressive Delivery Platforms Paved The Way For Split
(They Proved the value of Layering Up, But Required Huge Investments)
@SplitSoftware

More Related Content

PDF
Shalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprint
PDF
PowerApps
PPTX
The api economy
PPTX
Adobe Flex builder by elmagnif
PPT
Btb017 David
PDF
Power Apps Advanced Training Brochure
PPTX
ALM in 2010
PPSX
Icon solutions presentation - Pure Hybrid Cloud Event, 11th September London
Shalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprint
PowerApps
The api economy
Adobe Flex builder by elmagnif
Btb017 David
Power Apps Advanced Training Brochure
ALM in 2010
Icon solutions presentation - Pure Hybrid Cloud Event, 11th September London

What's hot (7)

PPTX
Working with the Bing Maps Silverlight Control
PPTX
Managing Multile Interfaces with dotCMS
PDF
Twin Cities Eloqua User Group - May 21, 2013
PDF
JCR, Sling or AEM? Which API should I use and when?
PDF
Innovation morning data analytics + ai
PDF
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Working with the Bing Maps Silverlight Control
Managing Multile Interfaces with dotCMS
Twin Cities Eloqua User Group - May 21, 2013
JCR, Sling or AEM? Which API should I use and when?
Innovation morning data analytics + ai
Webinar: Front End Web Development - Trendy Web Designs Using HTML5
Ad

Similar to Dave Karow, Split. Powering Progressive Delivery With Data (20)

PDF
Interop 2020 The Release Night Is An Anti-Pattern
PDF
Bcn devcon jose luis soria - patterns & antipatterns for delivery
PPTX
Automating the application lifecycle.pptx
PDF
Ship Confidently with progressive delivery and experimentation.pdf
PDF
"Flagging your features — a DevOps approach to continuous release", Alex Thissen
PPTX
All you need is fast feedback loop, fast feedback loop, fast feedback loop is...
PDF
How to Uplevel Your Pipeline with Release Orchestration and Deployment Automa...
PPTX
Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)
PPTX
Intro To Continuous Delivery
PDF
2016 09-dev opsjourney-devopsdaysoslo
PPTX
All you need is fast feedback loop, fast feedback loop, fast feedback loop is...
PPTX
Experience + Education = Empowerment
PDF
Continuous Deployment To The Cloud
PPTX
Am i doing deployments right v2
PPTX
Fundamentals of Deploy and Release
PDF
Cloud-Native Progressive Delivery
PPTX
An introduction to progressive delivery
PPTX
Advanced deployment scenarios
PDF
What to Expect When You're Expecting (to Own Production)
PDF
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Interop 2020 The Release Night Is An Anti-Pattern
Bcn devcon jose luis soria - patterns & antipatterns for delivery
Automating the application lifecycle.pptx
Ship Confidently with progressive delivery and experimentation.pdf
"Flagging your features — a DevOps approach to continuous release", Alex Thissen
All you need is fast feedback loop, fast feedback loop, fast feedback loop is...
How to Uplevel Your Pipeline with Release Orchestration and Deployment Automa...
Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)
Intro To Continuous Delivery
2016 09-dev opsjourney-devopsdaysoslo
All you need is fast feedback loop, fast feedback loop, fast feedback loop is...
Experience + Education = Empowerment
Continuous Deployment To The Cloud
Am i doing deployments right v2
Fundamentals of Deploy and Release
Cloud-Native Progressive Delivery
An introduction to progressive delivery
Advanced deployment scenarios
What to Expect When You're Expecting (to Own Production)
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Ad

More from IT Arena (20)

PDF
Ihar Mahaniok, Angel Investor. Hunting unicorns for early stage investments
PDF
Yuriy Zaremba, AXDRAFT. How to sell your startup
PDF
John Griffin, Ford Credit Europe. Normalising failure and making way for succ...
PDF
Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...
PDF
Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...
PDF
Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...
PDF
Beth Anne Katz, Microsoft. How to Product Manage Your Mental Health
PDF
Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...
PDF
Colleen Graneto, Airbnb. 3 steps to better product decision making
PDF
Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...
PDF
Godard Abel, G2. The SaaS Trust Crisis
PDF
Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...
PPTX
Namir Anani, ICTC. Economic Resiliency in The Face of Adversity
PDF
Mada Seghete, Branch. Mobile Growth Trends
PDF
Julia Petryk, MacPaw. Product PR: a how-to guide
PDF
Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...
PDF
Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...
PDF
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
PDF
Alexandra Motulskaya, Exadel. ML1: Creating a machine learning powered plugin...
PDF
Marty Kaszubowski, Old Dominion University. Oops!... Another Startup Did It A...
Ihar Mahaniok, Angel Investor. Hunting unicorns for early stage investments
Yuriy Zaremba, AXDRAFT. How to sell your startup
John Griffin, Ford Credit Europe. Normalising failure and making way for succ...
Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...
Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...
Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...
Beth Anne Katz, Microsoft. How to Product Manage Your Mental Health
Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...
Colleen Graneto, Airbnb. 3 steps to better product decision making
Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...
Godard Abel, G2. The SaaS Trust Crisis
Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...
Namir Anani, ICTC. Economic Resiliency in The Face of Adversity
Mada Seghete, Branch. Mobile Growth Trends
Julia Petryk, MacPaw. Product PR: a how-to guide
Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...
Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Alexandra Motulskaya, Exadel. ML1: Creating a machine learning powered plugin...
Marty Kaszubowski, Old Dominion University. Oops!... Another Startup Did It A...

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
Teaching material agriculture food technology
PPTX
MYSQL Presentation for SQL database connectivity
PDF
KodekX | Application Modernization Development
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Modernizing your data center with Dell and AMD
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Big Data Technologies - Introduction.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Teaching material agriculture food technology
MYSQL Presentation for SQL database connectivity
KodekX | Application Modernization Development
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Modernizing your data center with Dell and AMD
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Big Data Technologies - Introduction.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Mobile App Security Testing_ A Comprehensive Guide.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation theory and applications.pdf
Approach and Philosophy of On baking technology
Reach Out and Touch Someone: Haptics and Empathic Computing
Building Integrated photovoltaic BIPV_UPV.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf

Dave Karow, Split. Powering Progressive Delivery With Data

  • 1. Powering Progressive Delivery With Data @SplitSoftware A Layered Approach
  • 2. Do you do this when your team releases to production? Evan-Amos, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons https://upload.wikimedia.org/wikipedia/commons/a/ac/Hands-Fingers-Crossed.jpg
  • 3. Can you remember a release night that went like this? https://imgflip.com/user/Knightrogens https://imgflip.com/i/1mp8tq
  • 4. How do you respond when someone asks, “How successful was that release?” https://www.flickr.com/photos/tomhilton/16686579989
  • 5. linkedin.com/in/davekarow What I’m up to: demystifying progressive delivery, especially the role of automated data attribution, early in partial releases. How I got here: Three decades of experience in developer tools, developer communities, and evangelizing sustainable software delivery practices that deliver impact, without burning out humans. Where I’ve been: DHL Worldwide Express, Sun Microsystems, Gupta Technologies, Remedy Software, Marimba (BMC), Keynote Systems (Dynatrace), SOASTA (Akamai), BlazeMeter (CA/Broadcom) and now Split Software. It doesn’t have to be that way! @SplitSoftware
  • 6. Powering Progressive Delivery With Data A Layered Approach Progressive Delivery: What Is It, Really? 01 Role Models: Progressive Delivery In The Wild The Foundation: Decouple Deploy from Release The Upper Layers: Data-Informed Practices, Automated 02 03 04 @SplitSoftware
  • 7. Progressive Delivery What Is It, Really? 01 @SplitSoftware
  • 8. The Roots of “Progressive Delivery” “Well, when we’re rolling out services. What we do is progressive experimentation because what really matters is the blast radius. How many people will be affected when we roll that service out and what can we learn from them?” Sam Guckenheimer, quoted in https://www.infoq.com/presentations/progressive-delivery/ @SamGuckenheimer @monkchips (James Governor) (James Governor) @SplitSoftware
  • 9. The Roots of “Progressive Delivery” @monkchips (James Governor) ...a new basket of skills and technologies concerned with modern software development, testing and deployment. @SplitSoftware
  • 10. Carlos Sanchez (Sr. Cloud Software Engineer @ Adobe) https://blog.csanchez.org/2019/01/22/progressive-delivery-in-kubernetes-blue-green-and-canary-deployments/ Progressive Delivery is the next step after Continuous Delivery, where new versions are deployed to a subset of users and are evaluated in terms of correctness and performance before rolling them to the totality of the users and rolled back if not matching some key metrics. @SplitSoftware
  • 11. Role Models: Progressive Delivery In the Wild 02 @SplitSoftware
  • 14. The Foundation: Decouple Deploy from Release 03 @SplitSoftware
  • 16. 4 Ways to Decouple Deploy From Release (How You Roll Matters) Approach Benefits Blue/Green Deployment Canary Release (container based) Feature Flags Feature Flags + Data, Integrated Avoid Downtime Limit The Blast Radius Limit WIP / Achieve Flow Learn During The Process https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/ Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware
  • 17. Approach Benefits Blue/Green Deployment Canary Release (container based) Feature Flags Feature Flags + Data, Integrated Avoid Downtime Limit The Blast Radius Limit WIP / Achieve Flow Learn During The Process https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/ Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware 4 Ways to Decouple Deploy From Release (How You Roll Matters)
  • 18. Approach Benefits Blue/Green Deployment Canary Release (container based) Feature Flags Feature Flags + Data, Integrated Avoid Downtime Limit The Blast Radius Limit WIP / Achieve Flow Learn During The Process https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/ Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware 4 Ways to Decouple Deploy From Release (How You Roll Matters)
  • 19. Approach Benefits Blue/Green Deployment Canary Release (container based) Feature Flags Feature Flags + Data, Integrated Avoid Downtime Limit The Blast Radius Limit WIP / Achieve Flow Learn During The Process https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/ Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware 4 Ways to Decouple Deploy From Release (How You Roll Matters)
  • 20. Approach Benefits Blue/Green Deployment Canary Release (container based) Feature Flags Feature Flags + Data, Integrated Avoid Downtime Limit The Blast Radius Limit WIP / Achieve Flow Learn During The Process https://www.split.io/blog/learn-the-four-shades-of-progressive-delivery/ Harvey Balls by Sschulte at English Wikipedia [CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)] @SplitSoftware 4 Ways to Decouple Deploy From Release (How You Roll Matters)
  • 21. Feature Flag Like a dimmer switch for changes 0% 10% 20% 50% 100% @SplitSoftware
  • 22. What a Feature Flag Looks Like In Code treatment = flags.getTreatment(“related-posts”); if (treatment == “on”) { // show related posts } else { // skip it } Simple “on/off” example @SplitSoftware
  • 23. What a Feature Flag Looks Like In Code Multiple variant example treatment = flags.getTreatment(“search-algorithm”); if (treatment == “v1”) { // use v1 of new search algorithm } else if (treatment == “v2”) { // use v2 of new search algorithm } else { // use existing search algorithm } @SplitSoftware
  • 24. Foundational Capabilities Unlocked By Feature Flags Decouple Deploy From Release With Feature Flags ● Incremental Feature Development for Flow ● Testing In Production ● Kill Switch (big red button) @SplitSoftware
  • 25. The Upper Layers: Data-Informed Practices, Automated 04 @SplitSoftware
  • 26. DEPLOY Code deployed No exposure Why Automate Data-Informed Practices? A Different Way to “Ship” Becomes Possible @SplitSoftware
  • 27. DEPLOY Code deployed No exposure ERROR MITIGATION 0-50% Ramp Identify bugs/crashes @SplitSoftware Why Automate Data-Informed Practices? A Different Way to “Ship” Becomes Possible
  • 28. DEPLOY Code deployed No exposure ERROR MITIGATION 0-50% Ramp Identify bugs/crashes MEASURE Maximum Power Ramp Understand impact @SplitSoftware Why Automate Data-Informed Practices? A Different Way to “Ship” Becomes Possible
  • 29. DEPLOY Code deployed No exposure ERROR MITIGATION 0-50% Ramp Identify bugs/crashes MEASURE Maximum Power Ramp Understand impact SCALE MITIGATION 50-100% Ramp Identify scaling issues @SplitSoftware Why Automate Data-Informed Practices? A Different Way to “Ship” Becomes Possible
  • 30. DEPLOY Code deployed No exposure ERROR MITIGATION 0-50% Ramp Identify bugs/crashes MEASURE Maximum Power Ramp Understand impact SCALE MITIGATION 50-100% Ramp Identify scaling issues RELEASE Complete rollout @SplitSoftware Why Automate Data-Informed Practices? A Different Way to “Ship” Becomes Possible
  • 31. New Release Metrics Change “Can’t we just change things and monitor what happens?” Heads Up! Not Everything Is As It Seems @SplitSoftware
  • 32. New Release Metrics Change Everything else in the world ● Product changes ● Marketing campaigns ● Global Pandemics ● Nice Weather Problem To Solve: Separating Signal From Noise @SplitSoftware
  • 33. How do you feel when this happens? What’s the effect on your culture if this happens often? @SplitSoftware 100% Rolled Out
  • 34. How would you feel if you could find problems here, instead? @SplitSoftware 5% Rolled Out
  • 35. Existing New 5% 95% @SplitSoftware Solution: Random Assignment + Statistical Comparison
  • 36. Decouple Deploy From Release With Feature Flags Automate Guardrails Safety: Automate Guardrails/Do-No-Harm Testing ● Alert on Exception / Performance Early In Rollout ● “Limit The Blast Radius” w/o Manual Heroics @SplitSoftware
  • 38. Measure Release Impact Decouple Deploy From Release With Feature Flags Automate Guardrails Meaning: Measure Release Impact ● Iteration w/o Measurement = Feature Factory 😡 ● Direct Evidence of Our Efforts → Pride 😎 @SplitSoftware
  • 39. Measure Release Impact Decouple Deploy From Release With Feature Flags Automate Guardrails Test to Learn (A/B Test) Humility: Test to Learn (A/B Test) ● Take Bigger Risks, Safely ● Learn Faster With Less Investment ○ Dynamic Config ○ Painted Door @SplitSoftware
  • 40. This is What Sustainable Software Delivery Looks Like: DEPLOY Code deployed No exposure ERROR MITIGATION 0-50% Ramp Identify bugs/crashes MEASURE Maximum Power Ramp Understand impact SCALE MITIGATION 50-100% Ramp Identify scaling issues RELEASE Complete rollout @SplitSoftware
  • 41. Progressive Delivery → bit.ly/pd-thoughts Coding Practice + Free Accts → bit.ly/split4devs Split Explainer Video (2 min) → bit.ly/what-is-split Connect → linkedin.com/in/davekarow or @davekarow @SplitSoftware Let’s Chat! Q&A / Resources
  • 42. Feature flags Sensors Correlation Stats Engine Causation “Holy Grail” Mgmt console System of record Alerting | > $50M annual cost | > $30M annual cost | > $25M annual cost Increasing functionality & company adoption Cost to build and maintain How In-House Progressive Delivery Platforms Paved The Way For Split (They Proved the value of Layering Up, But Required Huge Investments) @SplitSoftware