building systems that pivot
play

BUILDING SYSTEMS THAT PIVOT Sam Newman Zhamak Dehghani @zhamakd - PowerPoint PPT Presentation

BUILDING SYSTEMS THAT PIVOT Sam Newman Zhamak Dehghani @zhamakd @samnewman DO YOU HAVE AN ARCHITECTURE PROBLEM? < 30% DO YOU HAVE AN ARCHITECTURE PROBLEM? Overhead of releasing a large software < 30% DO YOU HAVE AN ARCHITECTURE


  1. BUILDING SYSTEMS THAT PIVOT Sam Newman ¡ Zhamak Dehghani @zhamakd @samnewman

  2. DO YOU HAVE AN ARCHITECTURE PROBLEM? < 30%

  3. DO YOU HAVE AN ARCHITECTURE PROBLEM? Overhead of releasing a large software < 30%

  4. DO YOU HAVE AN ARCHITECTURE PROBLEM? Infrequent releases when orchestrating many dependent teams < 30% Large software release

  5. DO YOU HAVE AN ARCHITECTURE PROBLEM? High risk release with untested dependencies Multiple teams orchestration < 30% Large software release

  6. DO YOU HAVE AN ARCHITECTURE PROBLEM? ARCHITECTURE Untested system PROBLEM! dependencies Multiple teams orchestration < 30% Large software release

  7. A LONG AND BROKEN DIALOGUE < 30%

  8. A LONG AND BROKEN DIALOGUE 6 Months >50 % < 30%

  9. A LONG AND BROKEN DIALOGUE 6 Months <30 % >50 % < 30%

  10. AGENDA ELEMENTS OF ARCHITECTURE Off-the-shelf What is Microservices Architecture Integration • Integration benefits ¡ Bespoke • � How to implement a Microservices architecture ¡ Integration Off-the-shelf • � Integration How to operate a Microservices architecture • Bespoke

  11. CONTINUOUS DELIVERY AS AN ENABLER

  12. CONTINUOUS DELIVERY AS AN ENABLER • automated build

  13. CONTINUOUS DELIVERY AS AN ENABLER • automated build • automated deployment

  14. CONTINUOUS DELIVERY AS AN ENABLER • automated build • automated deployment • automated environment provisioning

  15. CONTINUOUS DELIVERY AS AN ENABLER • automated build • automated deployment • automated environment provisioning • automated testing

  16. CONTINUOUS DELIVERY AS AN ENABLER • automated build • automated deployment • automated environment provisioning Threshold without • automated testing S P E E D O F D E L I V E R Y changing architecture C D M AT U R I T Y L E V E L

  17. ARCHITECTURE

  18. MONOLITHIC SYSTEM

  19. MONOLITHIC SYSTEM

  20. LAYERED/TIERED ARCHITECTURE User Interface Channels ¡ Application Business Logic & Rules Middleware ¡ Services platform Database Systems of Record

  21. LAYERED/TIERED ARCHITECTURE User Interface Channels ¡ Application Business Logic & Rules Middleware ¡ Services platform Database Systems of Record

  22. CHALLENGES OF THE TIERED ARCHITECTURE

  23. CHALLENGES OF THE TIERED ARCHITECTURE Compromised quality to satisfy the user

  24. CHALLENGES OF THE TIERED ARCHITECTURE Compromised quality to satisfy the user

  25. CHALLENGES OF THE TIERED ARCHITECTURE Compromised quality to satisfy the user

  26. CHALLENGES OF THE TIERED ARCHITECTURE Compromised quality to satisfy the user Longer release cycle

  27. FINE-GRAINED ARCHITECTURE

  28. FINE-GRAINED ARCHITECTURE Broken down based on vertical business functions

  29. FINE-GRAINED ARCHITECTURE Technology layers are encapsulated Inside each service

  30. A THOUGHT EXPERIMENT Integration MICRO SERVICES Off-the-shelf

  31. A THOUGHT EXPERIMENT Integration MICRO SERVICES Off-the-shelf • Independently releasable • Business capability • Language agnostic API

  32. A THOUGHT EXPERIMENT Integration MICRO SERVICES Off-the-shelf • Small • Independently releasable • 100s, not 1000s • Business capability • Language agnostic API

  33. AUTONOMY

  34. AUTONOMY

  35. ABSORBS TECHNOLOGY FASTER Java [Graph Database] [Document Storage] Clojure .NET [SQL Database]

  36. COMPOSE-ABILITY

  37. COMPOSE-ABILITY

  38. COMPOSE-ABILITY

  39. COMPOSE-ABILITY

  40. COMPOSE-ABILITY REPLACABILITY

  41. ELEMENTS OF ARCHITECTURE Off-the-shelf Integration Integration Bespoke HOW TO IMPLEMENT MICROSERVICES Integration Off-the-shelf Integration Bespoke

  42. BOUNDARIES

  43. SPLITTING

  44. SPLITTING Speed of change

  45. SPLITTING Security Speed of change

  46. SPLITTING Security Speed of change Team Structure

  47. CAN I RELEASE THEM SEPARATELY ?

  48. COUPLING THROUGH DATABASE CUSTOMER ORDERS

  49. COUPLING THROUGH DATABASE CUSTOMER ORDERS

  50. COUPLING THROUGH DATABASE CUSTOMER ORDERS

  51. COUPLING THROUGH ENTERPRISE SERVICE BUS Smart & Complex Integration System

  52. COUPLING THROUGH ENTERPRISE SERVICE BUS

  53. MICROSERVICES INTEGRATION

  54. MICROSERVICES INTEGRATION Smart Service & ¡ Endpoint Simple & Dumb ¡ Integration Programming language agnostic ¡ Open standards ¡ HTTP/SON

  55. CUSTOMER ORDERS HOW TO OPERATE MICROSERVICES

  56. CUSTOMER ORDERS WHAT ABOUT SOA? HOW TO OPERATE MICROSERVICES

  57. CUSTOMER ORDERS HOW TO OPERATE MICROSERVICES

  58. CUSTOMER ORDERS OR OSGI? HOW TO OPERATE MICROSERVICES

  59. HOW TO OPERATE MICROSERVICES

  60. AUTOMATE! ¡ AUTOMATE! ¡ AUTOMATE!

  61. AUTOMATION

  62. AUTOMATION Build Test

  63. AUTOMATION Build Test Integration

  64. AUTOMATION Build Test Integration Acceptance

  65. AUTOMATION Build Test Integration Acceptance Production

  66. MICROSERVICES AUTOMATION Build Test Integration Acceptance Production

  67. MICROSERVICES AUTOMATION Build Test Integration Acceptance Production

  68. CONSUMER-DRIVEN CONTRACTS Consumer Provider Purchase Purchase Service Confirm. Email

  69. CONSUMER-DRIVEN CONTRACTS Consumer Provider Purchase Purchase Purchase Purchase Service Service Confirm. Service API Test Email Mock

  70. CONSUMER-DRIVEN CONTRACTS Consumer Provider Purchase Purchase Purchase Purchase Service Service Confirm. Service API Test Email Mock Consumer contract tests

  71. MICROSERVICES’ PATH TO PRODUCTION Consumer Test Production Build Test Acceptance Test

  72. MICROSERVICES’ PATH TO PRODUCTION Consumer Test Production Build Test Acceptance Test

  73. MICROSERVICES’ PATH TO PRODUCTION Consumer Test Production Build Test Acceptance Test

  74. MICROSERVICES’ PATH TO PRODUCTION Consumer Test Production Build Test Acceptance Test

  75. MONITORING

  76. MONITORING STATUS • Up?

  77. MONITORING STATUS • Up? • Down?

  78. MONITORING STATUS ¡ STATUS • All up? • Up? • Down?

  79. MONITORING STATUS ¡ STATUS • All up? • Up? • All down? • Down?

  80. MONITORING STATUS ¡ STATUS • All up? • Up? • All down? • Down? • Mostly up?

  81. MONITORING STATUS ¡ STATUS • All up? • Up? • All down? • Down? • Mostly up? • Up apart from 1?

  82. MONITORING STATUS ¡ STATUS • All up? • Up? • All down? • Down? • Mostly up? • Up apart from 1? • All of the important bits are up? ¡ • …

  83. AMAZON PRODUCT PAGE

  84. AMAZON PRODUCT PAGE

  85. AMAZON PRODUCT PAGE DOESN’T APPEAR… DO WE CARE?

  86. Simple & Dumb ¡ SUMMARY Infrastructure

  87. RECOMMENDATIONS

  88. RECOMMENDATIONS • Build independently releasable microservices – align microservice with business capability

  89. RECOMMENDATIONS • Build independently releasable microservices – align microservice with business capability • Integrate microservices with – dumb, open language agnostic – outside database

  90. RECOMMENDATIONS • Build independently releasable microservices – align microservice with business capability • Integrate microservices with – dumb, open language agnostic – outside database • Operate microservices architecture by – decentralizing and automating all aspects of build, test and deployment

  91. RECOMMENDATIONS • Build independently releasable microservices – align microservice with business capability • Integrate microservices with – dumb, open language agnostic – outside database • Operate microservices architecture by – decentralizing and automating all aspects of build, test and deployment

  92. CONCLUSION

  93. THANK ¡YOU Zhamak Dehghani zdehghan@thoughtworks.com @zhamakd � Sam Newman snewman@thoughtworks.com @samnewman

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend