Good afternoon,
I'm getting into microservices - in fact, I've managed to make few full projects based on that architecture - but they weren't really robust, so I couldn't get the full scope of using microservices.
I'm struggling with 2 concepts related to scalability and reliability, and I would appreciate a simple explanation in layman's terms.
Reliability Let's say that I have Docker and utilize it to run 3 instances of the same image (service). They can't all be bound to the same port, so the generated ports are usually n+1 (9000, 9001, 9002) - do I have to implement a service discovery that checks whether one of 3 ports is available for usage - or does Docker have something implemented that'll allow me to define a single port (9000) that'll redirect traffic to a service instance that is available and has the lowest load?
Scalability Let's say that I have 3 different services: Apples, Oranges, and Bananas. Now, let's say that Oranges are used the most and need to be scaled by adding a few instances but on a different server. How does that process work? Do I just create instances on a different server? But then what - how do they get connected to the other services?
Thanks for your time!