1 from homogenous monolith to radically heterogenous
play

1 From Homogenous Monolith to Radically Heterogenous - PowerPoint PPT Presentation

1 From Homogenous Monolith to Radically Heterogenous Micro-services* Architecture For you, @samnewman Conways Law HELLO WORLD!!!!!!!!!!!!!!!!! What is Wunderlist? Wunderlist is available on iPhone, iPad, Mac, Web, Android, Windows


  1. 1

  2. From Homogenous Monolith to Radically Heterogenous Micro-services* Architecture For you, @samnewman

  3. “Conway’s Law”

  4. HELLO WORLD!!!!!!!!!!!!!!!!!

  5. What is Wunderlist? Wunderlist is available on iPhone, iPad, Mac, Web, Android, Windows and Windows Phone

  6. One Monolithic Application

  7. One Monolithic Database

  8. One Language (Ruby)

  9. Test suite slow and brittle

  10. Caching required for survival

  11. Deployment was scary

  12. Logic buried in abstractions

  13. Legacy @chadfowler Systems Euthanizer

  14. “legacy"

  15. vonnegut

  16. successful challenged failed

  17. For business software that’s deployed, the average life expectancy is five years.* (I made this up)

  18. OH SHIT!

  19. How do you CREATE Legacy software?

  20. http://tinyurl.com/ulsgabriel richard p. gabriel Design Beyond Human Abilities Biological systems are very much larger than anything (coherent) that people have built.

  21. “When a cell is not healthy, an outside cell that’s part of the immune system can command the cell to destroy itself without spreading toxins.”

  22. homeostasis

  23. What is a cell?

  24. What is a system?

  25. When do you build a system vs. a cell? Are you building the right one now?

  26. The Big Rewrite

  27. “Please tell me I’m never going to hear you say you have to do this again.”

  28. “real time” “smart” proxy authorization authentication

  29. Code is “this big”

  30. multi-tiered architecture • Socket • Proxy • English • German • “Write layer”

  31. “real time” “smart” proxy authorization authentication

  32. Disposable Software

  33. Nodes are Disposable

  34. Immutable Deployments Never Upgrade Software on an Existing Node

  35. Threw away Chef

  36. Heterogenous By Default

  37. Tiny Databases

  38. Conventions

  39. Conventions

  40. “Smart” proxy

  41. Real-time service

  42. Many tiny services

  43. Service Resolution YAML -> JSON -> Auto-generated JSON -> Consul

  44. Sync or Async?

  45. Message Queuing • Standardized Mutation flow • Feeds real-time synchronization to clients • Feeds anything else, by convention

  46. “real time” “smart” proxy authorization authentication

  47. Monitor Everything

  48. How We Migrated • Removed joins • Separated databases • New features prototyped new service approach (comments, files) • New features prototyped real-time/mutation approach (comments) • Replace database connections in old API with new APIs (some ran as long as 7 months) • Test under crazy load/behavior (next slide)

  49. Böse Gurken https://medium.com/tales-from-6w/saving-our-bacon-with-evil- cucumbers-2e3d26cebacc

  50. The Big Little Rewrite s Socket “smart” proxy authorizat authentica

  51. The Future

  52. homeostasis

  53. Global async validation middleware

  54. Cost Reduction • Make it work • Make it fast • Make it cheap

  55. Deployment Speed

  56. Refactor to Monolith

  57. Thanks!

Recommend


More recommend