Best way to scale with same docker

special case: We want to scale with Docker container, but every docker container has the same software and version inside (NodeJS).
My question is: What is the best way to scale with ease? Github Actions? Is there something for docker?
We want to have like 50,100,1000 docker container, all the same.

Thanks in advanced

You can use Docker Swarm or Kubernets for Multi-node deployments of replicated containers (=replicas created from the same container configuration template).Swam does not have a load/ressource based autoscaler - you set the number of desired replicas and Swarm takes care to bring it into reality. Kubernetes on the other hand can be extended to use a horizontal pod autoscaler based on cpu or any other custom metric to dynamicly adjust the desired number of replicas.

Can you elaborate the intend? I am not realy sure what to make of it.

1 Like

Thank you, for your reply! And thank you for the hints.
We want to access to an API but have to take care of the usage of IPs. Because if there comes too much traffic from one IP, user get blocked on that platform. So we decided to use for every user a single instance (server) with individual IP and docker to only handle the API requests. So we need no special server, the lowest with 1cpu maybe 512mb ram is really ok. We only want to deploy a container.
Because every container is the same, we want deploy / actualize only once for all container.

I doubt that containers, regardless of the used orchestrator, will be helpfull in this scenario, unless the platform you are refering will also be running on the same orchestrator.

Typicaly container traffic has the node’s host ip as source when traffic leaves the cluster. As a result you will have as much different source ip’s as you have different nodes. If your nodes are running in a private network and the platform is accessible over the internet, then even the different node ip’s will be replaced by the ip of your nat gatway(s).

You might want to check if something like AWS Fargate could help to solve your problem. If run in a public subnet, each ECS/EKS Fargate container could have a public ip, which might solve your problem.

Also I am not sure if “one container per user” sounds like the right fit for replicas - “a set of containers randomly selected to spread the requests of users” would sound more like it.

It feels like your solution architect(s) should take a close look to this issue as it needs proper design more likely towards request limiting. Are you sure the limit is by source ip and not by account?