Monktoberfest Fast Delivery

71
Fast Delivery Adrian Cockcroft @adrianco Technology Fellow - Battery Ventures September 2014

description

Shortened version of the Fast Delivery talk with a few new slides added since the GOTO Aarhus version earlier in the week...

Transcript of Monktoberfest Fast Delivery

Page 1: Monktoberfest Fast Delivery

Fast DeliveryAdrian Cockcroft @adrianco

Technology Fellow - Battery Ventures September 2014

Page 2: Monktoberfest Fast Delivery
Page 3: Monktoberfest Fast Delivery

Typical reactions to my Netflix talks…

Page 4: Monktoberfest Fast Delivery

Typical reactions to my Netflix talks…

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

– 2009

Page 5: Monktoberfest Fast Delivery

Typical reactions to my Netflix talks…

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

– 2009

“What Netflix is doing won’t work”

– 2010

Page 6: Monktoberfest Fast Delivery

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

Page 7: Monktoberfest Fast Delivery

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

Page 8: Monktoberfest Fast Delivery

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

Page 9: Monktoberfest Fast Delivery

What I learned from my time at Netflix

Page 10: Monktoberfest Fast Delivery

What I learned from my time at Netflix

•Speed wins in the marketplace

Page 11: Monktoberfest Fast Delivery

What I learned from my time at Netflix

•Speed wins in the marketplace•Remove friction from product development

Page 12: Monktoberfest Fast Delivery

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

Page 13: Monktoberfest Fast Delivery

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

Page 14: Monktoberfest Fast Delivery

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

Page 15: Monktoberfest Fast Delivery

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

Page 16: Monktoberfest Fast Delivery

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

Page 17: Monktoberfest Fast Delivery

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

Page 18: Monktoberfest Fast Delivery

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

2009

Page 19: Monktoberfest Fast Delivery

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

2009

Page 20: Monktoberfest Fast Delivery

Cloud Adoption

@adrianco’s new job at the intersection of cloud and Enterprise IT

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

20142009

Page 21: Monktoberfest Fast Delivery

This is the year that Enterprises finally

embraced cloud.

Page 22: Monktoberfest Fast Delivery

What separates incumbents from

disruptors?

Page 23: Monktoberfest Fast Delivery

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

know that ain't so.” !

Will Rogers

Page 24: Monktoberfest Fast Delivery

Assumptions

Page 25: Monktoberfest Fast Delivery

Optimizations

Page 26: Monktoberfest Fast Delivery

Assumption: Process prevents

problems

Page 27: Monktoberfest Fast Delivery

Organizations build up slow complex “Scar

tissue” processes

Page 28: Monktoberfest Fast Delivery

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

Page 29: Monktoberfest Fast Delivery

Product Development

Processes

Page 30: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act Continuous Delivery

Page 31: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Measure Customers

Continuous Delivery

Page 32: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

INNOVATION

Measure Customers

Continuous Delivery

Page 33: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

Model Hypotheses

INNOVATION

Measure Customers

Continuous Delivery

Page 34: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

Model Hypotheses

BIG DATA

INNOVATION

Measure Customers

Continuous Delivery

Page 35: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

JFDI

Plan Response

Share Plans

Model Hypotheses

BIG DATA

INNOVATION

Measure Customers

Continuous Delivery

Page 36: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

JFDI

Plan Response

Share Plans

Model Hypotheses

BIG DATA

INNOVATION

CULTURE

Measure Customers

Continuous Delivery

Page 37: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity 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

Page 38: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity 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

Page 39: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity 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

Page 40: Monktoberfest Fast Delivery

Observe

Orient

Decide

Act

Land grab opportunity 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

Page 41: Monktoberfest Fast Delivery

Breaking Down the SILOs

Page 42: Monktoberfest Fast Delivery

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

Mgr

Page 43: Monktoberfest Fast Delivery

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

Mgr

Product Team Using Monolithic DeliveryProduct Team Using Monolithic Delivery

Page 44: Monktoberfest Fast Delivery

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

MgrProduct Team Using Microservices

Product Team Using Monolithic Delivery

Product Team Using MicroservicesProduct Team Using Microservices

Product Team Using Monolithic Delivery

Page 45: Monktoberfest Fast Delivery

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

MgrProduct Team Using Microservices

Product Team Using Monolithic Delivery

Platform TeamProduct Team Using MicroservicesProduct Team Using Microservices

Product Team Using Monolithic Delivery

Page 46: Monktoberfest Fast Delivery

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

MgrProduct Team Using Microservices

Product Team Using Monolithic Delivery

Platform TeamA P I

Product Team Using MicroservicesProduct Team Using Microservices

Product Team Using Monolithic Delivery

Page 47: Monktoberfest Fast Delivery

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

MgrProduct Team Using Microservices

Product Team Using Monolithic Delivery

Platform Team

DevOps is a Re-Org

A P I

Product Team Using MicroservicesProduct Team Using Microservices

Product Team Using Monolithic Delivery

Page 48: Monktoberfest Fast Delivery

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 of developers and a single language like php, java or ruby

Page 49: Monktoberfest Fast Delivery

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 of developers and a single language like php, java or ruby

Page 50: Monktoberfest Fast Delivery

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 of developers and a single language like php, java or ruby

Page 51: Monktoberfest Fast Delivery

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

Page 52: Monktoberfest Fast Delivery

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

Page 53: Monktoberfest Fast Delivery

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

Page 54: Monktoberfest Fast Delivery

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

Page 55: Monktoberfest Fast Delivery

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

Page 56: Monktoberfest Fast Delivery

What Happened?Rate of change

increased

Cost and size and risk of change

reduced

Page 57: Monktoberfest Fast Delivery

Disruptor: Continuous Delivery with Microservices

Page 58: Monktoberfest Fast Delivery

A Microservice Definition !

Loosely coupled service oriented architecture with bounded contexts

Page 59: Monktoberfest Fast Delivery

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

Page 60: Monktoberfest Fast Delivery

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.

Page 61: Monktoberfest Fast Delivery

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

Page 62: Monktoberfest Fast Delivery

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

Page 63: Monktoberfest Fast Delivery

Separation of Concerns

Bounded Contexts

Page 64: Monktoberfest Fast Delivery

Where to Start? Mobile

Enterprise Mobile Apps Horizontal Team App-Store Provisioning APIs to Everyone DevOps Already…

Page 65: Monktoberfest Fast Delivery

Reaction from Fortune 100 CTO: “But Netflix has a superstar development team, we don’t!"

Page 66: Monktoberfest Fast Delivery

Reaction from Fortune 100 CTO: “But Netflix has a superstar development team, we don’t!"

Adrian’s Response: “Netflix hired them from you, and got out of their way…”

Page 67: Monktoberfest Fast Delivery

Forward Thinking

Page 68: Monktoberfest Fast Delivery

Forward Thinking

Page 69: Monktoberfest Fast Delivery

Forward Thinking

Page 70: Monktoberfest Fast Delivery

Forward Thinking

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

Page 71: Monktoberfest Fast Delivery

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