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

Taming the beast - get rid of your monolith

Taming the beast - get rid of your monolith

Talk about changes needed in an organization if you go MicroServices in the context of Takeaway.com

Avatar for Matthias Laug

Matthias Laug

March 20, 2015

Other Decks in Technology

Transcript

  1. The Story Taming the beast – get rid of your

    monolith Exposition Who are the main actors? Climax Conflicts all over the place! Denouement A Happy Ending?
  2. Exposition -  Founded 2009 -  Raised 25 Million -  Acquired

    by Takeaway in 2014 -  Founded 1999 -  Biggest player in continental Europe since acquisition of Lieferando -  Mainly organic growth
  3. The Question! Why  MicroServices?   -­‐  Don’t  follow  the  Hype!

      -­‐  Does  it  make  sense  for  our  business  model?  
  4. The Questions! ? ? ? Why  MicroServices?   What  needs

     to  change  in  the  organizaDon?   How  to  migrate?  
  5. Why Micro Services? -  Fast deployment -  Loosely decoupled components

    -  High cohesion -  Scalable on three axis -  Dependency management by design -  Scalable infrastructure It  is  not  about  the  benefits,  its  about  the  drawbacks  
  6. Still want to use MicroServices? -  Higher complexity -  Overhead

    in network -  Lot‘s of monitors -  The network is reliable. -  Latency is zero. -  Bandwidth is infinite. -  The network is secure. -  Topology doesn't change. -  There is one administrator. -  Transport cost is zero. -  The network is homogeneous.
  7. Process Optimization -  Fast adaption of new business processes - 

    Quick response to failure and errors -  Stable optimization of processes
  8. How big is a MicroService? -  Not more than x

    lines of code, where x varies between 100 – 10K -  Can be re-implemented within 2 weeks -  Can be managed by one person -  If a class is bigger than my head then it is too big -  Serves only a single purpose
  9. New Team Structures are needed Frontend   API   Processes

     (Backend)   DevOps   P1   P2   P3  
  10. Who is responsible for what? •  Before it was some

    big applications with assigned teams •  Now there are multiple applications you need to worry about
  11. Responsibilities -  Developers take responsibility over what they build - 

    Developers build up their own context of responsibility -  For new employees it is easier to have them build new features, but hunting bugs -  So let’s talk about “bounded context”
  12. Attacking the peripherals L2   L1   Starting Point Two

    legacy Applications Both doing kind of the same thing
  13. Attacking the peripherals API   L2   L1   MS

      Adding a flow Adding an API Aggregator Adding a Bus Adding first MicroServices
  14. Attacking the peripherals API   L2   L1   MS

      Communication Don’t use the database!!!
  15. Attacking the peripherals API   L2   L1   MS

      Communication Use the bus Use your own database
  16. Denouement Get an agreement Structure the Team Conway’s Law Decouple

    and Cohesion It’s a Journey You will fail first time Think incremental Move things step by step Size matters! Understand the cost of changes