Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Decomposing a live application with confidence

Decomposing a live application with confidence

We always try to avoid the famous Big Mall of Mud™ due to many reasons but what happens when we're already facing it - and making profit with it? Should we just accept our fate and keep fixing bugs for the rest of our lives or should we actually do something different?
In this presentation we'll share the challenges we're facing at Usabilla and how we're using DDD and Kafka to understand and decompose our software into services without having downtime or any impact on our users' experience.

62e128858ac2533534b93d96575b4a87?s=128

Luís Cobucci

May 26, 2018
Tweet

Transcript

  1. Luís Cobucci
 @lcobucci confidence Decomposing a live app with https://goo.gl/Nv1sV8

  2. Photo by Rafael Dohms Bassano del Grappa !

  3. Photo by Rafael Dohms Bassano del Grappa !

  4. Live software! Photo by Rafael Dohms Software engineers

  5. Luís Cobucci
 @lcobucci https://jobs.usabilla.com

  6. Here we go… https://goo.gl/JF1cPb

  7. Oh the chaos! https://goo.gl/D4DvKC

  8. No tests https://goo.gl/tnbTEC

  9. https://goo.gl/hr22Dx Outdated stack

  10. https://goo.gl/qh3NNs Complexity

  11. Very slow https://goo.gl/dRfUyZ

  12. https://goo.gl/cuLYT9 Random bugs

  13. Look, light! https://goo.gl/9w9EBV

  14. Great people https://goo.gl/JYsTJW

  15. Work in progress https://goo.gl/CS6azo

  16. Refactor all things! https://goo.gl/ebJsEL

  17. Wait, what? https://goo.gl/nTX7xr

  18. Sometime ago… https://goo.gl/Zr2mJy

  19. https://goo.gl/WdiLjf Big ball of mud

  20. Unify everything https://goo.gl/TGmbsc

  21. No major rewrite https://goo.gl/SfHtmY PLEASE

  22. Strangler application https://goo.gl/9ctdLn

  23. The big and scary application

  24. The big and scary application Dummy proxy

  25. The big and scary application Dummy proxy Nice and shiny!

  26. The big and scary application Proxy Nice and shiny! Nice

    and shiny! Nice and shiny!
  27. The big and scary application Proxy Nice and shiny! Nice

    and shiny! Nice and shiny!
  28. Proxy Nice and shiny! Nice and shiny! Nice and shiny!

    WOW Much strangle So shiny
  29. Uuurgh

  30. Decomposing things https://goo.gl/YCrvVL

  31. “If you are afraid that producing software with thoughtful design

    is expensive, think how much more expensive it’s going to be to live with it or even fix a bad design.” Vaughn Vernon
  32. Hurry up! https://goo.gl/Psv1jN

  33. https://goo.gl/62BNwH Domain knowledge

  34. Call the experts https://goo.gl/4qKJTp

  35. Event storming

  36. Context mapping

  37. Gherkin stories https://goo.gl/EJi8Xo

  38. https://goo.gl/KFjUHT Metrics

  39. https://goo.gl/TVBGXQ services Micro

  40. https://goo.gl/Nr98Mo Evolvability

  41. https://goo.gl/SwL7bh Ship it!

  42. https://goo.gl/EtNKra Simplicity

  43. https://goo.gl/Sx7TYA Strictness

  44. https://goo.gl/Sx7TYA Growth & scale

  45. Minions of users! https://goo.gl/7MAkHZ

  46. Partitioned Low latency delivery Fast Fault tolerant Scalable

  47. Group 1 Brokers Producer 1 Producer 2 Topic Partition 1

    Partition 2 Consumer 1 Consumer 2 Streamer A
  48. https://goo.gl/45PJ2o Feedback collection

  49. Feedback Collection

  50. None
  51. None
  52. … The big and scary
 application - Channel 5 The

    big and scary
 application - Channel 0
  53. … Feedback Collection The big and scary
 application - Channel

    5 The big and scary
 application - Channel 0
  54. … Feedback Collection The big and scary
 application - Channel

    5 The big and scary
 application - Channel 0
  55. None
  56. Feedback Collection Feedback Consolidation Feedback Processing Topic A Topic B

    Topic C
  57. Lessons https://goo.gl/uDPLPA

  58. Constraints https://goo.gl/Nxo8nb

  59. Domain exploration https://goo.gl/jyxuVs

  60. Communication https://goo.gl/fnG848

  61. Discipline https://goo.gl/fnG848

  62. Luís Cobucci
 @lcobucci confidence Decomposing a live app with https://goo.gl/Nv1sV8

  63. Thanks! @lcobucci