Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rip It Up - The Microservice Organisation

296 views

Published on

Much of the attention for microservice architectures tends to focus on the technical aspects. But when you look into the details of organisations that have benefited from this approach you realise that there is more to getting the most out of microservices than lots of shinny new technology.

In this talk, I show how organisational structures and team responsibilities may need to change if you want to get the most out of adopting a microservice architecture. Looking at traditional IT structures and comparing them with the modern autonomous delivery teams, he’ll explore how to get the organisation and architecture working well together. From Conway's law, to Dunbar's number and two pizza teams, you'll see how you can start to apply these ideas inside your own company.

Published in: Software
  • Be the first to comment

Rip It Up - The Microservice Organisation

  1. 1. RIP IT UP AND START AGAIN? Sam Newman THE MICROSERVICES ORGANISATION
  2. 2. @samnewman Sam Newman Building Microservices DESIGNING FINE-GRAINED SYSTEMS
  3. 3. @samnewman NEW BOOK! https://samnewman.io/books/monolith-to-microservices/
  4. 4. @samnewman Inventory Returns Invoicing Accounts Customer Service Shipping
  5. 5. @samnewman Inventory Returns Invoicing Accounts Customer Service Shipping
  6. 6. @samnewman Inventory Returns Invoicing Accounts Customer Service Shipping Independently deployable services that work together, modelled around a business domain
  7. 7. @samnewman Independently deployable services that work together, modelled around a business domain
  8. 8. @samnewman Independently deployable services that work together, modelled around a business domain
  9. 9. Inventory Returns Invoicing Accounts Customer Service Shipping V1
  10. 10. Inventory Returns Invoicing Accounts Customer Service Shipping V2
  11. 11. @samnewman Music Corp
  12. 12. @samnewman Music Corp Persistence
  13. 13. @samnewman Music Corp Persistence
  14. 14. @samnewman Music Corp Persistence
  15. 15. @samnewman Music Corp Persistence
  16. 16. @samnewman Music Corp Persistence
  17. 17. @samnewman Music Corp Persistence Low Cohesion
  18. 18. @samnewman Music Corp Persistence Low Cohesion
  19. 19. @samnewman Music Corp Persistence Low Cohesion High Coupling
  20. 20. @samnewman Music Corp Persistence Low Cohesion High Coupling
  21. 21. @samnewman ONION ARCHITECTURE Music Corp Persistence Low Cohesion High Coupling
  22. 22. @samnewman 3 TIERED ARCHITECTURE
  23. 23. @samnewman 3 TIERED ARCHITECTURE Presentation
  24. 24. @samnewman 3 TIERED ARCHITECTURE Presentation Business
  25. 25. @samnewman 3 TIERED ARCHITECTURE Presentation Business Data Access
  26. 26. @samnewman 3 TIERED ARCHITECTURE Presentation Business Data Access FE Devs
  27. 27. @samnewman 3 TIERED ARCHITECTURE Presentation Business Data Access Devs FE Devs
  28. 28. @samnewman 3 TIERED ARCHITECTURE Presentation Business Data Access Devs DBAs FE Devs
  29. 29. @samnewman TRADITIONAL IT STRUCTURES Devs QAs DBAs Ops
  30. 30. @samnewman TRADITIONAL IT STRUCTURES Devs QAs DBAs Ops
  31. 31. @samnewman TRADITIONAL IT STRUCTURES Devs QAs DBAs Ops CIO/CTO
  32. 32. @samnewman TRADITIONAL IT STRUCTURES Devs QAs DBAs Ops CIO/CTO “The Business”
  33. 33. @samnewman CONWAY’S LAW
  34. 34. @samnewman CONWAY’S LAW "Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations" - Melvin Conway
  35. 35. @samnewman FEATURE-BASED TEAMS Presentation Business Data Access
  36. 36. @samnewman FEATURE-BASED TEAMS Presentation Business Data Access
  37. 37. @samnewman FEATURE-BASED TEAMS Presentation Business Data Access
  38. 38. @samnewman FEATURE-BASED TEAMS Presentation Business Data Access Devs DBAs FE Devs
  39. 39. @samnewman FEATURE-BASED TEAMS Presentation Business Data Access Devs DBAs FE Devs Contention
  40. 40. @samnewman FEATURE-BASED TEAMS Presentation Business Data Access Devs DBAs FE Devs Contention Temporary Teams?
  41. 41. @samnewman Feature-based teams = collective ownership
  42. 42. @samnewman SPLIT DIFFERENTLY Presentation Business Data Access Presentation Business Data Access Presentation Business Data Access
  43. 43. @samnewman FASTER DELIVERY Inventory Returns Invoicing Accounts Customer Service Shipping
  44. 44. @samnewman FASTER DELIVERY Inventory Returns Invoicing Accounts Customer Service Shipping
  45. 45. @samnewman FASTER DELIVERY Inventory Returns Invoicing Accounts Customer Service Shipping
  46. 46. @samnewman FASTER DELIVERY Inventory Returns Invoicing Accounts Customer Service Shipping
  47. 47. @samnewman CODE OWNERSHIP https://martinfowler.com/bliki/CodeOwnership.html
  48. 48. @samnewman CODE OWNERSHIP https://martinfowler.com/bliki/CodeOwnership.html Strong
  49. 49. @samnewman CODE OWNERSHIP https://martinfowler.com/bliki/CodeOwnership.html Strong Weak
  50. 50. @samnewman CODE OWNERSHIP https://martinfowler.com/bliki/CodeOwnership.html Strong Weak Collective
  51. 51. @samnewman COLLECTIVE OWNERSHIP? Accounts Returns Invoicing Shipping Inventory User Service
  52. 52. @samnewman COLLECTIVE OWNERSHIP? Accounts Returns Invoicing Shipping Inventory User Service
  53. 53. @samnewman COLLECTIVE OWNERSHIP? Accounts Returns Invoicing Shipping Inventory User Service
  54. 54. @samnewman COLLECTIVE OWNERSHIP? Accounts Returns Invoicing Shipping Inventory User Service Flexible working
  55. 55. @samnewman COLLECTIVE OWNERSHIP? Accounts Returns Invoicing Shipping Inventory User Service Retaining product and technical alignment? Flexible working
  56. 56. @samnewman COLLECTIVE OWNERSHIP? Accounts Returns Invoicing Shipping Inventory User Service Retaining product and technical alignment? Flexible working Business alignment?
  57. 57. @samnewman COLLECTIVE OWNERSHIP? Accounts Returns Invoicing Shipping Inventory User Service Retaining product and technical alignment? Flexible working Business alignment? Co-ordination!
  58. 58. @samnewman COLLECTIVE OWNERSHIP? Accounts Returns Invoicing Shipping Inventory User Service Retaining product and technical alignment? Flexible working Business alignment? Scale? Co-ordination!
  59. 59. @samnewman SERVICES OWNED BY TEAMS Accounts Returns Invoicing Shipping Inventory User Service
  60. 60. @samnewman SERVICES OWNED BY TEAMS Accounts Returns Invoicing Shipping Inventory User Service
  61. 61. @samnewman SERVICES OWNED BY TEAMS Accounts Returns Invoicing Shipping Inventory User Service
  62. 62. @samnewman SERVICES OWNED BY TEAMS Accounts Returns Invoicing Shipping Inventory User Service Clear lines of ownership
  63. 63. @samnewman SERVICES OWNED BY TEAMS Accounts Returns Invoicing Shipping Inventory User Service Clear lines of ownership Increased autonomy
  64. 64. @samnewman SERVICES OWNED BY TEAMS Accounts Returns Invoicing Shipping Inventory User Service Clear lines of ownership Increased autonomy Easier to align to the business
  65. 65. @samnewman SERVICES OWNED BY TEAMS Accounts Returns Invoicing Shipping Inventory User Service Clear lines of ownership Increased autonomy Easier to align to the business Bottlenecks?
  66. 66. @samnewman SERVICES OWNED BY TEAMS Accounts Returns Invoicing Shipping Inventory User Service Clear lines of ownership Increased autonomy Easier to align to the business Bottlenecks? Orphaned Services?
  67. 67. @samnewman SERVICES OWNED BY TEAMS Accounts Returns Invoicing Shipping Inventory User Service Clear lines of ownership Increased autonomy Easier to align to the business Bottlenecks? Orphaned Services? Local vs Global Optimisation?
  68. 68. @samnewman Collective code ownership struggles with scale
  69. 69. @samnewman Collective Ownership Strong Ownership
  70. 70. @samnewman Collective Ownership Strong Ownership
  71. 71. @samnewman Collective Ownership Strong Ownership Global consistency
  72. 72. @samnewman Collective Ownership Strong Ownership Global consistency Local optimisation
  73. 73. @samnewman Independent Deployablility
  74. 74. @samnewman STEVE YEGGE’S PLATFORM RANT https://plus.google.com/+RipRowan/posts/eVeouesvaVX
  75. 75. @samnewman STEVE YEGGE’S PLATFORM RANT “All teams will henceforth expose their data and functionality through service interfaces” https://plus.google.com/+RipRowan/posts/eVeouesvaVX
  76. 76. @samnewman STEVE YEGGE’S PLATFORM RANT “All teams will henceforth expose their data and functionality through service interfaces” “Teams must communicate with each other through these interfaces” https://plus.google.com/+RipRowan/posts/eVeouesvaVX
  77. 77. @samnewman
  78. 78. @samnewman Amazon prioritises local optimisation
  79. 79. APIs
  80. 80. APIs Co-ordination
  81. 81. Shipping V2 DB
  82. 82. Shipping V2 DB
  83. 83. Shipping V2 DB
  84. 84. Shipping V2 DB
  85. 85. Shipping V2 DB
  86. 86. Shipping V2 DB
  87. 87. @samnewman PROBLEMS WITH DEFINED OWNERSHIP BOUNDARIES Accounts Returns Invoicing Shipping Inventory User Service Bottlenecks
  88. 88. @samnewman PROBLEMS WITH DEFINED OWNERSHIP BOUNDARIES Accounts Returns Invoicing Shipping Inventory User Service Bottlenecks Orphaned Services
  89. 89. @samnewman PROBLEMS WITH DEFINED OWNERSHIP BOUNDARIES Accounts Returns Invoicing Shipping Inventory User Service Bottlenecks Orphaned Services Local Optimisation
  90. 90. @samnewman BOTTLENECKS Inventory Returns Invoicing Accounts Customer Service Shipping
  91. 91. @samnewman BOTTLENECKS Inventory Returns Invoicing Accounts Customer Service Shipping
  92. 92. @samnewman BOTTLENECKS Inventory Returns Invoicing Accounts Customer Service Shipping
  93. 93. @samnewman BOTTLENECKS Inventory Returns Invoicing Accounts Customer Service Shipping Move People
  94. 94. @samnewman BOTTLENECKS Inventory Returns Invoicing Accounts Customer Service Shipping Move People
  95. 95. @samnewman BOTTLENECKS Inventory Returns Invoicing Accounts Customer Service Shipping Move People Pull Request
  96. 96. @samnewman BOTTLENECKS Inventory Returns Invoicing Accounts Customer Service Shipping Move People Pull Request
  97. 97. @samnewman ORPHANED SERVICES Inventory Returns Invoicing Accounts Customer Service Shipping
  98. 98. @samnewman ORPHANED SERVICES Inventory Returns Invoicing Accounts Customer Service Shipping
  99. 99. @samnewman ORPHANED SERVICES Inventory Returns Invoicing Accounts Customer Service Shipping ???
  100. 100. @samnewman ORPHANED SERVICES Inventory Returns Invoicing Accounts Customer Service Shipping ??? Take Ownership
  101. 101. @samnewman ORPHANED SERVICES Inventory Returns Invoicing Accounts Customer Service Shipping ??? Take Ownership
  102. 102. @samnewman ORPHANED SERVICES Inventory Returns Invoicing Accounts Customer Service Shipping ??? Take Ownership Roving Custodian
  103. 103. @samnewman ORPHANED SERVICES Inventory Returns Invoicing Accounts Customer Service Shipping ??? Take Ownership Roving Custodian
  104. 104. @samnewman ORPHANED SERVICES Inventory Returns Invoicing Accounts Customer Service Shipping ??? Take Ownership Roving Custodian
  105. 105. @samnewman LOCAL OPTIMISATION Inventory Returns Invoicing Accounts Customer Service Shipping
  106. 106. @samnewman LOCAL OPTIMISATION Inventory Returns Invoicing Accounts Customer Service Shipping Mongo!
  107. 107. @samnewman LOCAL OPTIMISATION Inventory Returns Invoicing Accounts Customer Service Shipping Mongo! Oracle!
  108. 108. @samnewman LOCAL OPTIMISATION Inventory Returns Invoicing Accounts Customer Service Shipping Mongo! Oracle! Cassandra!
  109. 109. @samnewman LOCAL OPTIMISATION Inventory Returns Invoicing Accounts Customer Service Shipping Mongo! Oracle! Cassandra!
  110. 110. @samnewman LOCAL OPTIMISATION Inventory Returns Invoicing Accounts Customer Service Shipping Mongo! Oracle! Cassandra! Communities Of Practice
  111. 111. @samnewman LOCAL OPTIMISATION Inventory Returns Invoicing Accounts Customer Service Shipping Mongo! Oracle! Cassandra! Communities Of Practice Governance
  112. 112. @samnewman RIP IT UP AND START AGAIN? “And there was times I'd take my pen And feel obliged to start again” - Orange Juice
  113. 113. @samnewman Local vs Global Optimisation
  114. 114. @samnewman Microservices are an architecture which optimises for autonomy You have to decide how much autonomy you want
  115. 115. @samnewman THANKS! https://samnewman.io/

×