SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

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

Similar a Dave Karow, Split. Powering Progressive Delivery With Data

U test whitepaper_10
U test whitepaper_10U test whitepaper_10
U test whitepaper_10
eshwar83
 
White-Paper-Continuous-Delivery
White-Paper-Continuous-DeliveryWhite-Paper-Continuous-Delivery
White-Paper-Continuous-Delivery
alkhan50
 
Ship Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdfShip Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdf
HeyEmbedMe
 

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

Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
Advanced deployment scenarios
Advanced deployment scenariosAdvanced deployment scenarios
Advanced deployment scenarios
 
Principles and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at EtsyPrinciples and Practices in Continuous Deployment at Etsy
Principles and Practices in Continuous Deployment at Etsy
 
Dev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and FlickrDev and Ops Collaboration and Awareness at Etsy and Flickr
Dev and Ops Collaboration and Awareness at Etsy and Flickr
 
How to Manage the Risk of your Polyglot Environments
How to Manage the Risk of your Polyglot EnvironmentsHow to Manage the Risk of your Polyglot Environments
How to Manage the Risk of your Polyglot Environments
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
 
Software testing
Software testingSoftware testing
Software testing
 
CLL19 - Acceptance Tests as Monitors
CLL19 - Acceptance Tests as MonitorsCLL19 - Acceptance Tests as Monitors
CLL19 - Acceptance Tests as Monitors
 
DevOps for the Discouraged
DevOps for the Discouraged DevOps for the Discouraged
DevOps for the Discouraged
 
U test whitepaper_10
U test whitepaper_10U test whitepaper_10
U test whitepaper_10
 
Petri for kyiv.pptx
Petri for kyiv.pptxPetri for kyiv.pptx
Petri for kyiv.pptx
 
In Toggle, We Trust
In Toggle, We TrustIn Toggle, We Trust
In Toggle, We Trust
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYC
 
It's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right NowIt's Not Continuous Delivery If You Can't Deploy Right Now
It's Not Continuous Delivery If You Can't Deploy Right Now
 
Development and QA dilemmas in DevOps
Development and QA dilemmas in DevOpsDevelopment and QA dilemmas in DevOps
Development and QA dilemmas in DevOps
 
White-Paper-Continuous-Delivery
White-Paper-Continuous-DeliveryWhite-Paper-Continuous-Delivery
White-Paper-Continuous-Delivery
 
Shift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production FailureShift Happens - Rapidly Rolling Forward During Production Failure
Shift Happens - Rapidly Rolling Forward During Production Failure
 
DevOps for Defenders in the Enterprise
DevOps for Defenders in the EnterpriseDevOps for Defenders in the Enterprise
DevOps for Defenders in the Enterprise
 
Ship Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdfShip Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdf
 

Más de IT Arena

Mada Seghete, Branch. Mobile Growth Trends
 Mada Seghete, Branch. Mobile Growth Trends Mada Seghete, Branch. Mobile Growth Trends
Mada Seghete, Branch. Mobile Growth Trends
IT Arena
 
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and KubeflowKostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
IT Arena
 

Más de IT Arena (20)

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

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

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