Scalability is the term given to your site’s ability to handle small and large loads of traffic. For the most part, your site handles small amounts of traffic just fine, but what would happen if you suddenly had a spike in visitors? Would your site fail? Would it suffer performance issues? Maybe the spike in traffic is completely invisible to your users — which is what you want to happen. What do you do to ensure your site is at its top performance even with unforeseen spikes in traffic?
Even small sites can have scalability issues. Usually, the owner has a small WordPress blog with little traffic, and then one of their posts go viral. It could also be a product that goes viral in an ecommerce store. You can’t predict this type of traffic if you aren’t actively promoting, so it isn’t until your visitors start complaining of performance issues that you notice the problem.
The main issue is that you don’t want your visitors reporting performance issues. By this time, you’ve already lost potential revenue and readers due to the issue. Most users just bounce from the site and find your competitor rather than take the time to send you a message. The only way to avoid this issue is to test and plan for it in the beginning.
Creating Scalability Tests
The concept of scalability is more intuitive than creating the tests themselves. Before you decide to test your site, you need to determine the kind of tests you want and the sections of your application you want to test, should you have multiple sections such as an internal and external application.
Since scalability generally focuses on load times, you need to create tests that emulate high volume traffic. Luckily, there are tools for testing scalability, which we list later in this article. To get a general idea of what you need to do to test your site, here are a few tips:
- Determine your highest volume. This isn’t always so easy, but a small blog likely won’t have a million visitors in a day, but it’s conceivable that you would one day have 1,000 or several thousands of visitors in a day. You need this number for your scalability testing tools.
- Create a testing environment. This environment should emulate production. This means that bandwidth and server power should be similar. The same applications should be loaded on the server. Tests will emulate users connecting to and using the application.
- Be prepared to fully analyze reports and make changes to your system. If you haven’t thought of scalability until now, then chances are that you’ll need to upgrade your system.
Finding the Right Tools
You can get a simple ping tool that detects if your site crashes, but these tools don’t support scalability functions. You need a tool to test for high-volume traffic. These tools are usually scripting tools with a GUI to help you configure your tests.
Since you will generally run them on your testing environment, you can configure your tools for any amount of volume. If you decide to use the tests on your production environment, remember that it could crash your site. Only use them on production during off-peak hours and expect some possible stability issues.
Here are some scalability tools to help you. Note that these tools are for web applications, but you can use tools for other services such as email.
What Happens When You Don’t Scale?
If your site fails testing, then you’ll need to do one of three things – vertical scaling, horizontal scaling, or code optimization. Code optimization can be done in conjunction with the other two, but you need your developers to run through the code to determine if slow load times are an effect from poor coding.
When you scale vertically, you add resources to existing servers. You add another CPU, more memory, faster hard drive, or maybe you even swap out a motherboard, which is uncommon but not unheard of. For the most part, when you scale vertically, you add more memory or CPU power to compensate.
Horizontal scaling adds more servers to your web farm. It’s the most expensive, but it’s sometimes necessary.
You can add resources to your site’s backend, but at some point adding resources has no positive effect. If you find that you add resources only to have the same traffic crash your servers, then it’s likely that your code is inefficient. If you have WordPress, it’s likely a poorly performing plugin. You can go through these steps to see if something in your WordPress site is the crux of your problem.
Don’t forget an affordable way to help scaling is using cloud resources. The advantage of the cloud is that you scale automatically and pay only for the resources that you use. With the cloud, you aren’t limited to one server in one location. You have the advantage of data centers that span across the globe.
In summary, scalability should never be overlooked especially if you ever plan to grow. Your goals should always focus on the growth of your business, but you need technology to keep pace with your growth. With a CDN, you can instantly improve your site’s performance in case of traffic spikes, but you must first test your site to determine how much resources you need to keep up with traffic increases.
Tested your site for scalability? Better ensure it looks good for each of your visitors – here’s 10 Chrome Extensions for Site Testing.