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.

Traps on the Path to Microservices - Lead Dev 2018

497 views

Published on

A talk I gave at https://newyork2018.theleaddeveloper.com/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Traps on the Path to Microservices - Lead Dev 2018

  1. 1. Traps on the Path to Microservices George Woskob | New York, NY
  2. 2. ©ThoughtWorks 2017 Commercial in Confidence Once upon a time there was an airline... 2 ● Founded in 1937 ● By Willbur and Orville Redenbacher ● Pioneer in computerized reservation system
  3. 3. ©ThoughtWorks 2017 Commercial in Confidence DB 3rd Party BIG BALL OF MUD (SEPARATION OF CONCERNS?) FRONT END 4th Party ..and they had a monolith 3
  4. 4. ©ThoughtWorks 2017 Commercial in Confidence 4
  5. 5. ©ThoughtWorks 2017 Commercial in Confidence 5 “Microservices are the future!” -very senior Architect
  6. 6. ©ThoughtWorks 2017 Commercial in Confidence 6
  7. 7. ©ThoughtWorks 2017 Commercial in Confidence DB 3rd PARTY BIG BALL OF MUD FRONT END 4th PARTY FANCY NEW FE NEW! NEW! NEW! NOSQL! (NEGLECTED) ETL NEW! ...but we ended up here 7
  8. 8. ©ThoughtWorks 2017 Commercial in Confidence 8
  9. 9. ©ThoughtWorks 2017 Commercial in Confidence 9
  10. 10. ©ThoughtWorks 2017 Commercial in Confidence 10
  11. 11. ©ThoughtWorks 2017 Commercial in Confidence The traps 11 UNDERESTIMATING THE COST OF A MICROSERVICE OVERCENTRALIZATION NEGLECTING THE MONOLITH
  12. 12. Underestimating the cost of a microservice Just because you’re doing microservices, doesn’t mean you’re seeing their value
  13. 13. ©ThoughtWorks 2017 Commercial in Confidence Operational costs 13 Additional points of failure Scaling Build and deploy pipelines
  14. 14. ©ThoughtWorks 2017 Commercial in Confidence Integration costs 14 With other services With the monolith Error handling
  15. 15. ©ThoughtWorks 2017 Commercial in Confidence Developer’s costs Running several services locally Test data Networking config Interteam communication 15
  16. 16. ©ThoughtWorks 2017 Commercial in Confidence It’s all about automation! Dev workstation Test data Networking 16
  17. 17. ©ThoughtWorks 2017 Commercial in Confidence Contract tests! 17
  18. 18. ©ThoughtWorks 2017 Commercial in Confidence 18 Don’t gamble with your architecture Going all in
  19. 19. ©ThoughtWorks 2017 Commercial in Confidence (Marginal benefit) – (Marginal cost) > 0 19
  20. 20. ©ThoughtWorks 2017 Commercial in Confidence Where do I start? 20 Faster feature development Encapsulation of business functionality Optimal technology or design for the task Scalability needs Functionality that is “ripe for a rewrite”
  21. 21. ©ThoughtWorks 2017 Commercial in Confidence (Marginal benefit) – (Marginal cost) > 0 21
  22. 22. Overcentralization All hail the distributed monolith!
  23. 23. ©ThoughtWorks 2017 Commercial in Confidence Technical overcentralization 23
  24. 24. ©ThoughtWorks 2017 Commercial in Confidence Too much shared code 24 Can create complex release dependencies Can tie you to a particular tech stack
  25. 25. ©ThoughtWorks 2017 Commercial in Confidence Avoiding too much shared code 25 Follow rules of library design Consensus on standards over shared implementation No business logic!
  26. 26. ©ThoughtWorks 2017 Commercial in Confidence Organizational overcentralization 26
  27. 27. ©ThoughtWorks 2017 Commercial in Confidence Organizational tollgates 27 PROD
  28. 28. ©ThoughtWorks 2017 Commercial in Confidence Organizational tollgates 28 PROD
  29. 29. ©ThoughtWorks 2017 Commercial in Confidence Organizational tollgates 29 PROD
  30. 30. ©ThoughtWorks 2017 Commercial in Confidence Integrate Ops and QA with your Dev Teams 30
  31. 31. Neglecting the monolith Legacy code needs love too!
  32. 32. ©ThoughtWorks 2017 Commercial in Confidence “The monolith will be gone soon!” 32
  33. 33. ©ThoughtWorks 2017 Commercial in Confidence Always be improving your monolith! (Test it!) 33
  34. 34. ©ThoughtWorks 2017 Commercial in Confidence “Microservices are the panacea!” 34
  35. 35. ©ThoughtWorks 2017 Commercial in Confidence Make sure you actually use the strangler pattern! 35
  36. 36. ©ThoughtWorks 2017 Commercial in Confidence 36
  37. 37. ©ThoughtWorks 2017 Commercial in Confidence The traps 37 UNDERESTIMATING THE COST OF A MICROSERVICE OVERCENTRALIZATION NEGLECTING THE MONOLITH
  38. 38. ©ThoughtWorks 2017 Commercial in Confidence Some parting words 38 Keep in mind marginal utility! Make room for autonomy Own the whole process Don’t wait for microservices
  39. 39. THANK YOU For questions or suggestions: George Woskob gwoskob@ThoughtWorks.com Special thanks to Dan Lockman with whom I originally wrote this talk 39

×