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.

Microservices: The Nitty Gritty

503 views

Published on

Areas you need to pay attention to when building microservices

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Microservices: The Nitty Gritty

  1. 1. Microservices: the nitty gritty
  2. 2. I did a project with microservices
  3. 3. "Just use microservices"
  4. 4. and it went well for the first
  5. 5. and it went okay for the second
  6. 6. it started to get hard on the third
  7. 7. what did we find?
  8. 8. communication is hard
  9. 9. HTTP + REST
  10. 10. large conversations
  11. 11. myapp.com/customers GET
  12. 12. { "customers" : [ { "name" : "igloocoder", "address" : "123 Main St.", "active" : true, "premium" : true }, { "name" : "Apple", "address" : "1 Infinite Loop", "active" : false, "premium" : false } ] }
  13. 13. only need name and premium?
  14. 14. basic APIs won't cut it
  15. 15. myapp.com/customers?fields=name,premium GET
  16. 16. { "customers" : [ { "name" : "igloocoder", "premium" : true }, { "name" : "Apple", "premium" : false } ] }
  17. 17. filtering
  18. 18. /customers/active /customers/premium
  19. 19. can't expect client side action
  20. 20. give succinct answers to large conversations
  21. 21. service-to-service communications
  22. 22. update/delete/create
  23. 23. reading data is harder
  24. 24. reading data is harder
  25. 25. latency
  26. 26. REST favourable
  27. 27. going to want filtering and partial response
  28. 28. denormalize
  29. 29. embrace data duplication
  30. 30. keep data close
  31. 31. sync via events
  32. 32. embrace eventual consistency
  33. 33. every microservice is a separate app...
  34. 34. every microservice is a separate deployment
  35. 35. how do you deploy so many apps?
  36. 36. automation
  37. 37. what environments?
  38. 38. 1 monolith == 10/20/50/100? microservices
  39. 39. upgrades?
  40. 40. avoid lock step deployments
  41. 41. challenges
  42. 42. some client Our API v1 Our API v2
  43. 43. service location & config mgmt
  44. 44. where is that damn thing?
  45. 45. <add key="myService" value="http://...."
  46. 46. Zookeeper/Consul
  47. 47. securing things
  48. 48. token based auth
  49. 49. Think about things from the beginning
  50. 50. Usability?
  51. 51. Versioning?
  52. 52. Deployments?
  53. 53. Develop these capabilities first
  54. 54. build for the cloud
  55. 55. engage DevOps from the start
  56. 56. Things we didn't talk about Handling communication volatility Logging & Monitoring Distributed System Fallacies
  57. 57. Thank you donald.belcham@particular.net @dbelcham www.igloocoder.com/tags/microservices www.github.com/dbelcham/microservice-material

×