Horizontal vs Vertical Scaling: A Framework for VPS and Shared Hosting Providers

Horizontal vs Vertical Scaling: A Framework for VPS and Shared Hosting Providers

artistic city with 3 sizes of housing

Your hosting business is growing rapidly, and you’re starting to feel the pressure of accommodating an increasing number of clients on your dedicated servers. It’s a good problem to have — but still a problem. It’s a common challenge faced by many VPS and cPanel shared hosting providers, and it begs the question: how do you scale your infrastructure to maintain top-notch performance and reliability for your customers?

IOFLOOD, as a provider of dedicated servers, has many VPS and shared hosting customers who come across these challenges every day. This article intends to share what we’ve learned in the process of helping our growing customers be successful. In this blog post, we’ll dive deep into the concepts of horizontal and vertical scaling, and help you make an informed decision that suits your unique needs.

What is horizontal and vertical scaling?

Horizontal scaling, for dedicated servers, is the process of using more of the same servers to achieve greater capacity. Vertical scaling is the process of upgrading the specifications of each server to achieve greater capacity without adding more servers.

Fast growing hosting companies typically need to use some combination of both strategies to be successful. This article will go into more depth on when and how to use each scaling method.

Understanding Scalability

Imagine you’re running a shared hosting business with a single server and a small client base. You start out with a single modest server, which is both easy to afford and easy to manage. As your business takes off and the number of clients grows, you will quickly outgrow that initial server. By understanding your scaling options, you will be able to quickly adapt to handle the influx of new clients, all while keeping your existing customers happy and satisfied.

Scalability is an important balancing act for any successful hosting provider’s infrastructure. Scalability refers to the capacity of a system to gracefully handle increased demands, ensuring that performance remains optimal even as the number of customers grows. This becomes a balancing act because you want to ensure you have the scalability to handle your current needs, and a path to handle future needs, all while keeping costs in line with the performance requirements — and revenue — generated by today’s customers.

Failing to do this properly can lead to churn as unhappy customers cancel, and a damaged business reputation making it more difficult to attract new customers. Overbuying capacity can hurt margins. This makes it difficult to pay for the support needed to keep customers happy or the marketing budget needed to attract new customers. Clearly, getting scaling right is critical as a hosting provider. The remainder of the article will detail the different scaling strategies, pros and cons, and how to pick what’s right for you.

Horizontal Scaling Explained

Horizontal scaling, also known as scale-out, is like adding more chairs to the table. It involves expanding your infrastructure by adding more servers, effectively distributing the workload and ensuring no single server is overwhelmed. Let’s say you’re a shared hosting provider with a rapidly growing client base. By implementing horizontal scaling, you can add multiple servers and spread your clients across them, keeping performance levels high and response times snappy. As an added bonus, horizontal scaling can reduce the “blast radius” of any server problems. If 1 server crashes and you have 100 servers, that crash will only impact 1% of your customer base, making it easier to recover from the issue and less disruptive to customers.

But horizontal scaling isn’t all sunshine and rainbows. One of its major drawbacks is the increased workload it brings to the table. Firstly, you need to manage more servers — this means more OS updates, more systems that need to be backed up, monitored, and accounted for. Software licenses are often on a ‘per server’ basis and so having more servers means greater license costs. Balancing customer loads across large numbers of servers can be a challenge. A few heavy users being added to or removed from a relatively low-capacity server can have a dramatic impact on the utilization and load on that server. If you are growing extremely fast, the number of servers you need to set up to handle the load can be onerous for your systems administrators. Finally, servers can break, so the more of them you have to manage, the more maintenance work you need to perform to keep things running smoothly.

Depending on the exact specifications you need and the business model of your hosting provider, there is going to be a “sweet spot” of server specifications that allows for the most number of customers per dollar you spend. This sweet spot usually occurs somewhere in the midrange of a $200 – $300/mo unmanaged server. A starter server in the $100 / mo range usually has less performance-per-dollar and so horizontally scaling with that type of server can be ineffective in terms of cost, especially after accounting for server management and licensing expenses.

However, at some point, horizontal scaling will be needed — a single server can only be so powerful, and the most powerful servers come at a very premium price. Horizontal scaling is usually simple to implement for VPS or Shared hosting providers — install the OS and control panel, any server optimizations and security hardening you normally perform, and then add the server in rotation to the pool of servers your control panel uses for new customers. Vertical scaling requires evaluating what performance bottlenecks exist on the server, evaluating different options for server hardware, and getting competitive quotes for the new configuration. By contrast, horizontal scaling just requires asking your provider to give you more of what they’re already giving you.

Vertical Scaling Explained

Vertical scaling, or scale-up, is more akin to getting a bigger table. Instead of adding more servers, you focus on increasing the capacity of your existing server by upgrading its hardware components, such as a more powerful CPU, additional memory, or increased storage. For example, a VPS hosting provider might supercharge increase their server’s RAM to handle more virtual machines, or a shared hosting provider may upgrade the server’s CPU to accommodate higher traffic customer websites.

The simplicity of vertical scaling can be an attractive advantage. It doesn’t require the same level of intricate load balancing or server fleet management that horizontal scaling demands. Plus, with a beefier server, you may be able to afford more performant server parts such as NVMe drives or hardware raid. As these upgrades can be costly, it is best to spread that cost out amongst a larger number of customers by pairing those upgrades with faster CPUs and more RAM. The combination of these technologies can provide dramatically better performance, and by sizing the server appropriate to make use of these upgrades, the cost can be the same or lower on a per-customer basis.

Another major advantage is with software licensing. Although license business models will vary depending on the software, many popular software programs are licensed on a “per server” basis. Obviously in this case, the fewer servers you have, the less you have to pay for licensing. This factor alone can provide a powerful incentive for vertical scaling.

It is always smart to leave some spare server capacity in case a handful of users see an unusual burst of traffic. If a given server has dramatically more capacity, the percentage of total capacity you need to leave spare to accommodate a single-customer burst of usage, is far lower. This by itself can offer a big improvement in both performance and cost. This takes advantage of the law of large numbers — with a bigger sample size of customers on one server, the actual total usage will stay much closer to the expected usage based on the average.

However, vertical scaling it’s not without its own set of challenges. There’s a limit to how much you can upgrade a server’s hardware. The highest end servers demand a premium on a performance-per-dollar basis, because there are certain users who will pay almost anything to get just a bit more performance on a single server. Even if money were no object, there are always limits to how many CPU cores, how much ram, and how fast and large of disk drives you can install. Ultimately, you want to stick with ordinary servers that lots of people use, as this is where server vendors have the most supply and competition.

Another consideration is, when you invest heavily in a single server, you risk creating a single point of failure. If you have just one server and it encounters a serious problem, your entire business could be affected. Even if you do have multiple servers, you can sometimes prefer more smaller servers rather than fewer large ones, in order to reduce the percentage of customers impacted if any one server experiences a failure.

Making the Choice: Horizontal vs. Vertical Scaling

Now that we’ve explored the ins and outs of horizontal and vertical scaling, it’s time to consider the factors that will guide your choice between the two. Ultimately, your best option will depend on your specific circumstances: requirements, budget, and existing server configuration. So let’s dive into some of the most important considerations for making your final decision.

  1. Overall performance per dollar: Hosting is often seen as a commodity, therefore, it’s important to think about the cost-effectiveness of your scaling strategy. Horizontal scaling can sometimes be cost-efficient due the ease of scaling incrementally with commodity servers. However, you shouldn’t ignore the possibility of savings with higher end servers — more servers comes with higher costs in terms of power consumption, software licenses, and maintenance. Vertical scaling can be more cost-effective in terms of performance per server up to a point, but some hosting providers charge a lot for hardware upgrades. Even when priced fairly, there is a limit to how powerful a server you can get before diminishing returns limits how far you can go with a “scaling up” strategy alone.

  2. Headroom and performance overhead: When considering a scaling strategy, it’s crucial to think about the “headroom” or performance overhead you need to accommodate sudden spikes in demand. With horizontal scaling, adding more servers can provide a buffer against unexpected surges in demand, while vertical scaling might require more significant hardware upgrades to provide the same level of headroom.

  3. Licensing considerations: Some software licenses may be based on the number of processors or cores used, which could impact the cost of your scaling strategy. When choosing between horizontal and vertical scaling, be sure to factor in the potential impact of software licensing costs.

  4. Blast radius concerns: If a single server in your infrastructure encounters issues, how many clients will be affected? Horizontal scaling can minimize the blast radius by distributing clients across multiple servers, while vertical scaling might concentrate clients on a single server, increasing the risk of a broader impact if that server encounters problems.

  5. Ease of migration. Some hosting providers make it easy to scale vertically, some not so much. IOFLOOD tries to help in two ways. First, we offer to move your drives from one server to another. This can eliminate the administrative burden and cost of migrating accounts from a smaller server to a larger one, while minimizing downtime during the migration. If any downtime is unacceptable, we can also offer an “A+B” migration, which allows an overlap period between the old and new server. This allows you to migrate data between two live servers without having to pay for both at once.

  6. Plan your future upgrades. If you plan to scale vertically, you want to ensure that your hosting provider will make this easy for you. Be sure to ask plenty of questions about the upgrade process before you jump in. Some hosts make it easy to upgrade components or entire servers, and others, not so much. Upgrading Ram is usually easy without migrating servers. Upgrading CPUs can usually be done by moving drives from one server to another. And upgrading drives can often require ordering a second server and migrating your customers across the network, in order to avoid downtime or data loss. Keeping this in mind from the start can help you decide which things to buy extra of on day 1, and which things you can pay for as you grow.

With these factors in mind, you can begin to determine which scaling strategy best suits your needs. Horizontal scaling is often a good fit when redundancy, fault tolerance, and workload distribution are your top priorities. On the other hand, vertical scaling might be the way to go if you’re looking for a simpler infrastructure, assuming you can effectively manage the risks associated with a single point of failure.

Conclusion

In conclusion, as a VPS or shared hosting provider, understanding the differences between horizontal and vertical scaling is crucial for accommodating more customers on your dedicated servers. By carefully weighing the pros and cons of each approach and considering factors like performance per dollar, headroom, licensing, blast radius, and upgrade planning, you can make an informed decision that will best serve your business needs.

As your next step, we encourage you to take a good, hard look at your current scaling approach. Assess whether it’s still the best fit for your needs, and don’t be afraid to explore alternative strategies if necessary. After all, choosing the right scaling strategy can make all the difference in ensuring the continued success and growth of your hosting business.

Do you love servers?

We do! If you’d like assistance with growing your hosting company’s infrastructure, IOFLOOD is here to help! Your company is in good hands with IOFLOOD — contact us today to see how we can help you scale your infrastructure to meet the needs of your growing customer base. We can be emailed at sales[at]ioflood.com, or you can browse our server offerings at https://ioflood.com. We hope this has been an informative article, and we wish you smooth scaling!