Infrastructure Comparisons

Side-by-side trade-offs where neither column wins. The workload, the team and the operational budget decide — and each comparison ends with the verdict that follows from that, not from a preference.

Object vs block vs file storage

Three different contracts, not three products. The access pattern picks one; using the wrong one is the source of a whole family of architecture problems.

DimensionObjectBlockFile
UnitWhole object by keyFixed-size blocksFiles and directories
InterfaceHTTP APIA disk the OS mountsA network filesystem
Shared by many machinesYes, nativelyUsually one at a timeYes, that is the point
Partial updateRewrite the objectYes, at block levelYes
Scale ceilingEffectively unboundedPer-volume limitsPer-share limits
LatencyTens of ms per requestSub-millisecond to low msLow ms, chattier per operation
Cost shapeCheap per GB, charged per request and per GB outProvisioned capacity and IOPSProvisioned capacity, often the priciest
Good forMedia, backups, static assets, data lakesVM disks, database filesLegacy apps and shared working directories
Use Object when
  • Whole-item reads and writes of large blobs.
  • Content served through a CDN.
  • Backups and archives.
Use Block when
  • A database needs durable random writes.
  • A VM needs a root or data disk.
  • You need filesystem semantics on one machine.
Use File when
  • Several machines must see the same directory tree.
  • An application assumes POSIX and cannot be changed.
Verdict

Default to object storage for blobs and block storage for databases. Reach for file storage when an application genuinely requires a shared POSIX filesystem — and notice that "we used a shared filesystem as a queue" is a recurring incident.