Migrating from monolith
to microservices
Starship - Joel Mislav Kunst
Problems
• hard to maintain a big codebase by many people
• hard to get started for new people
• lots of mixed logic understood by a very few people
• inefficient to run
Action Plan
• new stuff --> separate service
• if new stuff is written in js --> extract common part from the
monolith into modules
• if bigger changes needed to a monolith part that has most
of dependencies extracted --> extract it to a separate
service
Problems 2
• distributed monolith
• hard to debug
• kubernetes packet loss
Action Plan 2
• new stuff --> it's own DB
• critical existing services --> stop using central DB
• distributed tracing (mongo proxy)
• introduced kafka
• js --> ts
Problems 3
• PDD (Production Driven Development)
• most of the people know only about their stuff
• multiple auth handlers
Action Plan 3
• Improve alerting and monitoring (influx --> prometheus)
• e2e tests, more integration tests, better sandbox
environment, canary deployment
• knowledge sharing
• all auth (internal) --> use auth service
• extract more critical stuff from monolith
Conclusion
• Be purposeful (unit tests)
• No big plans, start NOW
• Share knowledge
Questions?

Modern problems in backend engineering, Joel Mislav Kunst

  • 1.
    Migrating from monolith tomicroservices Starship - Joel Mislav Kunst
  • 4.
    Problems • hard tomaintain a big codebase by many people • hard to get started for new people • lots of mixed logic understood by a very few people • inefficient to run
  • 5.
    Action Plan • newstuff --> separate service • if new stuff is written in js --> extract common part from the monolith into modules • if bigger changes needed to a monolith part that has most of dependencies extracted --> extract it to a separate service
  • 6.
    Problems 2 • distributedmonolith • hard to debug • kubernetes packet loss
  • 7.
    Action Plan 2 •new stuff --> it's own DB • critical existing services --> stop using central DB • distributed tracing (mongo proxy) • introduced kafka • js --> ts
  • 8.
    Problems 3 • PDD(Production Driven Development) • most of the people know only about their stuff • multiple auth handlers
  • 9.
    Action Plan 3 •Improve alerting and monitoring (influx --> prometheus) • e2e tests, more integration tests, better sandbox environment, canary deployment • knowledge sharing • all auth (internal) --> use auth service • extract more critical stuff from monolith
  • 10.
    Conclusion • Be purposeful(unit tests) • No big plans, start NOW • Share knowledge
  • 11.