$30 off During Our Annual Pro Sale. View Details »

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

Olivier Dolbeau

October 02, 2015
Tweet

More Decks by Olivier Dolbeau

Other Decks in Programming

Transcript

  1. Slicing up a monolithic application
    Why and how?

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. Slicing up a monolithic application
    Why and how?

    View Slide

  6. What is a monolithic
    application?

    View Slide

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

    View Slide

  8. Website

    View Slide

  9. Mobile apps

    View Slide

  10. So big!

    View Slide

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

    View Slide

  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)

    View Slide

  13. 75
    contributors
    There are 1 193 contributors for symfony/symfony

    View Slide

  14. 20
    minutes to deploy the application

    View Slide

  15. “Everything should be
    made as simple as possible
    but not simpler”
    Albert Einstein

    View Slide

  16. View Slide

  17. ➚ Pragmatism
    “Just get it done,
    ok?”
    - God

    View Slide

  18. ➚ Processes
    - “Let’s sync!”
    - “No way man”
    - A developer and an ops, on a friday evening

    View Slide

  19. ➚ Learning
    “It must be somewhere in
    that file”
    - A struggling mentor

    View Slide

  20. ➘ Conflicts
    “I’ve been rebasing for
    years, kill me now”
    - A Git enthusiast

    View Slide

  21. ➘ Time consuming
    “The script has been frozen for
    30 minutes, should I worry?”
    - A worried developer

    View Slide

  22. ➘ Maintenance
    “It works, but I can’t
    figure out why”
    - Both of us

    View Slide

  23. ➘ Lack of expertise
    “I’ve only been there for
    3 years for God’s sake!”
    - A senior developer

    View Slide

  24. ➘ Side effects
    “The website is broken”
    - A user on Twitter

    View Slide

  25. With minor change
    comes major bugs.

    View Slide

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

    View Slide

  27. Objectifs
    BlaBlaCar
    today.

    View Slide

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

    View Slide

  29. Exponential growth
    20 million
    members in April 2015

    View Slide

  30. What are micro-
    services?

    View Slide

  31. Users
    Ratings
    Notifications
    Moderation
    Trips

    View Slide

  32. Objectives
    - Going worldwide
    - Fast growing community

    View Slide

  33. BlaBlaCar is
    deploying multiple
    datacenters.

    View Slide

  34. We need to
    localize our data.

    View Slide

  35. Different needs mean
    different storage.

    View Slide

  36. There are only two hard
    things in Computer
    Science: cache
    invalidation and
    naming things.
    Phil Carlton

    View Slide

  37. The gateway

    View Slide

  38. Business Data

    View Slide

  39. - How to make it easier for
    everyone to work together?
    - How to avoid conflicts?
    - How to foster expertise?

    View Slide

  40. - Micro-startups
    - Independant teams
    - Focus on a specific domain
    - Multi-skills
    - Limited lifespan
    Team work

    View Slide

  41. View Slide

  42. - Easy to understand
    - Fast to test, fast to deploy
    - Framework
    - Open-source
    - No more conflicts

    View Slide

  43. - Long to bootstrap
    - Specific projects to handle
    configuration
    - Increases ops complexity

    View Slide

  44. View Slide

  45. Micro services are not a
    silver bullet!

    View Slide

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

    View Slide

  47. t is worth it if you need it!

    View Slide

  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

    View Slide