Vertical scaling (scale up) means making one machine bigger: more CPU, RAM, disk. Horizontal scaling (scale out) means adding more machines and distributing load across them (e.g. more app servers behind a load balancer).
| Aspect | Vertical | Horizontal |
|---|---|---|
| Change | Bigger single node | Add more nodes |
| Limit | Hardware ceiling, single point of failure | Theoretical limit much higher |
| Cost | Big machines get expensive | Commodity boxes; pay for what you add |
| App design | Often no code change | Stateless app, shared storage/DB |
Use vertical for quick gains and simple ops; use horizontal for long-term scale and availability. Most production systems scale out (horizontal) and use load balancing + shared DB/cache.