Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Principles of microservices velocity

80.377 Aufrufe

Veröffentlicht am

Microservices are small services with independent lifecycles that work together. There is an underlying tension in that definition – how independent can you be when you have to be part of a whole? I’ve spent much of the last couple of years trying to understand how to find the right balance, and in this talk/tutorial I’ll be presenting the core seven principles that I think represent what makes microservices tick.

After a brief introduction of what microservices are and why they are important, we’ll spend the bulk of the time looking at the principles themselves, wherever possible covering real-world examples and technology:

- Modelled around business domain – using techniques from domain-driven design to find service boundaries leads to better team alignment and more stable service boundaries, avoiding expensive cross-service changes.
- Culture of automation – all organisations that use microservices at scale have strong cultures of automation. We’ll look at some of their stories and think about which sort of automation is key.
- Hide implementation details – how do you hide the detail inside each service to avoid coupling, and ensure each service retains its autonomous nature?
- Decentralize all the things! – we have to push power down as far as we can, and this goes for both the system and organisational architecture. We’ll look at everything from autonomous self-contained teams and internal open source, to using choreographed systems to handle long-lived business transactions.
- Deploy independently – this is all about being able to deploy safely. So we’ll cover everything from deployment models to consumer-driven contracts and the importance of separating deployment from release.
- Isolate failure – just making a system distributed doesn’t make it more stable than a monolithic application. So what do you need to look for?
- Highly observable – we need to understand the health of a single service, but also the whole ecosystem. How?

In terms of learning outcomes, beginners will get a sense of what microservices are and what makes them different, whereas more experienced practitioners will get insight and practical advice into how to implement them.

Veröffentlicht in: Business, Software
  • Download The Complete Lean Belly Breakthrough Program with Special Discount. ★★★ https://tinyurl.com/bkfitness4u
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Why is my hair falling out? 9 triggers of female hair loss ▲▲▲ https://tinyurl.com/y49r9d8j
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Boost your brainpower with brain pill! find out more...  https://tinyurl.com/brainpill101
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • 22lbs GONE in 13 days with this strange carb-pairing trick..  https://tinyurl.com/poundinc11
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • Discover How to Cure Acne At Any Age, Even If You�ve Tried Everything And Nothing Has Ever Worked For You Before Click Here ♣♣♣ http://t.cn/AiWGkfA8
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Principles of microservices velocity

  1. PRINCIPLES OF MICROSERVICES Sam Newman Velocity Santa Clara, May 2015 1
  2. @samnewman@velocityconf
  3. @samnewman@velocityconf Sam Newman Building Microservices DESIGNING FINE-GRAINED SYSTEMS
  4. @samnewman@velocityconf Accounts Returns Invoicing Shipping Inventory Customer Service
  5. @samnewman@velocityconf Accounts Returns Invoicing Shipping Inventory Customer Service Small Autonomous services that work together
  6. @samnewman@velocityconf 5 Show Gilt, Groupon, Netflix, Amazon
  7. @samnewman@velocityconf 5 Show Gilt, Groupon, Netflix, Amazon
  8. @samnewman@velocityconf 5 Show Gilt, Groupon, Netflix, Amazon
  9. @samnewman@velocityconf
  10. @samnewman@velocityconf http://www.12factor.net/
  11. @samnewman@velocityconf Strategic Goals Architectural Principles Design and Delivery Practices Enable scalable business More customers/transactions Self-service for customers Support entry into new markets Flexible operational processes New products and operational processes Support innovation in existing markets Flexible operational processes New products and operational processes Reduce inertia Make choices that favour rapid feedback and change, with reduced dependencies across teams. Eliminate accidental complexity Aggressively retire and replace unnecessarily complex processes, systems, and integrations so that we can focus on the essential complexity. Consistent interfaces and data flows Eliminate duplication of data and create clear systems of record, with consistent integration interfaces. No silver bullets Off the shelf solutions deliver early value but create inertia and accidental complexity. Standard REST/HTTP Encapsulate legacy Eliminate integration databases Consolidate and cleanse data Published integration model Small independent Services Continuous deployment Minimal customisation of COTS/SAAS
  12. @samnewman@velocityconf Small Autonomous services that work together
  13. @samnewman@velocityconf 10 Principles Of Microservices
  14. @samnewman@velocityconf 10 Principles Of Microservices Modelled Around Business Domain
  15. @samnewman@velocityconf 10 Principles Of Microservices Modelled Around Business Domain Culture Of Automation
  16. @samnewman@velocityconf 10 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details
  17. @samnewman@velocityconf 10 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things
  18. @samnewman@velocityconf 10 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Deploy Independently
  19. @samnewman@velocityconf 10 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Deploy Independently Consumer First
  20. @samnewman@velocityconf 10 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Consumer First
  21. @samnewman@velocityconf 10 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Highly Observable Consumer First
  22. @samnewman@velocityconf 10 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Highly Observable Consumer First
  23. @samnewman@velocityconf Presentation Business Logic Data Access
  24. @samnewman@velocityconf Presentation Business Logic Data Access
  25. @samnewman@velocityconf Presentation Business Logic Data Access
  26. @samnewman@velocityconf Accounts Returns Invoicing Shipping Inventory Customer Service
  27. @samnewman@velocityconf Accounts Returns Invoicing Shipping Inventory Customer Service
  28. @samnewman@velocityconf Accounts Returns Invoicing Shipping Inventory Customer Service
  29. @samnewman@velocityconf Accounts Returns Invoicing Shipping Inventory Customer Service
  30. @samnewman@velocityconf Accounts Returns Invoicing Shipping Inventory Customer Service
  31. 13https://www.flickr.com/photos/glimeend/5692801655/
  32. 14
  33. 14 Register a new customer
  34. 14 Register a new customer Oil Change
  35. 14 Register a new customer Emission Test Oil Change
  36. 14 Register a new customer Emission Test Replace Tire Oil Change
  37. 14 Register a new customer Order parts Emission Test Replace Tire Oil Change
  38. 14 Register a new customer Order parts Emission Test Replace Tire Oil Change Send an invoice
  39. 14 Register a new customer Order parts Emission Test Replace Tire Oil Change Send an invoice Make a repair
  40. 14 Register a new customer Order parts Emission Test Replace Tire Oil Change Send an invoice Make a repair Contact a customer
  41. 14 Register a new customer Order parts Emission TestReplace Tire Oil Change Send an invoice Make a repair Contact a customer
  42. 15 Customer Management Maintenance Inventory
  43. @samnewman@velocityconf
  44. @samnewman@velocityconf 17 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Highly Observable ✔ Consumer First
  45. @samnewman@velocityconf 17 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Highly Observable ✔ Consumer First
  46. @samnewman@velocityconf
  47. @samnewman@velocityconf 3 Months 2 Microservices
  48. @samnewman@velocityconf 3 Months 2 Microservices 12 Months 10 Microservices
  49. @samnewman@velocityconf 3 Months 2 Microservices 12 Months 10 Microservices 18 Months 60 Microservices
  50. @samnewman@velocityconf Infrastructure Automation
  51. @samnewman@velocityconf Infrastructure Automation Automated Testing
  52. @samnewman@velocityconf Infrastructure Automation Continuous Delivery Automated Testing
  53. @samnewman@velocityconf 20 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Highly Observable ✔ ✔ Consumer First
  54. @samnewman@velocityconf 20 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Highly Observable ✔ ✔ Consumer First
  55. @samnewman@velocityconf DB
  56. @samnewman@velocityconf DB
  57. @samnewman@velocityconf DB
  58. @samnewman@velocityconf DB
  59. @samnewman@velocityconf DB HIDE YOUR DATABASE
  60. @samnewman@velocityconf http://martinfowler.com/bliki/images/boundedContext/sketch.png
  61. @samnewman@velocityconf http://martinfowler.com/bliki/images/boundedContext/sketch.png BOUNDED CONTEXTS
  62. @samnewman@velocityconf
  63. @samnewman@velocityconf
  64. @samnewman@velocityconf Client LibraryClient LibraryClient Library
  65. @samnewman@velocityconf Client Library Client Library Client Library
  66. @samnewman@velocityconf Client Library Client Library Client Library
  67. @samnewman@velocityconf Client Library BE CAREFUL OF CLIENT LIBRARIES Client Library Client Library
  68. @samnewman@velocityconf 24 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Highly Observable ✔ ✔ ✔ Consumer First
  69. @samnewman@velocityconf 24 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Highly Observable ✔ ✔ ✔ Consumer First
  70. @samnewman@velocityconf
  71. @samnewman@velocityconf What is autonomy?
  72. @samnewman@velocityconf What is autonomy? Giving people as much freedom as possible to do the job at hand
  73. @samnewman@velocityconf What is autonomy? Giving people as much freedom as possible to do the job at hand
  74. @samnewman@velocityconf DEVOLUTION?
  75. @samnewman@velocityconf SELF-SERVICE https://www.flickr.com/photos/katsrcool/15184711908/
  76. @samnewman@velocityconf http://tech.gilt.com/post/102628539834/making-architecture-work-in-microservice SHARED GOVERNANCE
  77. @samnewman@velocityconf OWNER-OPERATOR https://www.flickr.com/photos/stevendepolo/5939055612
  78. @samnewman@velocityconf INTERNAL OPEN SOURCE
  79. @samnewman@velocityconf DUMB-PIPES, SMART ENDPOINTS Magical Mystery Bus
  80. @samnewman@velocityconf Magical Mystery Bus
  81. @samnewman@velocityconf
  82. @samnewman@velocityconf Customer Enrolment
  83. @samnewman@velocityconf Create Customer Record Customer Enrolment
  84. @samnewman@velocityconf Create Customer Record Customer Enrolment Create Loyalty Account
  85. @samnewman@velocityconf Create Customer Record Customer Enrolment Dispatch Welcome Pack Create Loyalty Account
  86. @samnewman@velocityconf Create Customer Record Customer Enrolment Dispatch Welcome Pack Create Loyalty Account Send Welcome Email
  87. @samnewman@velocityconf Create Customer Record Customer Enrolment Dispatch Welcome Pack Create Loyalty Account Send Welcome Email Completed
  88. @samnewman@velocityconf ORCHESTRATION
  89. @samnewman@velocityconf Customer Service create ORCHESTRATION
  90. @samnewman@velocityconf Customer Service create Loyalty Bank create ORCHESTRATION
  91. @samnewman@velocityconf Customer Service create Loyalty Bank create Email send email ORCHESTRATION
  92. @samnewman@velocityconf Customer Service create Loyalty Bank create Email send email Whitemail send package ORCHESTRATION
  93. @samnewman@velocityconf CHOREOGRAPHED
  94. @samnewman@velocityconf CHOREOGRAPHED Customer Service create
  95. @samnewman@velocityconf CHOREOGRAPHED Customer Service create customer created
  96. @samnewman@velocityconf CHOREOGRAPHED Customer Service create customer created Loyalty Bank
  97. @samnewman@velocityconf CHOREOGRAPHED Customer Service create customer created Loyalty Bank Email
  98. @samnewman@velocityconf CHOREOGRAPHED Customer Service create customer created Loyalty Bank Email Whitemail
  99. @samnewman@velocityconf CHOREOGRAPHED Customer Service create customer created Loyalty Bank Email Whitemail Reporting Dashboard
  100. @samnewman@velocityconf
  101. @samnewman@velocityconf CHOREOGRAPHY OVER ORCHESTRATION
  102. @samnewman@velocityconf 38 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Isolate Failure Deploy Independently Highly Observable ✔ ✔ ✔ Decentralise All The Things ✔ Consumer First
  103. @samnewman@velocityconf 38 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Isolate Failure Deploy Independently Highly Observable ✔ ✔ ✔ Decentralise All The Things ✔ Consumer First
  104. @samnewman@velocityconf ONE SERVICE PER-HOST Host Service
  105. @samnewman@velocityconf ONE SERVICE PER-HOST Host Service Host Service Service Service Service VS
  106. @samnewman@velocityconf CONSUMER-DRIVEN CONTRACTS Shipping Inventory
  107. @samnewman@velocityconf CONSUMER-DRIVEN CONTRACTS Expectations Shipping Inventory
  108. @samnewman@velocityconf CONSUMER-DRIVEN CONTRACTS Expectations Shipping Inventory
  109. @samnewman@velocityconf CONSUMER-DRIVEN CONTRACTS Expectations Prod Shipping Inventory
  110. @samnewman@velocityconf CONSUMER-DRIVEN CONTRACTS Expectations Prod Shipping Inventory
  111. @samnewman@velocityconf https://github.com/realestate-com-au/pact
  112. @samnewman@velocityconf CO-EXIST ENDPOINTS Customer Service Shipping
  113. @samnewman@velocityconf CO-EXIST ENDPOINTS Customer Service Shipping V2V1
  114. @samnewman@velocityconf CO-EXIST ENDPOINTS Customer Service Shipping V2V1
  115. @samnewman@velocityconf CO-EXIST ENDPOINTS Customer Service Shipping V2
  116. @samnewman@velocityconf 43 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Isolate Failure Highly Observable ✔ ✔ ✔ Decentralise All The Things ✔ Deploy Independently✔ Consumer First
  117. @samnewman@velocityconf 43 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Isolate Failure Highly Observable ✔ ✔ ✔ Decentralise All The Things ✔ Deploy Independently✔Consumer First
  118. @samnewman@velocityconf DOCUMENTATION
  119. @samnewman@velocityconf
  120. @samnewman@velocityconf API GATEWAYS
  121. @samnewman@velocityconf SERVICE DISCOVERY
  122. @samnewman@velocityconf SERVICE DISCOVERY
  123. @samnewman@velocityconf SERVICE DISCOVERY
  124. @samnewman@velocityconf HUMANE REGISTRIES
  125. @samnewman@velocityconf 49 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Isolate Failure Highly Observable ✔ ✔ ✔ Decentralise All The Things ✔ Deploy Independently✔ Consumer First✔
  126. @samnewman@velocityconf 49 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Isolate Failure Highly Observable ✔ ✔ ✔ Decentralise All The Things ✔ Deploy Independently✔ Consumer First✔
  127. @samnewman@velocityconf
  128. @samnewman@velocityconf
  129. @samnewman@velocityconf
  130. @samnewman@velocityconf
  131. @samnewman@velocityconf
  132. @samnewman@velocityconf AVOID THE DISTRIBUTED SINGLE POINT OF FAILURE!
  133. @samnewman@velocityconf Strangler App
  134. @samnewman@velocityconf Strangler App Legacy App Legacy AppLegacy App
  135. @samnewman@velocityconf Strangler App Legacy App Legacy App Requests Legacy App
  136. @samnewman@velocityconf Strangler App Legacy App Legacy App Requests Legacy App
  137. @samnewman@velocityconf Strangler App Legacy App Legacy App Requests Legacy App
  138. @samnewman@velocityconf Strangler App Legacy App Legacy App Requests Legacy App 30 - 60 Concurrent Requests
  139. @samnewman@velocityconf Strangler App Legacy App Legacy App Requests Legacy App 30 - 60 Concurrent Requests > 800 Concurrent Requests
  140. @samnewman@velocityconf Strangler App Legacy App Legacy App Requests Legacy App 30 - 60 Concurrent Requests > 800 Concurrent Requests
  141. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Thread Pool
  142. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Thread Pool Failing…slowly!
  143. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Thread Pool Failing…slowly!
  144. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Thread Pool Failing…slowly! Thread-pool exhausted
  145. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Thread Pool Failing…slowly! Thread-pool exhausted No requests to other downstream apps
  146. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Thread Pool Failing…slowly! Thread-pool exhausted No requests to other downstream apps
  147. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Thread Pool Failing…slowly! Thread-pool exhausted Requests Building Up No requests to other downstream apps
  148. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Thread Pool
  149. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Fix Timeouts Thread Pool
  150. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Fix Timeouts Thread Pool
  151. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Fix Timeouts Thread Pool Thread PoolThread Pool
  152. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Fix Timeouts Thread Pool Thread PoolThread Pool Bulkhead Downstream Connections
  153. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Fix Timeouts Thread Pool Thread PoolThread Pool Bulkhead Downstream Connections
  154. @samnewman@velocityconf Strangler App Legacy App Legacy App Legacy App Fix Timeouts Thread Pool Thread PoolThread Pool Bulkhead Downstream Connections Circuit Breakers
  155. @samnewman@velocityconf 55 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Highly Observable ✔ ✔ ✔ Decentralise All The Things ✔ Deploy Independently✔ Isolate Failure✔ Consumer First✔
  156. @samnewman@velocityconf 55 Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Highly Observable ✔ ✔ ✔ Decentralise All The Things ✔ Deploy Independently✔ Isolate Failure✔ Consumer First✔
  157. @samnewman@velocityconf
  158. @samnewman@velocityconf STATS PAGES
  159. @samnewman@velocityconf STATS PAGES
  160. @samnewman@velocityconf AGGREGATION
  161. @samnewman@velocityconf LOGS AGGREGATION
  162. @samnewman@velocityconf LOGS STATS AGGREGATION
  163. @samnewman@velocityconf CORRELATION IDS
  164. @samnewman@velocityconf CORRELATION IDS ID 8964
  165. @samnewman@velocityconf CORRELATION IDS ID 8964 ID 8964 ID 8964 ID 8964 ID 8964
  166. @samnewman@velocityconf
  167. @samnewman@velocityconf
  168. @samnewman@velocityconf
  169. @samnewman@velocityconf SEMANTIC MONITORING
  170. @samnewman@velocityconf
  171. @samnewman@velocityconf Principles Of Microservices
  172. @samnewman@velocityconf Principles Of Microservices Modelled Around Business Domain
  173. @samnewman@velocityconf Principles Of Microservices Modelled Around Business Domain Culture Of Automation
  174. @samnewman@velocityconf Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details
  175. @samnewman@velocityconf Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things
  176. @samnewman@velocityconf Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Deploy Independently
  177. @samnewman@velocityconf Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Deploy Independently Consumer First
  178. @samnewman@velocityconf Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Consumer First
  179. @samnewman@velocityconf Principles Of Microservices Modelled Around Business Domain Culture Of Automation Hide Implementation Details Decentralise All The Things Isolate Failure Deploy Independently Highly Observable Consumer First
  180. @samnewman@velocityconf Sam Newman Building Microservices DESIGNING FINE-GRAINED SYSTEMS http://buildingmicroservices.com/
  181. @samnewman@velocityconf Office Hours
  182. @samnewman@velocityconf Office Hours (well, 30mins)
  183. @samnewman@velocityconf Office Hours 12.30pm on Thursday (well, 30mins)
  184. @samnewman@velocityconf http://lanyrd.com/profile/samnewman/
  185. Sam Newman @samnewman THANKS!

×