Slicing up a monolithic application Why and how?

Slicing up a monolithic application Why and how?

Talk given with Benjamin Fraud (@bench1ps) at Paris Web 2015

418997665c4a3368515ecf9c3d746b95?s=128

Olivier Dolbeau

October 02, 2015
Tweet

Transcript

  1. Slicing up a monolithic application Why and how?

  2. None
  3. None
  4. None
  5. Slicing up a monolithic application Why and how?

  6. What is a monolithic application?

  7. “It does everything, even coffee” - Every developer ever

  8. Website

  9. Mobile apps

  10. So big!

  11. 406 187 NLOC There are “only” 268 041 NLOC for

    symfony/symfony
  12. 29 582 Commits There are “only” 15 506 commits for

    symfony/symfony There are “only” 10 228 commits for joyent/node There are “only” 9 266 commits for twbs/bootstrap There are 44 809 commits for rails/rails (but it’s ruby… #troll)
  13. 75 contributors There are 1 193 contributors for symfony/symfony

  14. 20 minutes to deploy the application

  15. “Everything should be made as simple as possible but not

    simpler” Albert Einstein
  16. None
  17. ➚ Pragmatism “Just get it done, ok?” - God

  18. ➚ Processes - “Let’s sync!” - “No way man” -

    A developer and an ops, on a friday evening
  19. ➚ Learning “It must be somewhere in that file” -

    A struggling mentor
  20. ➘ Conflicts “I’ve been rebasing for years, kill me now”

    - A Git enthusiast
  21. ➘ Time consuming “The script has been frozen for 30

    minutes, should I worry?” - A worried developer
  22. ➘ Maintenance “It works, but I can’t figure out why”

    - Both of us
  23. ➘ Lack of expertise “I’ve only been there for 3

    years for God’s sake!” - A senior developer
  24. ➘ Side effects “The website is broken” - A user

    on Twitter
  25. With minor change comes major bugs.

  26. With minor change comes major bugs. Olivier, based on its

    personal experience.
  27. Objectifs BlaBlaCar today.

  28. countries NEW IN 2015 India Mexico Hungary Romania Serbia Croatia

    19
  29. Exponential growth 20 million members in April 2015

  30. What are micro- services?

  31. Users Ratings Notifications Moderation Trips

  32. Objectives - Going worldwide - Fast growing community

  33. BlaBlaCar is deploying multiple datacenters.

  34. We need to localize our data.

  35. Different needs mean different storage.

  36. There are only two hard things in Computer Science: cache

    invalidation and naming things. Phil Carlton
  37. The gateway

  38. Business Data

  39. - How to make it easier for everyone to work

    together? - How to avoid conflicts? - How to foster expertise?
  40. - Micro-startups - Independant teams - Focus on a specific

    domain - Multi-skills - Limited lifespan Team work
  41. None
  42. - Easy to understand - Fast to test, fast to

    deploy - Framework - Open-source - No more conflicts
  43. - Long to bootstrap - Specific projects to handle configuration

    - Increases ops complexity
  44. None
  45. Micro services are not a silver bullet!

  46. Migrate from monolithic to micro services can be a pain.

  47. t is worth it if you need it!

  48. • Micro services are not a silver bullet! • Migrate

    from monolithic to micro services is a pain. • It is worth it if you need it! Benjamin Fraud @bench1ps Olivier Dolbeau @odolbeau