In a nutshell
Real systems aren't designed all at once — they grow. You start with the simplest thing that works (one server, one database), watch where it strains under load — the bottleneck — and add exactly one piece to relieve it: a cache, more servers behind a load balancer, a queue to do slow work in the background. Every box on the diagram earns its place by fixing a specific problem, trading a little added complexity for a concrete scaling win.