10. System design building blocksScaling and storage types
Scaling and storage types
Scaling is how you make a system handle more load. Scaling up, or vertically, means moving to a bigger machine with more CPU, memory, or disk; it’s easy but hits a ceiling and leaves a single point of failure. Scaling out, or horizontally, means adding more machines and spreading the work across them, which goes much further but needs work that can be split, typically by keeping app servers stateless and partitioning the data. Storage is chosen by how you access it: block storage is a raw virtual disk that a database or filesystem sits on, file storage is a shared filesystem many machines can mount, and object storage like S3 holds whole files fetched by key over HTTP, cheap and nearly unlimited but not editable in place.
In this lesson: Cards.