GOTO Fast Delivery - GOTO...

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

Transcript of GOTO Fast Delivery - GOTO...

Page 1: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Fast DeliveryAdrian Cockcroft @adrianco

Technology Fellow - Battery Ventures September 2014

Page 2: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing
Page 3: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Typical reactions to my Netflix talks…

Page 4: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Typical reactions to my Netflix talks…

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

– 2009

Page 5: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

What I learned from my time at Netflix

Page 10: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

What I learned from my time at Netflix

•Speed wins in the marketplace

Page 11: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

What I learned from my time at Netflix

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

Page 12: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

Page 18: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

2009

Page 19: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

2009

Page 20: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Cloud Adoption

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

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

20142009

Page 21: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

This is the year that Enterprises finally

embraced cloud.

Page 22: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

know that ain't so.” !

Will Rogers

Page 23: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

What separates incumbents from

disruptors?

Page 24: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Assumptions

Page 25: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Optimizations

Page 26: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Assumption: Process prevents

problems

Page 27: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Organizations build up slow complex “Scar

tissue” processes

Page 28: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

Page 29: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Product Development

Processes

Page 30: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

Page 31: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

Page 32: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

Page 33: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

Page 34: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Process Hand-Off Steps for Product Development on IaaS

Product Manager

Development Team

QA Integration Team

Operations Deploy Team

BI Analytics Team

Page 35: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

IaaS Based Product

Business Need • Documents • Weeks

Software Development • Specifications • Weeks

Deployment and Testing • Reports • Days

Customer Feedback • It sucks! • Days

Page 36: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

IaaS Based Product

Business Need • Documents • Weeks

Software Development • Specifications • Weeks

Deployment and Testing • Reports • Days

Customer Feedback • It sucks! • Days

etc…

Page 37: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

IaaS Based Product

Business Need • Documents • Weeks

Software Development • Specifications • Weeks

Deployment and Testing • Reports • Days

Customer Feedback • It sucks! • Days

etc…

Page 38: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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…

Page 39: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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…

Page 40: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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…

Page 41: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Process Hand-Off Steps for Feature Development on PaaS

Product Manager

Developer

BI Analytics Team

Page 42: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

PaaS Based Product

Business Need • Discussions • Days

Software Development • Code • Days

Customer Feedback • Fix this Bit! • Hours

etc…

Page 43: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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…

Page 44: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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…

Page 45: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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…

Page 46: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

SaaS Based Business Application Development

Business Need •GUI Builder •Hours

Customer Feedback •Fix this bit! •Seconds

Page 47: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

SaaS Based Business Application Development

Business Need •GUI Builder •Hours

Customer Feedback •Fix this bit! •Seconds

and thousands more…

Page 48: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Observe

Orient

Decide

Act Continuous Delivery

Page 49: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Measure Customers

Continuous Delivery

Page 50: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

INNOVATION

Measure Customers

Continuous Delivery

Page 51: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

Model Hypotheses

INNOVATION

Measure Customers

Continuous Delivery

Page 52: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

Model Hypotheses

BIG DATA

INNOVATION

Measure Customers

Continuous Delivery

Page 53: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 54: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 55: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 56: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 57: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 58: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 59: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 60: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 61: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 62: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 63: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 64: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 65: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 66: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

What Happened?Rate of change

increased

Cost and size and risk of change

reduced

Page 67: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Disruptor Continuous

Delivery

Page 68: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Future Disruption

Page 69: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Open Source Disruption

Follow developers not dollars !Replacing expensive with free leads to an extreme case of Jevon’s Paradox

0

25

50

75

100

Ignore Ignore Worry Dead% Open source adoption by new installations% Incumbent revenue

Page 70: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Ecosystem Transitions

Languages are the foundations of ecosystems

Page 71: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Ecosystem Transitions

Languages are the foundations of ecosystems

1990’s

Page 72: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Ecosystem Transitions

Languages are the foundations of ecosystems

1990’s

2000’s

Page 73: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Ecosystem Transitions

Languages are the foundations of ecosystems

1990’s

2000’s

2010’s

Page 74: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Evolution of Deployment Tools

Page 75: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Evolution of Deployment Tools

Page 76: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Evolution of Deployment Tools

Page 77: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Evolution of Deployment Tools

Page 78: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Evolution of Deployment Tools

Page 79: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Microservices

Page 80: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

A Microservice Definition !

Loosely coupled service oriented architecture with bounded contexts

Page 81: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 82: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 83: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 84: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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 85: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Cloud Native Monitoring and Microservices

Page 86: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

Page 87: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Microservice Based Architectures

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

Page 88: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

“Death Star” Architecture Diagrams

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

Page 89: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

“Death Star” Architecture Diagrams

Netflix Gilt Groupe (12 of 450) Twitter

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

Page 90: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

Page 91: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

Page 92: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

NetflixOSS Hystrix/Turbine Circuit Breaker

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

Page 93: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

NetflixOSS Hystrix/Turbine Circuit Breaker

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

Page 94: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Low Latency SaaS Based Monitors

www.vividcortex.com and www.boundary.com

Page 95: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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

Page 96: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Separation of Concerns

Bounded Contexts

Page 97: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Forward Thinking

Page 98: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Forward Thinking

Page 99: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Forward Thinking

Page 100: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

Forward Thinking

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

Page 101: GOTO Fast Delivery - GOTO Conferencegotocon.com/dl/goto-aar-2014/slides/AdrianCockcroft_FastDelivery.pdfNon-Destructive Production Updates “Immutable Code” Service Pattern Existing

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