Scalability is an essential part of the modern app development and deployment process. Making sure your app can adapt and grow to successfully accommodate demand is paramount. In addition to software, the infrastructure and compute resources powering your app must also have scaling capabilities.
In terms of infrastructure, the two most common approaches are vertical and horizontal scaling.
Vertical vs. Horizontal Scaling
Vertical scalability or ‘scaling up’ is the process of adding more resources to a single machine, whereas horizontal scalability or ‘scaling out’ means adding new servers to the resource pool.
A simple way to remember this difference is to imagine a single server rack sitting in a data center. With vertical scaling, you are upgrading the server’s resources in an upward direction or vertically. In hardware terms, this means increasing the capacity of CPU, RAM, or storage resources. This approach is limited to the capacity of a single server unit.
When scaling out, you are adding servers next to each other on a horizontal line. By connecting many servers into one logical unit, your workloads benefit from the combined processing power of multiple machines.
Scaling resources horizontally is practically unlimited. You can keep adding machines to your resource pool indefinitely, without worrying about the physical limitations of individual servers. This level of flexibility is one of the key reasons why enterprises often prefer horizontal over vertical scaling.
However, vertical scaling holds many advantages over horizontal scaling. For one, managing a single server unit is far simpler than working with multiple machines spread across different providers and geographic locations. In addition to that, running your app on a single server also helps you easily track and maintain performance consistency. This means you can resize your server without making changes to your code or infrastructure setup, thus avoiding incompatibility issues.
Implementing a scale-up approach is also useful when you immediately need to add resources to support sudden increases in demand. By simply resizing the server’s resources, you can address temporary spikes more quickly, without having to provision additional servers.
Vertically Scalable Processors
Vertical CPU scaling means increasing the server’s compute potential. This is achieved by upgrading the processor to increase the number of cores and clock speed. In virtual cloud environments, vertical CPU scaling is simple to achieve because you are reallocating virtual CPUs to your workloads out of a shared pool of virtual resources.
With dedicated servers, increasing CPU capacity usually calls for physical hardware upgrades, i.e. replacing one type of physical CPU with another.
However, for example phoenixNAP’s FlexServers allow you to ramp up the physical processor without manual hardware upgrades. This innovative dedicated server platform is unique in that it allows you to scale the physical processor vertically with a single server reboot.
Powered by 2nd Gen Intel Xeon Scalable processors, these FlexServers come with four predefined processor configurations:
- 2x Intel Xeon Gold 6258R – 20 cores at 2.4GHz
- 2x Intel Xeon Gold 6258R – 40 cores at 2.1GHz
- 2x Intel Xeon Gold 6258R – 52 cores at 2.1GHz
- 2x Intel Xeon Gold 6258R – 56 cores at 2.7GHz
Developed in collaboration with Intel, phoenixNAP’s FlexServers provide businesses with the ability to modulate CPU performance all the while eliminating the hassle of migrating data during upgrades. When shifting between different CPUs, there are no physical hardware upgrades or manual installations. All it takes is a simple server reboot to unlock access to a new, more powerful processor.
Use Cases for Vertically Scalable Processors
Dedicated servers with vertical CPU scaling capabilities are ideal for running highly dynamic and performance-sensitive workloads. Here’s a quick list of the five most common use cases.
Enterprise databases require a lot of compute and memory power, especially when executing complex queries. Web apps with spiky loads that rely on databases on the backend are also heavy on the CPU and RAM. If the database server is incapable of processing thousands of simultaneous connections properly, bottlenecks form, and service disruptions become inevitable.
Dedicated servers with vertically scalable CPUs solve these issues by allowing users to switch to a more powerful processor on demand. By doing so, the database server can utilize a faster processor to support sudden spikes in resource consumption. When the load subsides, users simply switch back to the previous configuration.
In the world of gaming, performance is everything. The number of CPU cores and the processor clock speed are vital to ensuring a flawless gaming experience. Cores are processing units while the clock speed indicates how fast the CPU can process information. These two parameters tell us the processing speed of the server.
Vertical CPU scaling comes into play when there is a need to support large numbers of players on a single gaming platform. Rather than provisioning additional servers, gaming service providers can upgrade to a CPU with more cores or a faster clock speed to ensure a smooth gaming experience under high resource consumption.
High Performance Computing
High Performance Computing (HPC) is all about speed and scalability. A complete HPC solution relies not only on compute power but also on storage and network performance. To achieve optimal results, all these components must keep pace with one another. This synchronization is crucial when building a network of servers for running demanding workloads such as medical research, Artificial Intelligence, high-frequency trading, or media streaming.
Apart from its vertical CPU scaling capabilities, FlexServers are equipped with Intel Optane SSDs. This low-latency storage solution improves performance and system responsiveness in demanding HPC workloads. On top of that, every FlexServer comes with 10 Gbps public and private network capacity. This makes it an ideal solution for running parallel processing tasks across hundreds of interconnected server nodes.
Virtualization workloads perform best on hardware with more CPU cores rather than faster clock speeds. On top of that, disk I/O, RAM capacity, and cache size are also crucial for achieving maximum performance with virtualization workloads.
As VM performance depends on the actual load, virtualized platforms require dynamic resource allocation. This can be achieved with horizontal scaling where new VMs are added to support the load. Another approach is to vertically scale resources of a single VM by increasing CPU and RAM capacity. In such cases, vertical scaling of physical processors can be an effective way to power up VMs and ensure optimized resource utilization.
Modern high-traffic websites are dynamic and rely on various technologies such as server-side scripting languages, web servers, and databases to power them. In addition to that, high-traffic websites generate unpredictable workloads. When the web app exhausts all available server resources, availability takes a hit which may result in lost visitors, customers, and revenue.
Websites that generate high traffic such as e-commerce sites and news portals perform best on dedicated hardware but may also require flexible on-demand CPU and RAM scaling capabilities to support sudden traffic spikes.
Dedicated servers have always been the go-to solution for running CPU-intensive workloads. But traditional dedicated servers are hard to scale in terms of hardware. Physical hardware upgrades often imply downtime, data migrations, and require manual intervention.
Solutions such as phoenixNAP’s FlexServers solve these issues by allowing users to shift between four CPU configurations without requiring manual hardware upgrades. This vertical CPU scaling capability is achieved by having four different physical CPUs already installed on the machine. With a quick server reboot, users can easily scale and modulate CPU performance to run any number of processor-hungry workloads and handle spiky loads.