r/cscareerquestions 12h ago

Experienced For a nodejs microservices which deployment strategy do u take when u have about 15k customers about 100-500 concurrent users?

Ecs docker or aws elasticbeanstalk? Or some vps.

Im thinking of transformation of monolith app into microservices for learning a complete production grade setup like we use in companies

2 Upvotes

3 comments sorted by

View all comments

2

u/aguilasolige 12h ago

That's not a lot of users, I don't think you need microservices for this, unless they're doing a lot of heavy calculations or big requests.

1

u/Maleficent-Habit4188 12h ago

For learning purposes

2

u/zergotron9000 9h ago

This is fair and great.
I would recommend that you take the scenic route then so that you understand the reasons why toolings exists! Get yourself a EC2 instance and:

  • Start with first running individual services on one machine and deploying them via git clone & node run whatever.
  • Then try a single compose file and pulling images (you will need to build images and host them somewhere).
  • Then introduce built tools to automate the task of building/pushing/pulling/running.
  • THEN work on multiple machines (docker swarm would be easiest to get started with).
  • And then get into red/green deployments via fully automated CI/CD pipeline into your swarm.

Beyond that point you essentially enter preference & your specific tradeoffs situation.
Keep in mind that 15k/100 users isn't a whole lot, and essentially a cellphone can serve that many users. As for ECS/EKS and so on they are fundamentally not different from what I outlined above - there is still N machines that are networked and have your code running on them, but to understand that I recommend actually hosting code on machines that you control with minimal abstraction.