Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Native

Cloud Native

Presentation made at the Advanced AWS User Group Meetup in San Francisco July 23rd 2014. Basically combining parts of the Cloud Trends talk with Speed and Scale using my new cloudy template.

Adrian Cockcroft

July 23, 2014
Tweet

More Decks by Adrian Cockcroft

Other Decks in Technology

Transcript

  1. What Is Cloud Native?
    Adrian Cockcroft @adrianco
    Technology Fellow - Battery Ventures
    Advanced AWS Meetup, San Francisco
    July 2014

    View Slide

  2. View Slide

  3. Typical reactions to my Netflix talks…

    View Slide

  4. Typical reactions to my Netflix talks…
    “You guys are
    crazy! Can’t
    believe it”
    – 2009

    View 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

    View 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

    View 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

    View 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

    View Slide

  9. What I learned from my time at Netflix

    View Slide

  10. What I learned from my time at Netflix
    •Speed wins in the marketplace

    View Slide

  11. What I learned from my time at Netflix
    •Speed wins in the marketplace
    •Remove friction from product development

    View 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

    View 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

    View 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

    View 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

    View 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

    View Slide

  17. Cloud Adoption
    %*&!”
    By Simon Wardley http://enterpriseitadoption.com/

    View Slide

  18. Cloud Adoption
    %*&!”
    By Simon Wardley http://enterpriseitadoption.com/
    2009

    View Slide

  19. Cloud Adoption
    %*&!”
    By Simon Wardley http://enterpriseitadoption.com/
    2009

    View Slide

  20. Cloud Adoption
    @adrianco’s
    new job at the
    intersection
    of cloud and
    Enterprise IT
    %*&!”
    By Simon Wardley http://enterpriseitadoption.com/
    2014
    2009

    View Slide

  21. 1
    Public 

    IaaS
    2
    Cloud

    Technologies
    3
    Enterprise
    SaaS

    View Slide

  22. Enterprise IaaS Concerns
    Staying Power
    Support
    Scale
    Location
    1

    View Slide

  23. Safe Bets

    View Slide

  24. Safe Bets

    View Slide

  25. The Global Land-Grab

    View Slide

  26. The Global Land-Grab

    View Slide

  27. The Global Land-Grab

    View Slide

  28. The Global Land-Grab
    Azure
    AWS
    GCE
    15 Regions
    10 Regions
    3 Regions

    View Slide

  29. The Global Land-Grab
    Azure
    AWS
    GCE
    15 Regions
    10 Regions
    3 Regions
    ?
    ?
    ?
    ?
    ?
    http://www.google.com/about/datacenters/inside/locations/index.html

    View Slide

  30. The Global Land-Grab
    Azure
    AWS
    GCE
    15 Regions
    10 Regions
    3 Regions
    ?
    ?
    ?
    ?
    ?
    ?
    http://www.google.com/about/datacenters/inside/locations/index.html

    View Slide

  31. Questions we keep

    hearing about cloud
    Are startups
    adopting Google
    Compute Engine?

    View Slide

  32. Questions we keep

    hearing about cloud
    Are startups
    adopting Google
    Compute Engine?

    View Slide

  33. Everything vs. Snapchat
    148 Customers with funding of $8B 24 Customers with funding of $780M
    AWS listed 426 case studies at http://aws.amazon.com/solutions/case-studies/all/ and Quid found 148 GCE listed 56 case studies at https://cloud.google.com/customers/ and Quid found 24

    View Slide

  34. Everything vs. Snapchat
    148 Customers with funding of $8B 24 Customers with funding of $780M
    AWS listed 426 case studies at http://aws.amazon.com/solutions/case-studies/all/ and Quid found 148 GCE listed 56 case studies at https://cloud.google.com/customers/ and Quid found 24

    View Slide

  35. Cloud Technologies
    Agility
    Functionality
    Cost savings
    2

    View Slide

  36. Questions we keep

    hearing about cloud
    Who will win the
    PaaS battle?

    View Slide

  37. Questions we keep

    hearing about cloud
    Who will win the
    PaaS battle?

    View Slide

  38. Docker All The Things…
    Container
    Communications
    Orchestration
    Policy

    View Slide

  39. SaaS
    3
    Everything
    Enterprise
    Everywhere

    View Slide

  40. Questions we keep

    hearing about cloud

    View Slide

  41. Where is the fastest
    growth in SaaS?
    Questions we keep

    hearing about cloud

    View Slide

  42. Top SaaS Investment Areas
    $0.0$
    $0.5$
    $1.0$
    $1.5$
    $2.0$
    $2.5$
    $3.0$
    $3.5$
    $4.0$
    $4.5$
    1$ 2$ 3$ 4$ 1$ 2$ 3$ 4$ 1$
    2012$ 2013$ 2014$
    Billions'
    IT$Service$Management$
    Communica;on$Systems$
    Risk$&$Vulnerability$Management$
    Sustainability$&$Energy$Management$
    Content$Management$
    Digital$Adver;sing$
    Social$&$Collabora;on$
    Applica;on$Performance$&$Lifecycle$Mangement$
    Business$Intelligence$
    Authen;ca;on$
    ecommerce$Solu;ons$
    Sales$&$Marke;ng$
    Malware$&$Mobile$Security$
    Logis;cs$
    File$Sharing$
    Talent$Management$
    Analy;cs$PlaPorms$
    Many thanks to Kartik Sundar of
    quid.com for advice and support

    View Slide

  43. Top SaaS Investment Areas
    $0.0$
    $0.5$
    $1.0$
    $1.5$
    $2.0$
    $2.5$
    $3.0$
    $3.5$
    $4.0$
    $4.5$
    1$ 2$ 3$ 4$ 1$ 2$ 3$ 4$ 1$
    2012$ 2013$ 2014$
    Billions'
    IT$Service$Management$
    Communica;on$Systems$
    Risk$&$Vulnerability$Management$
    Sustainability$&$Energy$Management$
    Content$Management$
    Digital$Adver;sing$
    Social$&$Collabora;on$
    Applica;on$Performance$&$Lifecycle$Mangement$
    Business$Intelligence$
    Authen;ca;on$
    ecommerce$Solu;ons$
    Sales$&$Marke;ng$
    Malware$&$Mobile$Security$
    Logis;cs$
    File$Sharing$
    Talent$Management$
    Analy;cs$PlaPorms$
    Many thanks to Kartik Sundar of
    quid.com for advice and support

    View Slide

  44. Top SaaS Investment Areas
    $0.0$
    $0.5$
    $1.0$
    $1.5$
    $2.0$
    $2.5$
    $3.0$
    $3.5$
    $4.0$
    $4.5$
    1$ 2$ 3$ 4$ 1$ 2$ 3$ 4$ 1$
    2012$ 2013$ 2014$
    Billions'
    IT$Service$Management$
    Communica;on$Systems$
    Risk$&$Vulnerability$Management$
    Sustainability$&$Energy$Management$
    Content$Management$
    Digital$Adver;sing$
    Social$&$Collabora;on$
    Applica;on$Performance$&$Lifecycle$Mangement$
    Business$Intelligence$
    Authen;ca;on$
    ecommerce$Solu;ons$
    Sales$&$Marke;ng$
    Malware$&$Mobile$Security$
    Logis;cs$
    File$Sharing$
    Talent$Management$
    Analy;cs$PlaPorms$
    Many thanks to Kartik Sundar of
    quid.com for advice and support

    View Slide

  45. This is the year that
    Enterprises finally
    embraced cloud.

    View Slide

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

    View Slide

  47. What separates
    incumbents from
    disruptors?

    View Slide

  48. Assumptions

    View Slide

  49. Optimizations

    View Slide

  50. Two Examples

    View Slide

  51. Storage Systems

    View Slide

  52. Storage systems
    assume random
    reads are expensive

    View Slide

  53. SSD - RR is free
    Immutable writes
    Log-merge

    View Slide

  54. SSD packaging
    as disk, as PCI card
    as memory DIMM

    View Slide

  55. View Slide

  56. Traditional vs. Cloud Native
    Business
    Logic
    Database
    Master
    Fabric
    Storage
    Arrays
    Database
    Slave
    Fabric
    Storage
    Arrays

    View Slide

  57. Traditional vs. Cloud Native
    Business
    Logic
    Database
    Master
    Fabric
    Storage
    Arrays
    Database
    Slave
    Fabric
    Storage
    Arrays
    Business
    Logic
    Cassandra
    Zone A nodes
    Cassandra
    Zone B nodes
    Cassandra
    Zone C nodes
    Cloud Object
    Store Backups

    View Slide

  58. Traditional vs. Cloud Native
    Business
    Logic
    Database
    Master
    Fabric
    Storage
    Arrays
    Database
    Slave
    Fabric
    Storage
    Arrays
    Business
    Logic
    Cassandra
    Zone A nodes
    Cassandra
    Zone B nodes
    Cassandra
    Zone C nodes
    Cloud Object
    Store Backups
    SSDs inside
    arrays disrupt
    incumbent
    suppliers

    View Slide

  59. Traditional vs. Cloud Native
    Business
    Logic
    Database
    Master
    Fabric
    Storage
    Arrays
    Database
    Slave
    Fabric
    Storage
    Arrays
    Business
    Logic
    Cassandra
    Zone A nodes
    Cassandra
    Zone B nodes
    Cassandra
    Zone C nodes
    Cloud Object
    Store Backups
    SSDs inside
    ephemeral
    instances
    disrupt an
    entire industry
    SSDs inside
    arrays disrupt
    incumbent
    suppliers

    View Slide

  60. Traditional vs. Cloud Native
    Business
    Logic
    Database
    Master
    Fabric
    Storage
    Arrays
    Database
    Slave
    Fabric
    Storage
    Arrays
    Business
    Logic
    Cassandra
    Zone A nodes
    Cassandra
    Zone B nodes
    Cassandra
    Zone C nodes
    Cloud Object
    Store Backups
    SSDs inside
    ephemeral
    instances
    disrupt an
    entire industry
    SSDs inside
    arrays disrupt
    incumbent
    suppliers
    See also discussions about “Hyper-Converged” storage

    View Slide

  61. How to Scale Storage
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  62. How to Scale Storage
    Cassandra scalability
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  63. How to Scale Storage
    Cassandra scalability
    ● Linear scale up benchmarked and seen in production
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  64. How to Scale Storage
    Cassandra scalability
    ● Linear scale up benchmarked and seen in production
    ● Hundreds of nodes per cluster in common use today
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  65. How to Scale Storage
    Cassandra scalability
    ● Linear scale up benchmarked and seen in production
    ● Hundreds of nodes per cluster in common use today
    ● Thousands of nodes per cluster actively being tested and used
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  66. How to Scale Storage
    Cassandra scalability
    ● Linear scale up benchmarked and seen in production
    ● Hundreds of nodes per cluster in common use today
    ● Thousands of nodes per cluster actively being tested and used
    Cassandra scale using high end AWS storage instances
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  67. How to Scale Storage
    Cassandra scalability
    ● Linear scale up benchmarked and seen in production
    ● Hundreds of nodes per cluster in common use today
    ● Thousands of nodes per cluster actively being tested and used
    Cassandra scale using high end AWS storage instances
    ● EC2 i2.8xlarge - over 300,000 iops read or write, 6.4TB of SSD
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  68. How to Scale Storage
    Cassandra scalability
    ● Linear scale up benchmarked and seen in production
    ● Hundreds of nodes per cluster in common use today
    ● Thousands of nodes per cluster actively being tested and used
    Cassandra scale using high end AWS storage instances
    ● EC2 i2.8xlarge - over 300,000 iops read or write, 6.4TB of SSD
    ● 100 nodes = 30 million iops and 640 TB - Ludicrous
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  69. How to Scale Storage
    Cassandra scalability
    ● Linear scale up benchmarked and seen in production
    ● Hundreds of nodes per cluster in common use today
    ● Thousands of nodes per cluster actively being tested and used
    Cassandra scale using high end AWS storage instances
    ● EC2 i2.8xlarge - over 300,000 iops read or write, 6.4TB of SSD
    ● 100 nodes = 30 million iops and 640 TB - Ludicrous
    ● 1000 nodes = 300 million iops and 6.4 PB - Plaid!
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  70. How to Scale Storage
    Cassandra scalability
    ● Linear scale up benchmarked and seen in production
    ● Hundreds of nodes per cluster in common use today
    ● Thousands of nodes per cluster actively being tested and used
    Cassandra scale using high end AWS storage instances
    ● EC2 i2.8xlarge - over 300,000 iops read or write, 6.4TB of SSD
    ● 100 nodes = 30 million iops and 640 TB - Ludicrous
    ● 1000 nodes = 300 million iops and 6.4 PB - Plaid!
    http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

    View Slide

  71. Disruptor
    Cassandra on SSD

    View Slide

  72. Product
    Development

    View Slide

  73. Assumption:
    Process prevents
    problems

    View Slide

  74. 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

    View Slide

  75. 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

    View Slide

  76. 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

    View Slide

  77. 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

    View Slide

  78. Process Hand-Off Steps for
    Product Development on IaaS
    Product Manager
    Development Team
    QA Integration
    Team
    Operations Deploy
    Team
    BI Analytics Team

    View Slide

  79. IaaS Based Product
    Business Need
    • Documents
    • Weeks
    Software Development
    • Specifications
    • Weeks
    Deployment and Testing
    • Reports
    • Days
    Customer Feedback
    • It sucks!
    • Days

    View Slide

  80. IaaS Based Product
    Business Need
    • Documents
    • Weeks
    Software Development
    • Specifications
    • Weeks
    Deployment and Testing
    • Reports
    • Days
    Customer Feedback
    • It sucks!
    • Days
    etc…

    View Slide

  81. 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…

    View Slide

  82. 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…

    View Slide

  83. 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…

    View Slide

  84. Process Hand-Off Steps for
    Feature Development on PaaS
    Product Manager
    Developer
    BI Analytics Team

    View Slide

  85. PaaS Based Product
    Business Need
    • Discussions
    • Days
    Software Development
    • Code
    • Days
    Customer Feedback
    • Fix this Bit!
    • Hours
    etc…

    View Slide

  86. 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…

    View Slide

  87. 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…

    View Slide

  88. 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…

    View Slide

  89. SaaS Based Business Application
    Development
    Business Need
    •GUI Builder
    •Hours
    Customer Feedback
    •Fix this bit!
    •Seconds

    View Slide

  90. SaaS Based Business Application
    Development
    Business Need
    •GUI Builder
    •Hours
    Customer Feedback
    •Fix this bit!
    •Seconds
    and thousands more…

    View Slide

  91. What Happened?
    Rate of change
    increased
    Cost and size and
    risk of change
    reduced

    View Slide

  92. 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
    Measure
    Customers
    Continuous
    Delivery on
    Cloud

    View Slide

  93. 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
    INNOVATION
    Measure
    Customers
    Continuous
    Delivery on
    Cloud

    View Slide

  94. 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
    Measure
    Customers
    Continuous
    Delivery on
    Cloud

    View Slide

  95. 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 on
    Cloud

    View Slide

  96. 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 on
    Cloud

    View Slide

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

    View Slide

  98. Developer
    Developer
    Developer
    Developer
    Developer
    Old Release Still
    Running
    Release Plan
    Release Plan
    Release Plan
    Release Plan

    View Slide

  99. 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

    View Slide

  100. 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

    View Slide

  101. Disruptor
    Continuous
    Delivery

    View Slide

  102. It’s what you know that isn’t so…

    View Slide

  103. It’s what you know that isn’t so…
    ● Make your assumptions explicit

    View Slide

  104. It’s what you know that isn’t so…
    ● Make your assumptions explicit
    ● Extrapolate trends to the limit

    View Slide

  105. It’s what you know that isn’t so…
    ● Make your assumptions explicit
    ● Extrapolate trends to the limit
    ● Listen to non-customers

    View Slide

  106. It’s what you know that isn’t so…
    ● Make your assumptions explicit
    ● Extrapolate trends to the limit
    ● Listen to non-customers
    ● Follow developer adoption, not IT spend

    View Slide

  107. It’s what you know that isn’t so…
    ● Make your assumptions explicit
    ● Extrapolate trends to the limit
    ● Listen to non-customers
    ● Follow developer adoption, not IT spend
    ● Map evolution of products to services to utilities

    View Slide

  108. It’s what you know that isn’t so…
    ● Make your assumptions explicit
    ● Extrapolate trends to the limit
    ● Listen to non-customers
    ● Follow developer adoption, not IT spend
    ● Map evolution of products to services to utilities
    ● Re-organize your teams for speed of execution

    View Slide

  109. How do we get
    there?

    View Slide

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

    View Slide

  111. A Microservice Definition
    !
    Loosely coupled service oriented
    architecture with bounded contexts

    View Slide

  112. 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 can use ephemeral instances

    View Slide

  113. 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

    View Slide

  114. Open Source Ecosystems
    ● The most advanced, scalable and stable code you can get is OSS
    ● No procurement cycle, fix and extend it yourself
    ● Github is a developer’s online resume
    ● Github is also your company’s online resume!
    ● Extensible platforms create ecosystems
    ● Give up control to get ubiquity – Apache license
    !
    Innovate, Leverage and Commoditize

    View Slide

  115. Microservices Development
    ● Client libraries
    Even if you start with a raw protocol, a client side driver is the end-state
    Best strategy is to own your own client libraries from the start
    ● Multithreading and Non-blocking Calls
    Reactive model RxJava uses Observable to hide concurrency cleanly
    Netty can be used to get non-blocking I/O speedup over Tomcat container
    ● Circuit Breakers – See Fluxcapacitor.com for code
    NetflixOSS Hystrix, Turbine, Latency Monkey, Ribbon/Karyon
    Also look at Finagle/Zipkin from Twitter

    View Slide

  116. Microservice Datastores
    ● Book: Refactoring Databases
    SchemaSpy to examine schema structure
    Denormalization into one datasource per table or materialized view
    ● Polyglot Persistence
    Use a mixture of database technologies, behind REST data access layers
    See NetflixOSS Storage Tier as a Service HTTP (staash.com) for MySQL and C*
    ● CAP – Consistent or Available when Partitioned
    Look at Jepsen torture tests for common systems aphyr.com/tags/jepsen
    There is no such thing as a consistent distributed system, get over it…

    View Slide

  117. Cloud Native
    Monitoring and
    Microservices

    View Slide

  118. 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

    View Slide

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

    View Slide

  120. “Death Star” Architecture Diagrams
    As visualized by Appdynamics, Boundary.com and Twitter internal tools

    View Slide

  121. “Death Star” Architecture Diagrams
    Netflix Gilt Groupe (12 of 450) Twitter
    As visualized by Appdynamics, Boundary.com and Twitter internal tools

    View Slide

  122. 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

    View Slide

  123. 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

    View Slide

  124. NetflixOSS Hystrix / Turbine Circuit Breaker
    http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html

    View Slide

  125. NetflixOSS Hystrix / Turbine Circuit Breaker
    http://techblog.netflix.com/2012/12/hystrix-dashboard-and-turbine.html

    View Slide

  126. Low Latency SaaS Based Monitoring
    www.vividcortex.com and www.boundary.com

    View Slide

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

    View Slide

  128. Separation of Concerns


    Bounded Contexts

    View Slide

  129. Forward Thinking

    View Slide

  130. Forward Thinking

    View Slide

  131. Forward Thinking

    View Slide

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

    View Slide

  133. 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
    !
    ● QCon London - Microservices - March 2014 - Video available
    ● 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
    ● Structure - Cloud Trends June 19th, 2014 - Video available
    ● GOTO Copenhagen/Aarhus – Denmark – Sept 25th, 2014
    ● DevOps Enterprise Summit - San Francisco - Oct 21-23rd, 2014

    View Slide