When we scale an application, we can choose to add more servers that handle our scaling demands. Basically, we are adding more servers. This is called horizontal scaling.
This can provide some advantages:
- We can dynamically scale it; today, we can add more servers and tomorrow, remove the ones that we don't need
- The cost of scaling is more effective; we can just add servers according to our demand
- We can create a solution that uses standard and cheap hardware instead of a proprietary big hardware solution, and the cost of maintenance is usually cheaper because of that
But it will present some challenges:
- We can't easily scale applications that are not designed to run on multiple servers
- We will require software and hardware ...