In this article, we will explore the differences between horizontal and vertical scaling. We will also touch on the upside and downsides of these different types of scaling, as well as how they are achieved. Scaling is the process of adding or removing resources to meet the increasing or decreasing demands of an application or service. There are two primary scaling approaches: horizontal and vertical scaling.
Horizontal Scaling (Scale-Out)
Horizontal scaling means that you scale by adding more machines into your pool of resources to an existing machine. This allows you to distribute your workload across a larger pool of resources. On OpenMetal cloud cores, if your workload exceeds your cloud’s processing capacity, you can easily scale out by adding cloud expansion nodes to increase your cloud’s capacity.
Horizontal scaling is also referred to as scale-out and typically requires a load-balancer to distribute load (or requests) among the servers within the cluster. Horizontal scaling is also used to describe adding additional virtual machines (VM) to a cluster to allow a scaling system to allocate copies of the process onto the resources of that new VM.
For OpenMetal’s OpenStack, you can use the built in load balancer already available for your Virtual Private Cloud or create a load balancer on a VM. See How to Create a Load Balancer or explore the general Networking Overview or Cloud Users Manual.
Have questions? Chat With Us
Vertical Scaling (Scale-Up)
Vertical scaling, also referred to as scale-up, is usually achieved by adding additional resources to current servers in order to help increase the capacity of the current machine. This increases the power and efficiency of your server allowing it to handle more demanding applications.
Vertical scaling is typically handled via the systems administrators via software, whereas horizontal scaling is done by techs within the data center. Vertical scaling also comes with its own set of challenges as not all software is capable of scaling. If alternatives are not available, the only option left may be to physically scale the server.
Virtualization software such as found on OpenMetal’s hosted private cloud, or Virtuozzo, VMware, Oracle VM VirtualBox, and many others, allow for you to partition physical resources into multiple VMs. These are the modern way of being able to scale vertically or horizontally.
Typically it is more cost-effective to scale up, or vertically, rather than scaling out, or horizontally. This is due to two major things:
- The cost of hardware to scale up is relatively low compared to re-architecting a software system to allow scale out/horizontal scaling
- The fact that virtualization software when used to scale vertically often allows for an increase in resources usage without having to physically add a new machine.
For more guides, check out our Docs, Blogs, or learn about OpenMetal Clouds.