progressive delivery patterns & benefits · 2020-02-27 · how you roll matters @davekarow...

51
Progressive Delivery Patterns & Benefits Dave Karow Continuous Delivery Evangelist Split.io @davekarow

Upload: others

Post on 15-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Progressive Delivery Patterns & Benefits

Dave Karow Continuous Delivery Evangelist

Split.io

@davekarow

Page 2: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

The future is already here — it's just not very evenly distributed.

William Gibson

@davekarow

Page 3: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

What is Progressive Delivery?

Patterns In The Wild

Summing It Up

QR Code

@davekarow

Page 4: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

What is Progressive Delivery and what are the potential benefits?

@davekarow @davekarow

Page 5: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

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.

@davekarow

Page 6: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Potential Benefits of Progressive Delivery

Avoid Downtime

Limit the Blast Radius

Limit WIP / Achieve Flow

Learn During the Process

@davekarow

Page 7: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

How You Roll Matters Approach

Benefits Blue/Green

Deployment

Canary Release Feature Flag

Rollout

Feature Delivery

Platform

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)] @davekarow

Page 8: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

How You Roll Matters

@davekarow

Approach

Benefits Blue/Green

Deployment

Canary Release Feature Flag

Rollout

Feature Delivery

Platform

Avoid

Downtime

Limit The

Blast Radius

Limit WIP /

Achieve Flow

Learn During

The Process

@davekarow

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)]

Page 9: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

How You Roll Matters

@davekarow

Approach

Benefits Blue/Green

Deployment

Canary Release Feature Flag

Rollout

Feature Delivery

Platform

Avoid

Downtime

Limit The

Blast Radius

Limit WIP /

Achieve Flow

Learn During

The Process

@davekarow

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)]

Page 10: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

How You Roll Matters

@davekarow

Approach

Benefits Blue/Green

Deployment

Canary Release Feature Flag

Rollout

Feature Delivery

Platform

Avoid

Downtime

Limit The

Blast Radius

Limit WIP /

Achieve Flow

Learn During

The Process

@davekarow

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)]

Page 11: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

How You Roll Matters

@davekarow

Approach

Benefits Blue/Green

Deployment

Canary Release Feature Flag

Rollout

Feature Delivery

Platform

Avoid

Downtime

Limit The

Blast Radius

Limit WIP /

Achieve Flow

Learn During

The Process

@davekarow

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)]

Page 12: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Feature Delivery Platform Capabilities

@davekarow

Page 13: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Feature Delivery Platform Capabilities

@davekarow

Page 14: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Feature Delivery Platform Capabilities

@davekarow

Page 15: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Let’s Venture Into the Wild!

Bruce Turner from AustinTX

https://www.flickr.com/people/66994844@N00

[CC BY (https://creativecommons.org/licenses/by/2.0)]

@davekarow

Page 16: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Booking.com

@davekarow

Page 17: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Booking.com: a well-documented example of the pattern

@davekarow

Page 18: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

https://medium.com/booking-com-development/moving-fast-breaking-things-and-fixing-them-as-quickly-as-possible-a6c16c5a1185

@davekarow

Page 19: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

@davekarow @davekarow

Page 20: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

@davekarow

Page 21: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Feature Flag Managing exposure like a dimmer or light board

0%

10%

20%

50%

100%

@davekarow

Page 22: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Booking.com’s experience with Manage: “asynchronous feature release” ● Deploying has no impact on user experience ● Deploy more frequently with less risk to business and users ● The big win is Agility

@davekarow

Page 23: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

@davekarow

Page 24: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Monitoring the needle in the haystack If you roll out a change to just 5% of your population

...and 20% (1 in 5) of the exposed users get an error,

that’s a HUGE problem!

But, what % of your total user population is getting that error?

1%

@davekarow

Page 25: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

@davekarow

Page 26: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

@davekarow

Page 27: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Booking.com’s experience with Monitor: “Experimentation as a safety net” ● Each new feature is wrapped in its own experiment ● Allows: monitoring and stopping of individual changes ● The developer or team responsible for the feature can enable

and disable it... ● ...regardless of who deployed the new code that contained it.

@davekarow

Page 28: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Booking.com safety net automated: “circuit breaker” ● Active for the first three minutes of feature release ● Severe degradation → automatic abort of that feature ● Acceptable divergence from core value of local ownership

and responsibility where it’s a “no brainer” that users are being negatively impacted

@davekarow

Page 29: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Booking.com Circuit Breaker (Automatic Stopping)

@davekarow

Page 30: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Guardrail metrics

@davekarow

Page 31: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

@davekarow

Page 32: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Booking.com’s experience with Experimentation: A way to validate ideas ● Measure (in a controlled manner) the impact changes have

on user behaviour ● Every change has a clear objective (explicitly stated

hypothesis on how it will improve user experience) ● Measuring allows validation that desired outcome is achieved

@davekarow

Page 33: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Feature Flag Experimentation example

@davekarow

50% 50%

Page 34: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

The quicker we manage to validate new ideas the less time is wasted on things that don’t work and the more time is left to work on things that make a difference.

Booking’s Big Takeaway

@davekarow

Page 35: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

LinkedIn XLNT/LIX

@davekarow

Page 36: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

● Built a targeting engine that could “split” traffic between existing and new code

● Impact analysis was by hand only (and took ~2 weeks), so nobody did it :-(

Essentially just feature flags without automated feedback

LinkedIn early days: a modest start for XLNT

@davekarow

Page 37: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

LinkedIn XLNT Today A controlled release with standardized KPI calculation launched very 5 minutes

100 releases per day

6000 metrics that can be “followed” by any stakeholder: “What releases are moving the numbers I care about?”

@davekarow

Page 38: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Lessons learned at LinkedIn ● Build for scale: no more coordinating over email ● Make it trustworthy: targeting and analysis must be rock solid ● Design for diverse teams, not just data scientists

Ya Xu Head of Data Science, LinkedIn Decisions Conference 10/2/2018

@davekarow

Page 39: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Step 1 Feature flags

Step 2 Sensors Correlation

Step 3 Stats Engine Causation

“Holy Grail” Mgmt console System of record Alerting

Increasing functionality & company adoption

Co

st t

o b

uild

an

d m

ain

tain

Summing it up: The patterns are proven

@davekarow

Maturity hasn’t come easily or fast for the pioneers

Page 40: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Split implements these patterns as a service: split.io

@davekarow

Page 41: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

@davekarow

Page 42: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

@davekarow

Page 43: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

@davekarow

Page 44: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Checklists to DIY or Buy ● Foundational Capabilities You’ll Need ● How-To’s: Monitor & Experiment

@davekarow

Page 45: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Decouple deploy from release

❏ Allow changes of exposure w/o new deploy or rollback

❏ Support targeting by UserID, attribute (population), random hash

Foundational Capability #1

@davekarow

Page 46: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Automate a reliable and consistent way to answer,

“Who have we exposed this to so far?”

❏ Record who hit a flag, which way they were sent, and why

❏ Confirm that targeting is working as intended

❏ Confirm that expected traffic levels are reached

Foundational Capability #2

@davekarow

Page 47: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Automate a reliable and consistent way to answer,

“How is it going for them (and us)?”

❏ Automate comparison of system health (errors, latency, etc…)

❏ Automate comparison of user behavior (business outcomes)

❏ Make it easy to include “Guardrail Metrics” in comparisons to

avoid the local optimization trap

Foundational Capability #3

@davekarow

Page 48: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Limit the blast radius of unexpected consequences so you can replace the

“big bang” release night with more frequent, less stressful rollouts.

Build on the foundational capabilities to:

❏ Ramp in stages, starting with dev team, then dogfooding, then % of public

❏ Monitor at feature rollout level, not just globally (vivid facts vs faint signals)

❏ Alert at the team level (build it/own it)

❏ Kill if severe degradation detected (stop the pain now, triage later)

❏ Continue to ramp up healthy features while “sick” are ramped down or killed

How-To: Release Faster With Less Risk

@davekarow

Page 49: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Focus precious engineering cycles on “what works” with experimentation,

making statistically rigorous observations about what moves KPIs (and what

doesn’t).

Build on the foundational capabilities to:

❏ Target an experiment to a specific segment of users

❏ Ensure random, deterministic, persistent allocation to A/B/n variants

❏ Ingest metrics chosen before the experiment starts (not cherry-picked after)

❏ Compute statistical significance before proclaiming winners

❏ Design for diverse audiences, not just data scientists (buy-in needed to stick)

How-To: Engineer for Impact (Not Output)

@davekarow

Page 50: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Whatever you are, try to be a good one.

William Makepeace Thackeray

@davekarow

Page 51: Progressive Delivery Patterns & Benefits · 2020-02-27 · How You Roll Matters @davekarow Approach Benefits Blue/Green Deployment Canary Release Feature Flag Rollout Feature Delivery

Progressive Delivery Resources tinyurl.com/pd4u2020 (just posted to twitter as well)

@davekarow