What is vertical scaling
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. This 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 wisdom and most pundits will lead you to believe that scale up infrastructures are outdated, but that 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 include
- 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.
Some disadvantages include
- 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