Vertical vs horizontal scaling
Vertical scaling (scale up) means a bigger machine: more CPU, RAM or disk. It is simple, needs no code changes, but has a hard ceiling, gets expensive quickly and remains a single point of failure. Horizontal scaling (scale out) means more machines behind a load balancer.
It scales much further and survives individual machine failures. It works best when application servers are stateless: user sessions, uploaded files and caches live in shared stores (Redis, a database, object storage) rather than on a particular server's disk or memory. Stateless servers can be added, removed or replaced at any time without users noticing.