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

Moving from A and B to 150 microservices, the journey, and learnings

Moving from A and B to 150 microservices, the journey, and learnings

Are you frustrated working with large, legacy and potentially lethal code bases? We were frustrated too, but in 4-5 years of time, we replaced A (front-end) and B (back-office) system with ~150 microservices. From the days of no tests and clumsy deployment process, we moved to each service with unit tests, CI and deploying with a bot. With the business buying in the process, we enabled the business to reach new heights. This talk reveals that journey and the things we learned along the way.

1b031ccbf968811f157cf7a892dddfed?s=128

Geshan Manandhar

October 24, 2018
Tweet

Transcript

  1. Moving from A and B to ~150 microservices, the journey,

    and learnings Geshan Manandhar Senior Software Engineer (THE ICONIC) @geshan
  2. ◉ Senior Software Engineer ◦ Tech solution provider ◉ Agile

    follower ◉ Conditional microservices believer whoami
  3. I am from Kathmandu, Nepal

  4. I was working for a GFG venture in Middle East

  5. Now I work at THE ICONIC

  6. And I came here from the future, a future without

    legacy monoliths
  7. Who ‘does not like’ working with legacy apps/monoliths?

  8. What to expect from this talk?

  9. None
  10. What is microservices architecture?

  11. “ “Microservice architectural style is an approach to developing a

    single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery” - Martin Fowler Source: https://martinfowler.com/articles/microservices.html
  12. “ “Microservices is an architectural style that structures an application

    as a collection of loosely coupled services, which implement business capabilities. The microservice architecture enables the continuous delivery/deployment of large, complex applications. It also enables an organization to evolve its technology stack” - Chris Richardson Source: http://microservices.io/
  13. Microservices at Namshi

  14. From 2 monoliths, to SOA (C) to Microservices, in past

    4-5 years
  15. Migrating to a REST based JSON API triggered a transformation

  16. Stateless auth is a blessing, JWS in a cookie saved

    hassles.
  17. A chunk of the backend is in PHP, other apps

    are built with NodeJs + Js
  18. There are ~150 microservices at Namshi, with ~10 backend engineers

  19. OMS Studio (Prod) Wallet Shipments Catalog QC Pick It Order

    Exporter WeBuy Cart Some of the microservices
  20. Moving to microservices enabled to ship changes faster

  21. Docker and kubernetes really helped to have a stable infrastructure

  22. 9 out of 10 applications at Namshi are written in

    Node Js
  23. Microservices != free lunch, lots of configs come with it

  24. How to get started with Microservices

  25. Start with an opportunity to extract out a business feature/function

  26. Transform a pain point into a new service

  27. Solve a small part of the issue, collaboratively. Roll out

    working software
  28. Think out of the box, don’t code a microservice like

    a monolith
  29. Feature flags and canary deployments keep us on the safe

    side
  30. Key Takeaways

  31. Requires inter team communication, business needs to buy into the

    idea
  32. Replacing frontend can take ‘X’ months, back-office will take years

  33. Design your systems with resilience in mind from the beginning

  34. How small is micro? Yes, Your service can be of

    ~100 lines of your code
  35. It is about speed and agility of software delivery

  36. Questions welcome :) THE ICONIC is hiring. You can find

    me at ◉ @geshan (geshan@gmail.com) ◉ Geshan.com.np ◉ Slides: http://bit.ly/ab-to-ms Thanks! Presentation template by SlidesCarnival
  37. Credits/References ◉ https://pixabay.com/en/primate-ape-thinking-mimic-view-1019101/ ◉ https://pixabay.com/en/running-sprint-cinder-track-498257/ ◉ https://pixabay.com/en/stacked-stones-cairn-rock-balance-1007944/ ◉ https://pixabay.com/en/lego-stones-build-toy-622602/ ◉

    https://pixabay.com/en/tractor-vehicles-farm-machinery-387275/ ◉ https://pixabay.com/en/workplace-team-business-meeting-1245776/ ◉ https://pixabay.com/en/network-server-system-2402637/ ◉ https://pixabay.com/en/logs-wood-timber-lumber-woodpile-498538/ ◉ https://pixabay.com/en/sunset-sea-the-sun-clouds-1603974/ ◉ https://pixabay.com/en/change-arrows-clouds-sky-direction-948024/ ◉ https://pixabay.com/en/cheetah-africa-namibia-cat-run-2859581/ ◉ Kathmandu - https://pixabay.com/en/nepal-kathmandu-buddhism-pagodas-306621/ ◉ https://pixabay.com/en/characters-shield-note-street-sign-3533352/ ◉ https://www.flickr.com/photos/brianandjaclyn/4137335458 ◉ https://pixabay.com/en/time-tiempo-count-day-future-699965/ ◉ https://pixabay.com/en/doors-choices-choose-open-decision-1767563/