Fast Delivery Adrian Cockcroft @adrianco Technology Fellow - - - PowerPoint PPT Presentation

fast delivery
SMART_READER_LITE
LIVE PREVIEW

Fast Delivery Adrian Cockcroft @adrianco Technology Fellow - - - PowerPoint PPT Presentation

Fast Delivery Adrian Cockcroft @adrianco Technology Fellow - Battery Ventures September 2014 Typical reactions to my Netflix talks Typical reactions to my Netflix talks You guys are crazy! Cant believe it 2009 Typical


slide-1
SLIDE 1

Fast Delivery

Adrian Cockcroft @adrianco Technology Fellow - Battery Ventures September 2014

slide-2
SLIDE 2
slide-3
SLIDE 3

Typical reactions to my Netflix talks…

slide-4
SLIDE 4

Typical reactions to my Netflix talks…

“You guys are crazy! Can’t believe it”

– 2009

slide-5
SLIDE 5

Typical reactions to my Netflix talks…

“You guys are crazy! Can’t believe it”

– 2009

“What Netflix is doing won’t work”

– 2010

slide-6
SLIDE 6

Typical reactions to my Netflix talks…

“You guys are crazy! Can’t believe it”

– 2009

“What Netflix is doing won’t work”

– 2010

It only works for ‘Unicorns’ like Netflix”

– 2011

slide-7
SLIDE 7

Typical reactions to my Netflix talks…

“You guys are crazy! Can’t believe it”

– 2009

“What Netflix is doing won’t work”

– 2010

It only works for ‘Unicorns’ like Netflix”

– 2011

“We’d like to do 
 that but can’t”

– 2012

slide-8
SLIDE 8

Typical reactions to my Netflix talks…

“You guys are crazy! Can’t believe it”

– 2009

“What Netflix is doing won’t work”

– 2010

It only works for ‘Unicorns’ like Netflix”

– 2011

“We’d like to do 
 that but can’t”

– 2012

“We’re on our way using Netflix OSS code”

– 2013

slide-9
SLIDE 9

What I learned from my time at Netflix

slide-10
SLIDE 10

What I learned from my time at Netflix

  • Speed wins in the marketplace
slide-11
SLIDE 11

What I learned from my time at Netflix

  • Speed wins in the marketplace
  • Remove friction from product development
slide-12
SLIDE 12

What I learned from my time at Netflix

  • Speed wins in the marketplace
  • Remove friction from product development
  • High trust, low process, no hand-offs between teams
slide-13
SLIDE 13

What I learned from my time at Netflix

  • Speed wins in the marketplace
  • Remove friction from product development
  • High trust, low process, no hand-offs between teams
  • Freedom and responsibility culture
slide-14
SLIDE 14

What I learned from my time at Netflix

  • Speed wins in the marketplace
  • Remove friction from product development
  • High trust, low process, no hand-offs between teams
  • Freedom and responsibility culture
  • Don’t do your own undifferentiated heavy lifting
slide-15
SLIDE 15

What I learned from my time at Netflix

  • Speed wins in the marketplace
  • Remove friction from product development
  • High trust, low process, no hand-offs between teams
  • Freedom and responsibility culture
  • Don’t do your own undifferentiated heavy lifting
  • Use simple patterns automated by tooling
slide-16
SLIDE 16

What I learned from my time at Netflix

  • Speed wins in the marketplace
  • Remove friction from product development
  • High trust, low process, no hand-offs between teams
  • Freedom and responsibility culture
  • Don’t do your own undifferentiated heavy lifting
  • Use simple patterns automated by tooling
  • Self service cloud makes impossible things instant
slide-17
SLIDE 17

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

slide-18
SLIDE 18

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

2009

slide-19
SLIDE 19

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

2009

slide-20
SLIDE 20

Cloud Adoption

@adrianco’s new job at the intersection

  • f cloud and

Enterprise IT

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

2014 2009

slide-21
SLIDE 21

This is the year that Enterprises finally embraced cloud.

slide-22
SLIDE 22

“It isn't what we don't know that gives us trouble, it's what we know that ain't so.”

  • Will Rogers
slide-23
SLIDE 23

What separates incumbents from disruptors?

slide-24
SLIDE 24

Assumptions

slide-25
SLIDE 25

Optimizations

slide-26
SLIDE 26

Assumption: Process prevents problems

slide-27
SLIDE 27

Organizations build up slow complex “Scar tissue” processes

slide-28
SLIDE 28

"This is the IT swamp draining manual for anyone who is neck deep in alligators.”

slide-29
SLIDE 29

Product Development Processes

slide-30
SLIDE 30

Non-Cloud Product

Business Need
  • Documents
  • Weeks
Approval Process
  • Meetings
  • Weeks
Hardware Purchase
  • Negotiations
  • Weeks
Software Development
  • Specifications
  • Weeks
Deployment and Testing
  • Reports
  • Weeks
Customer Feedback
  • It sucks!
  • Weeks
slide-31
SLIDE 31

Non-Cloud Product

Hardware provisioning is undifferentiated heavy lifting – replace it with IaaS

Business Need
  • Documents
  • Weeks
Approval Process
  • Meetings
  • Weeks
Hardware Purchase
  • Negotiations
  • Weeks
Software Development
  • Specifications
  • Weeks
Deployment and Testing
  • Reports
  • Weeks
Customer Feedback
  • It sucks!
  • Weeks
slide-32
SLIDE 32

Non-Cloud Product

Hardware provisioning is undifferentiated heavy lifting – replace it with IaaS

Business Need
  • Documents
  • Weeks
Approval Process
  • Meetings
  • Weeks
Hardware Purchase
  • Negotiations
  • Weeks
Software Development
  • Specifications
  • Weeks
Deployment and Testing
  • Reports
  • Weeks
Customer Feedback
  • It sucks!
  • Weeks

IaaS Cloud

slide-33
SLIDE 33

Non-Cloud Product

Hardware provisioning is undifferentiated heavy lifting – replace it with IaaS

Business Need
  • Documents
  • Weeks
Software Development
  • Specifications
  • Weeks
Deployment and Testing
  • Reports
  • Weeks
Customer Feedback
  • It sucks!
  • Weeks
slide-34
SLIDE 34

Process Hand-Off Steps for Product Development on IaaS

Product Manager Development Team QA Integration Team Operations Deploy Team BI Analytics Team

slide-35
SLIDE 35

IaaS Based Product

Business Need

  • Documents
  • Weeks

Software Development

  • Specifications
  • Weeks

Deployment and Testing

  • Reports
  • Days

Customer Feedback

  • It sucks!
  • Days
slide-36
SLIDE 36

IaaS Based Product

Business Need

  • Documents
  • Weeks

Software Development

  • Specifications
  • Weeks

Deployment and Testing

  • Reports
  • Days

Customer Feedback

  • It sucks!
  • Days

etc…

slide-37
SLIDE 37

IaaS Based Product

Business Need

  • Documents
  • Weeks

Software Development

  • Specifications
  • Weeks

Deployment and Testing

  • Reports
  • Days

Customer Feedback

  • It sucks!
  • Days

etc…

slide-38
SLIDE 38

IaaS Based Product

Software provisioning is undifferentiated heavy lifting – replace it with PaaS

Business Need

  • Documents
  • Weeks

Software Development

  • Specifications
  • Weeks

Deployment and Testing

  • Reports
  • Days

Customer Feedback

  • It sucks!
  • Days

etc…

slide-39
SLIDE 39

IaaS Based Product

Software provisioning is undifferentiated heavy lifting – replace it with PaaS

Business Need

  • Documents
  • Weeks

Software Development

  • Specifications
  • Weeks

Deployment and Testing

  • Reports
  • Days

Customer Feedback

  • It sucks!
  • Days

PaaS Cloud

etc…

slide-40
SLIDE 40

IaaS Based Product

Software provisioning is undifferentiated heavy lifting – replace it with PaaS

Business Need

  • Documents
  • Weeks

Software Development

  • Specifications
  • Weeks

Customer Feedback

  • It sucks!
  • Days

etc…

slide-41
SLIDE 41

Process Hand-Off Steps for Feature Development on PaaS

Product Manager Developer BI Analytics Team

slide-42
SLIDE 42

PaaS Based Product

Business Need

  • Discussions
  • Days

Software Development

  • Code
  • Days

Customer Feedback

  • Fix this Bit!
  • Hours

etc…

slide-43
SLIDE 43

PaaS Based Product

Building your own business apps is undifferentiated heavy lifting – use SaaS

Business Need

  • Discussions
  • Days

Software Development

  • Code
  • Days

Customer Feedback

  • Fix this Bit!
  • Hours

etc…

slide-44
SLIDE 44

PaaS Based Product

Building your own business apps is undifferentiated heavy lifting – use SaaS

Business Need

  • Discussions
  • Days

Software Development

  • Code
  • Days

Customer Feedback

  • Fix this Bit!
  • Hours

SaaS/ BPaaS Cloud

etc…

slide-45
SLIDE 45

PaaS Based Product

Building your own business apps is undifferentiated heavy lifting – use SaaS

Business Need

  • Discussions
  • Days

Customer Feedback

  • Fix this Bit!
  • Hours

etc…

slide-46
SLIDE 46

SaaS Based Business Application Development

Business Need

  • GUI Builder
  • Hours

Customer Feedback

  • Fix this bit!
  • Seconds
slide-47
SLIDE 47

SaaS Based Business Application Development

Business Need

  • GUI Builder
  • Hours

Customer Feedback

  • Fix this bit!
  • Seconds

and thousands more…

slide-48
SLIDE 48

Observe Orient Decide Act

Continuous Delivery

slide-49
SLIDE 49

Observe Orient Decide Act Land grab

  • pportunity

Competitive Move Customer Pain Point Measure Customers

Continuous Delivery

slide-50
SLIDE 50

Observe Orient Decide Act Land grab

  • pportunity

Competitive Move Customer Pain Point

INNOVATION

Measure Customers

Continuous Delivery

slide-51
SLIDE 51

Observe Orient Decide Act Land grab

  • pportunity

Competitive Move Customer Pain Point Analysis Model Hypotheses

INNOVATION

Measure Customers

Continuous Delivery

slide-52
SLIDE 52

Observe Orient Decide Act Land grab

  • pportunity

Competitive Move Customer Pain Point Analysis Model Hypotheses

BIG DATA INNOVATION

Measure Customers

Continuous Delivery

slide-53
SLIDE 53

Observe Orient Decide Act Land grab

  • pportunity

Competitive Move Customer Pain Point Analysis JFDI Plan Response Share Plans Model Hypotheses

BIG DATA INNOVATION

Measure Customers

Continuous Delivery

slide-54
SLIDE 54

Observe Orient Decide Act Land grab

  • pportunity

Competitive Move Customer Pain Point Analysis JFDI Plan Response Share Plans Model Hypotheses

BIG DATA INNOVATION CULTURE

Measure Customers

Continuous Delivery

slide-55
SLIDE 55

Observe Orient Decide Act Land grab

  • pportunity

Competitive Move Customer Pain Point Analysis JFDI Plan Response Share Plans Incremental Features Automatic Deploy Launch AB Test Model Hypotheses

BIG DATA INNOVATION CULTURE

Measure Customers

Continuous Delivery

slide-56
SLIDE 56

Observe Orient Decide Act Land grab

  • pportunity

Competitive Move Customer Pain Point Analysis JFDI Plan Response Share Plans Incremental Features Automatic Deploy Launch AB Test Model Hypotheses

BIG DATA INNOVATION CULTURE CLOUD

Measure Customers

Continuous Delivery

slide-57
SLIDE 57

Observe Orient Decide Act Land grab

  • pportunity

Competitive Move Customer Pain Point Analysis JFDI Plan Response Share Plans Incremental Features Automatic Deploy Launch AB Test Model Hypotheses

BIG DATA INNOVATION CULTURE CLOUD

Measure Customers

Continuous Delivery

slide-58
SLIDE 58

Release Plan Developer Developer Developer Developer Developer QA Release Integration Ops Replace Old With New Release

Monolithic service updates Works well with a small number

  • f developers and a single

language like php, java or ruby

slide-59
SLIDE 59

Release Plan Developer Developer Developer Developer Developer QA Release Integration Ops Replace Old With New Release Bugs

Monolithic service updates Works well with a small number

  • f developers and a single

language like php, java or ruby

slide-60
SLIDE 60

Release Plan Developer Developer Developer Developer Developer QA Release Integration Ops Replace Old With New Release Bugs Bugs

Monolithic service updates Works well with a small number

  • f developers and a single

language like php, java or ruby

slide-61
SLIDE 61

Developer Developer Developer Developer Developer Old Release Still Running Release Plan Release Plan Release Plan Release Plan

Immutable microservice deployment is faster, scales with large teams and diverse platform components

slide-62
SLIDE 62

Developer Developer Developer Developer Developer Old Release Still Running Release Plan Release Plan Release Plan Release Plan Deploy Feature to Production Deploy Feature to Production Deploy Feature to Production Deploy Feature to Production

Immutable microservice deployment is faster, scales with large teams and diverse platform components

slide-63
SLIDE 63

Developer Developer Developer Developer Developer Old Release Still Running Release Plan Release Plan Release Plan Release Plan Deploy Feature to Production Deploy Feature to Production Deploy Feature to Production Deploy Feature to Production Bugs

Immutable microservice deployment is faster, scales with large teams and diverse platform components

slide-64
SLIDE 64

Developer Developer Developer Developer Developer Old Release Still Running Release Plan Release Plan Release Plan Release Plan Deploy Feature to Production Deploy Feature to Production Deploy Feature to Production Deploy Feature to Production Bugs Deploy Feature to Production

Immutable microservice deployment is faster, scales with large teams and diverse platform components

slide-65
SLIDE 65

Non-Destructive Production Updates

  • “Immutable Code” Service Pattern
  • Existing services are unchanged, old code remains in service
  • New code deploys as a new service group
  • No impact to production until traffic routing changes
  • A|B Tests, Feature Flags and Version Routing control traffic
  • First users in the test cell are the developer and test engineers
  • A cohort of users is added looking for measurable improvement
  • Finally make default for everyone, keeping old code for a while
slide-66
SLIDE 66

What Happened?

Rate of change increased Cost and size and risk of change reduced

slide-67
SLIDE 67

Disruptor Continuous Delivery

slide-68
SLIDE 68

Future Disruption

slide-69
SLIDE 69

Open Source Disruption

Follow developers not dollars

  • Replacing expensive with

free leads to an extreme case

  • f Jevon’s Paradox

25 50 75 100 Ignore Ignore Worry Dead % Open source adoption by new installations % Incumbent revenue

slide-70
SLIDE 70

Ecosystem Transitions

Languages are the foundations

  • f ecosystems
slide-71
SLIDE 71

Ecosystem Transitions

Languages are the foundations

  • f ecosystems

1990’s

slide-72
SLIDE 72

Ecosystem Transitions

Languages are the foundations

  • f ecosystems

1990’s 2000’s

slide-73
SLIDE 73

Ecosystem Transitions

Languages are the foundations

  • f ecosystems

1990’s 2000’s 2010’s

slide-74
SLIDE 74

Evolution of Deployment Tools

slide-75
SLIDE 75

Evolution of Deployment Tools

slide-76
SLIDE 76

Evolution of Deployment Tools

slide-77
SLIDE 77

Evolution of Deployment Tools

slide-78
SLIDE 78

Evolution of Deployment Tools

slide-79
SLIDE 79

Microservices

slide-80
SLIDE 80

A Microservice Definition

  • Loosely coupled service oriented

architecture with bounded contexts

slide-81
SLIDE 81

A Microservice Definition

  • Loosely coupled service oriented

architecture with bounded contexts

If every service has to be updated at the same time it’s not loosely coupled

slide-82
SLIDE 82

A Microservice Definition

  • Loosely coupled service oriented

architecture with bounded contexts

If every service has to be updated at the same time it’s not loosely coupled If you have to know too much about surrounding services you don’t have a bounded context. See the Domain Driven Design book by Eric Evans.

slide-83
SLIDE 83

Separate Concerns with Microservices

http://en.wikipedia.org/wiki/Conway's_law

  • Invert Conway’s Law – teams own service groups and backend stores
  • One “verb” per single function micro-service, size doesn’t matter
  • One developer independently produces a micro-service
  • Each micro-service is it’s own build, avoids trunk conflicts
  • Deploy in a container: Tomcat, AMI or Docker, whatever…
  • Stateless business logic. Cattle, not pets.
  • Stateful cached data access layer using replicated ephemeral instances
slide-84
SLIDE 84

NetflixOSS - High Availability Patterns

  • Business logic isolation in stateless micro-services
  • Immutable code with instant rollback
  • Auto-scaled capacity and deployment updates
  • Distributed across availability zones and regions
  • De-normalized single function NoSQL data stores
  • See over 40 NetflixOSS projects at netflix.github.com
  • Get “Technical Indigestion” trying to keep up with techblog.netflix.com
slide-85
SLIDE 85

Cloud Native Monitoring and Microservices

slide-86
SLIDE 86

Cloud Native

  • High rate of change

Code pushes can cause floods of new instances and metrics Short baseline for alert threshold analysis – everything looks unusual

  • Ephemeral Configurations

Short lifetimes make it hard to aggregate historical views Hand tweaked monitoring tools take too much work to keep running

  • Microservices with complex calling patterns

End-to-end request flow measurements are very important Request flow visualizations get overwhelmed

slide-87
SLIDE 87

Microservice Based Architectures

See http://www.slideshare.net/LappleApple/gilt-from-monolith-ruby-app-to-micro-service-scala-service-architecture
slide-88
SLIDE 88

“Death Star” Architecture Diagrams

As visualized by Appdynamics, Boundary.com and Twitter internal tools

slide-89
SLIDE 89

“Death Star” Architecture Diagrams

Netflix Gilt Groupe (12 of 450) Twitter

As visualized by Appdynamics, Boundary.com and Twitter internal tools

slide-90
SLIDE 90

Continuous Delivery and DevOps

  • Changes are smaller but more frequent
  • Individual changes are more likely to be broken
  • Changes are normally deployed by developers
  • Feature flags are used to enable new code
  • Instant detection and rollback matters much more
slide-91
SLIDE 91

Whoops! I didn’t mean that! Reverting…


Not cool if it takes 5 minutes to see it failed and 5 more to see a fix
 No-one notices if it only takes 5 seconds to detect and 5 to see a fix

slide-92
SLIDE 92

NetflixOSS Hystrix/Turbine Circuit Breaker

http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html

slide-93
SLIDE 93

NetflixOSS Hystrix/Turbine Circuit Breaker

http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html

slide-94
SLIDE 94

Low Latency SaaS Based Monitors

www.vividcortex.com and www.boundary.com

slide-95
SLIDE 95

Metric to display latency needs to be less than human attention span (~10s)

slide-96
SLIDE 96

Separation of Concerns
 
 Bounded Contexts

slide-97
SLIDE 97

Forward Thinking

slide-98
SLIDE 98

Forward Thinking

slide-99
SLIDE 99

Forward Thinking

slide-100
SLIDE 100

Forward Thinking

http://eugenedvorkin.com/seven-micro-services-architecture-advantages/
slide-101
SLIDE 101

Any Questions?

Disclosure: some of the companies mentioned are Battery Ventures Portfolio Companies See www.battery.com for a list of portfolio investments

  • Battery Ventures http://www.battery.com
  • Adrian’s Blog http://perfcap.blogspot.com
  • Slideshare http://slideshare.com/adriancockcroft
  • Monitorama Opening Keynote Portland OR - May 7th, 2014 - Video available
  • GOTO Chicago Opening Keynote May 20th, 2014
  • Qcon New York – Speed and Scale - June 11th, 2014 - Video available
  • Structure - Cloud Trends June 19th, 2014 - Video available
  • GOTO Copenhagen/Aarhus – Denmark – Sept 25th, 2014
  • DevOps Enterprise Summit - San Francisco - Oct 21-23rd, 2014
  • GOTO Berlin - Germany - Nov 6th, 2014
  • AWS Re:Invent - Las Vegas - November 14th, 2014