How to scale your website

So you have a website, and are starting to get good traffic to it. However, there is a problem: at peak times the site is slow to load, and this frustrates your visitors. If you are selling products online, this can lead to customers not purchasing your goods. Even worse, poor site performance can negatively affect your Google rankings.

So, what can you do? In this article we describe the typical flow of a website that starts out with basic hosting, and grows to a large multi-server site. We hope that this article helps you to understand the options that are available to you as your website grows, and some of the benefits of different solutions that are available.

Stage 1 – Cheap & Cheerful Hosting

When you first launched your website, cost was likely a big factor. If you are building a business, cash flow might be tight, and the resources are simply not there to invest in high quality shared hosting environments. You might have started out on ‘cheap and cheerful’ hosting (or even free hosting), typically provided from the US.

After not too long though, you start to see the problems with this solution. The website is inherently slow, as it has to come from the other side of the world to your visitors. There might be frequent outages, and when you need tech support, you are left for days before getting help.

Hopefully you are starting to generate some cash flow from your website. Time to upgrade to quality Australian hosting.

Stage 2 – Australian Shared Hosting

Moving your hosting to a quality, Australian based shared hosting provider will bring a lot of benefits to your website:

– Firstly, your content is being served to your visitors from inside the country. As the content is significantly closer to your visitors, your website will load faster.
– Google will boost your website rankings as it can see you are targeting Australian customers, and your website is hosted in Australia
– If you have any issues with the hosting, you get a more prompt response, and are not having to navigate time zone differences to speak to tech support.

With better Google rankings (you can even purchase an SSL certificate to keep your customers private information secure, and this helps to further boost your rankings), you get more traffic and more sales.

However, at some point, you start to notice the same issues. As you offer more products and your site grows in size, it becomes less punchy, taking a bit longer to load. At your peak times, the site starts to really bog down, and becomes difficult to use.

You might be using an eCommerce platform such as Magento, Opencart or WooCommerce. These platforms make running your online business significantly easier; however, these are not light programs. They need real server grunt to run quickly, and shared hosting doesn’t cut it anymore.

Stage 3 – VPS (Virtual Private Server)

An Australian VPS (Virtual Private Server) is the next logical step up from shared hosting. The VPS provides a number of benefits if you upgrade:

– As a separate server, you are not affected by other sites causing issues with the host
– You have the freedom to install server modules as required to help bring additional functionality to your website.
– More resources are available to help your website run faster

The added resources and stability help you to grow your website and your business’ success. For most eCommerce sites that are moderately successful, this is the level of hosting that we recommend.

Stage 4 – VDS (Virtual Dedicated Server)

As your site grows, you may find that you outgrow the resources that a VPS server can provide. While the VPS was a great step up from the shared hosting, it can no longer handle the load required at peak times. A Virtual Dedicated Server (VDS) provides the next step up in term of performance.

While a VPS provides separation between other customer’s websites and your own, there is still quite a lot of shared resources between VPS servers that exist behind the scenes.

A VDS, however, runs directly on the service provider’s core infrastructure, typically in the same manner as their other production servers. This means that there is a significant boost to the performance and reliability of your server.

VDS servers can be purchased with a wide array of different resource allocations, and it is important that you select a VDS service that provides the resources required, without paying for resources that are not required. Luckily, VDS services are quite flexible and the resources for your server can grow with your site.

Stage 5 – Content Delivery Networks (CDNs)

Taking advantage of a CDN can provide a significant speed boost to your website. However, there are a few key points that need to be understood about your website before taking this step.

In layman’s terms, a Content Delivery Network allows you to take advantage of a worldwide network of servers to deliver static content to your visitors. This content usually takes the form of:

– Static pages (informational pages on your website)
– Images
– Streaming video
– Other site resources (such as CSS stylesheets)

The benefit that CDNs provide is that the content served is cached on a network of servers, and delivered quickly from the nearest point to your visitor. This has a twofold effect:

– As the content doesn’t come from your server, the load on your server for each visitor is reduced, allowing the server to run quicker, and service more simultaneous visitors
– The content delivered via the CDN is delivered from the nearest POP (Point of Presence) to the website visitor, so it is delivered very quickly

Before investing in a CDN to boost your websites speed, it is important to understand how much of your website can be sped up with a CDN, and what the benefit will likely be. If you have a web developer that works on the back-end of your website, this is something that you should discuss with them.

If you have a good web hosting provider, they can also offer some insight into the benefits that a CDN can provide to your website.

Stage 6 – Splitting Server Roles

So your website is booming. You are ranking very well on Google (probably #1 or #2) and you are getting lots of visitors. You might be working with an SEO team to help drive even more traffic to your site. You have spent a lot of time optimising your website for conversions, and you are seeing good results.

Having followed all of the steps provided in this article, you have your site hosted on a powerful VDS server, however, with the massive numbers of visitors that your site gets at peak times, it still slows down significantly.

Up until now, your website’s components have always been run from a single server. With the growth in traffic however, it is time to start splitting the two main components of your website up.

Generally speaking, the two key server components of your website are:

– The database and database server
– The web server

Both of these core server roles are critical to the performance of your website, and if either one of them is slow, it will significantly affect the overall performance of your website.

By splitting these two roles onto separate servers, your website will be able to handle large volumes of visitors much more easily, as the processing required to display your site is more spread out.

Luckily, moving from a single server to multiple servers is quite easy to achieve. With your new server provisioned (likely to be another VDS), it can be set up by your web host to be your dedicated database server. Your website’s database is simply moved from your current main web server across to the new server, and the configuration for your web application is updated so it can reach the new server.

Now with the database running on a separate server, your webserver is no longer trying to juggle resources between fetching or updating data in your database, and running the code that displays your beautiful website.

Step 7 – Multiple Web Servers (Load Balancing)

With ever increasing popularity, and despite the use of a CDN, and splitting your web and database servers, your systems are still being overwhelmed at peak times by the demand.
The final technical step you can take is to introduce load balancing technology, and spread this load out over multiple servers. For your website’s front-end (the web server), this can be implemented with the use of one (or preferably more for redundancy/reliability) Load Balancers.

Load Balancers are special technology (delivered either as a physical appliance, or a software service) that allow you to distribute your site amongst multiple webservers. It does this via a very lightweight (read: quick) process that routes each individual request for your websites pages to different servers. You could have 2 web servers set up, 20, or even hundreds.

The Load Balancer should have smarts built in to continually check the health of each web server. If one of the web servers has an issue, it can be taken out of rotation, and no negative impact will be visible to your websites visitors.

Depending on how your website is built, you may also find that the database server is under a high load, and may also benefit from being run on multiple servers. In this instance, your database server can be set up in a ‘cluster’ of multiple servers, which allows multiple servers to access your database and service the requests for data from your front-end web servers.

Setting up a database cluster can be quite a technical task – it is something that you are best to speak with an expert about before deciding to take the plunge.

Share if you like this article

Leave a comment

All posts by Month