What is vertical scaling?

Vertical scaling is the ability for an application to scale, typically by adding/reducing CPU and memory as the workload increases/decreases. Also known as “scale up,” this refers to adding resources to (or removing resources from) a single node. It is often compared to “horizontal scaling,” which is the ability for an application to automatically scale by adding/reducing computing nodes as the workload increases/decreases. For decades, vertical scaling was the de facto method for increasing compute power, and vendors often waged an ongoing war of size-specmanship.

 

Common misconceptions about vertical scaling

Common wisdom and most pundits will lead you to believe that scale up infrastructures are outdated, but this isn’t entirely true. If you’ve yet to outgrow your current system, your growth curve is known, and your system still has plenty of headspace, scaling up probably makes the most sense. And though scaling out has a much bigger upside, it’s imperative to understand that it is not without risks.

 

Advantages of vertical scaling

  • Easier implementation for growth
  • Reduced software licensing fees
  • Less administrative effort (by reducing the number of systems to manage)
  • Less power and cooling consumption,
  • Simpler to maintain application compatibility

 

Disadvantages of vertical scaling

  • Limited scaling
  • Risk greater downtime for growth and greater risk of outages and hardware failures
  • Vendor lock-in
  • Limited scope of upgradeability in the future
  • The overall cost of implementing is really expensive
  • Upgrades can be difficult

 

Suggested Reading and Related Topics

  • Horizontal scaling: Contrast vertical scaling with horizontal scaling (or “scale out”).