4. Typical reactions to my Netflix talks…
“You guys are
crazy! Can’t
believe it”
– 2009
5. Typical reactions to my Netflix talks…
“You guys are
crazy! Can’t
believe it”
– 2009
“What Netflix is doing
won’t work”
– 2010
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
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
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
10. What I learned from my time at Netflix
•Speed wins in the marketplace
11. What I learned from my time at Netflix
•Speed wins in the marketplace
•Remove friction from product development
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
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
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
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
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
20. Cloud Adoption
@adrianco’s
new job at the
intersection
of cloud and
Enterprise IT
2009 2014
%*&!”
By Simon Wardley http://enterpriseitadoption.com/
21. This is the year that
Enterprises finally
embraced cloud.
31. Land grab
opportunity Competitive
Observe
Orient
Decide
Act
Move
Customer Pain
Point
Measure
Customers
Continuous
Delivery
32. Land grab
opportunity Competitive
Observe
Orient
Decide
Act
Move
Customer Pain
Point
INNOVATION
Measure
Customers
Continuous
Delivery
33. Land grab
opportunity Competitive
Observe
Orient
Decide
Act
Move
Customer Pain
Point
Analysis
Model
Hypotheses
INNOVATION
Measure
Customers
Continuous
Delivery
34. Land grab
opportunity Competitive
Observe
Orient
Decide
Act
Move
Customer Pain
Point
Analysis
BIG DATA
Model
Hypotheses
INNOVATION
Measure
Customers
Continuous
Delivery
35. Land grab
opportunity Competitive
Observe
Orient
Decide
Act
Move
Customer Pain
Point
Analysis
BIG DATA
Plan Response
JFDI
Share Plans
Model
Hypotheses
INNOVATION
Measure
Customers
Continuous
Delivery
36. Land grab
opportunity Competitive
Observe
Orient
Decide
Act
Move
Customer Pain
Point
Analysis
BIG DATA
Plan Response
JFDI
Share Plans
Model
Hypotheses
INNOVATION
CULTURE
Measure
Customers
Continuous
Delivery
37. Land grab
opportunity Competitive
Observe
Orient
Decide
Act
Move
Customer Pain
Point
Analysis
BIG DATA
Plan Response
JFDI
Share Plans
Launch AB
Test
Automatic
Deploy
Incremental
Features
Model
Hypotheses
INNOVATION
CULTURE
Measure
Customers
Continuous
Delivery
38. Land grab
opportunity Competitive
Observe
Orient
Decide
Measure
Customers
Act
Move
Customer Pain
Point
Analysis
BIG DATA
Plan Response
JFDI
Share Plans
Launch AB
Test
Automatic
Deploy
Incremental
Features
Model
Hypotheses
INNOVATION
CULTURE
CLOUD
Continuous
Delivery
39. Land grab
opportunity Competitive
Observe
Orient
Decide
Measure
Customers
Act
Move
Customer Pain
Point
Analysis
BIG DATA
Plan Response
JFDI
Share Plans
Launch AB
Test
Automatic
Deploy
Incremental
Features
Model
Hypotheses
INNOVATION
CULTURE
CLOUD
Continuous
Delivery
40. Land grab
opportunity Competitive
Observe
Orient
Decide
Measure
Customers
Act
Move
Customer Pain
Point
Analysis
BIG DATA
Plan Response
JFDI
Share Plans
Launch AB
Test
Automatic
Deploy
Incremental
Features
Model
Hypotheses
INNOVATION
CULTURE
CLOUD
Continuous
Delivery
42. Breaking Down the SILOs
Prod
Mgr
UX Dev QA DBA Sys
Adm Adm
Net
Adm
SAN
43. Breaking Down the SILOs
Prod
Mgr
UX Dev QA DBA Sys
Adm Adm
Net
Adm
SAN
Product Team Using Monolithic Delivery
Product Team Using Monolithic Delivery
44. Breaking Down the SILOs
Product Team Using Monolithic Delivery
Prod
UX Dev QA DBA Sys
Net
SAN
Mgr
Adm
Adm
Adm Product Team Using Microservices
Product Team Using Monolithic Delivery
Product Team Using Microservices
Product Team Using Microservices
45. Breaking Down the SILOs
Product Team Using Monolithic Delivery
Prod
UX Dev QA DBA Sys
Net
SAN
Mgr
Adm
Adm
Adm Product Team Using Microservices
Product Team Using Monolithic Delivery
Product Team Using Microservices Platform Team
Product Team Using Microservices
46. Breaking Down the SILOs
Product Team Using Monolithic Delivery
Prod
UX Dev QA DBA Sys
Net
SAN
Mgr
Adm
Adm
Adm Product Team Using Microservices
Product Team Using Monolithic Delivery
Platform Team A
P
I Product Team Using Microservices
Product Team Using Microservices
47. Breaking Down the SILOs
Product Team Using Monolithic Delivery
Prod
UX Dev QA DBA Sys
Net
SAN
Mgr
Adm
Adm
Adm Product Team Using Microservices
Product Team Using Monolithic Delivery
Platform Team
A
P
I Product Team Using Microservices
Product Team Using Microservices
DevOps is a Re-Org
48. 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
49. Release Plan
Developer
Developer
Developer
Developer
Developer
Monolithic service updates
QA Release
Integration
Ops Replace Old
With New
Release
Bugs
Works well with a small number
of developers and a single
language like php, java or ruby
50. Release Plan
Developer
Developer
Developer
Developer
Developer
Monolithic service updates
QA Release
Integration
Ops Replace Old
With New
Release
Bugs
Bugs
Works well with a small number
of developers and a single
language like php, java or ruby
51. 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
52. Developer
Developer
Developer
Developer
Developer
Immutable microservice deployment
is faster, scales with large teams and
diverse platform components
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
53. Developer
Developer
Developer
Developer
Developer
Immutable microservice deployment
is faster, scales with large teams and
diverse platform components
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
54. Developer
Developer
Developer
Developer
Developer
Immutable microservice deployment
is faster, scales with large teams and
diverse platform components
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
55. 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
56. What Happened?
Rate of change
increased
Cost and size and
risk of change
reduced
59. If every service has to be
updated at the same time
it’s not loosely coupled
A Microservice Definition
!
Loosely coupled service oriented
architecture with bounded contexts
60. If every service has to be
updated at the same time
it’s not loosely coupled
A Microservice Definition
!
Loosely coupled service oriented
architecture with bounded contexts
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.
61. Separate Concerns with Microservices
● 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
http://en.wikipedia.org/wiki/Conway's_law
62. 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
64. Where to Start? Mobile
Enterprise Mobile Apps
Horizontal Team
App-Store Provisioning
APIs to Everyone
DevOps Already…
65. Reaction from Fortune 100 CTO:
“But Netflix has a superstar development team, we don’t!"
66. 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…”
71. Any Questions?
● 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
Disclosure: some of the companies mentioned are Battery Ventures Portfolio Companies
See www.battery.com for a list of portfolio investments