What's in this article?
Web Hosting Explained
by Dave Reeder , 04 July 2019
The operating system is the system software that manages hardware and software and provides common services for computer programs.
Your main choice when choosing mainstream hosting will be either Linux or Windows:
Linux is a family of open-source operating systems. There are various Linux "distributions" such as Ubuntu and CentOS, but the hosting company will normally offer one choice of Linux for most websites. Linux will normally come with Apache webserver and is ideal for running PHP websites based on platforms such as Wordpress, Drupal and Concrete5.
Windows Server is a different version of Windows to the versions that people use on their home and business PC's. Windows is the ideal choice for running websites based on ASP.NET, which is the Microsoft alternative to PHP.
Shared, VPS & Dedicated Servers
One of the biggest choices you have when it comes to choosing hosting is whether to go with shared, VPS or a dedicated server.
Shared hosting is normally the cheapest option and ideal for small websites or start up sites. As it's name suggests, you are sharing a server with other websites. Depending on the quality of the host, you could be sharing with lots of others who can hog resources such as CPU and RAM and contribute to your site slowing down. With quality hosts, you can get decent performance from shared hosting, but if you need a high performance option, look at the next two options.
VPS (Virtual Private Server)
VPS or Virtual Private Servers are often the next step when you want to upgrade form shared hosting. You get more choice if you want to run specific applications and often better performance. This means you site will load quicker and you can run higher memory limits etc. It may suprise you to find out that you are still sharing a physical machine but using virtualization, that machine is divided up and can run completely seperate operating systems in each slice. One great feature of VPS hosting is you can upgrade the RAM and CPU on your "server" without a technician needing to physically insert more RAM or swap out the hard drive for a larger one.
If you have a bigger budget and high traffic website(s) then you should consider a dedicated server. Unlike a VPS, you would normally be offered a set amount of CPU, RAM and diskspace, however these limits will be very high and unless you are running a hugely demanding site, you won't even scratch the surface of what they offer. Another advantage is that you'll get a very high bandwidth network. Although dedicated servers are the "daddy" of the hosting options, it could be a huge waste of money to jump straight to this level. Most websites would grow into this option over time.
Accessing the server with Control Panels & SSH
Another important consideration is how to access your server and do routine tasks like backup and recovery, creating FTP accounts, changing the PHP version etc.
cPanel is an online Linux-based web hosting control panel that provides a point and click graphical interface and range of tools for simplifying the process of hosting a website. With shared hosting cPanel is normally offered free, although there can be a cost with VPS and dedicated servers.
Plesk is an alternative to cPanel and provides an excellent array of tools to easily administer your website without having to type SSH commands. I've used Plesk and cPanel and they are both really great control panels.
SSH is the "hardcore" option where you type commands to perform actions. To access your server via SSH, you use a console window and type your commands to tell the server what to do. SSH is very powerful but if you haven't used it before it is a steep learning curve. However, once used to SSH, you discover that you can do some things much easier than with a control panel and you may have more control over your server.
Which Control Panel do I want?
Some hosts have their own control panel which is often vastly inferior to cPanel and Plesk and some may not allow or make it difficult to access the hosting via SSH. It's best to ask to make sure you can do what you need to do with your hosting before you buy.
Some of the other control panels that hosts use have proven to be very frustrating. Simple tasks like zipping up files for download have been impossible. This means downloading or uploading thousands of files via ftp which can be unreliable and very slow in comparison.
cPanel and Plesk dominate the market and offer everything you are likely to need in very efficient packages. You probably won't get a choice between the two, but that's not an issue, they are both great control panels.
If you're as old as I am, your first memory of databases will be from school using Microsoft Access. There are many differences between different types of databases, well beyond the scope of this article. Here are some that you have probably heard of and are likely to come across when hosting your website:
MySQL is opensource, so can be used, studied and distributed to anyone, for any purpose. With hosting for PHP websites, you are most likely to use MySQL. If you invest in Linux hosting rather than Windows, you will probably get MySQL bundled with it, although you may get an alternative like MongoDB. MySQL is one of the most popular database servers and is very flexible because it allows for multiple storage engines such as InnoDB and MyISAM.
Microsoft SQL Server (MS SQL) is Microsofts database server offering. Unlike MySQL, it is not opensource, it is a product sold by Microsoft. MS SQL was developed to run on Windows servers, so if you go for a Windows server, it will most likely have MS SQL installed. However, recently Microsoft announced they will make MS SQL available on Linux and Mac OS X but it will lack certain features.
According to DB-Engine rankings, the Oracle Database is the most popular database engine. However, Oracle databases are normally used for larger businesses with over 50 employees, rather than individuals and small businesses looking to host a website.
Server Hardware & Performance
The hardware that a hosting company uses can make a big difference to how fast and how stable your website will be. For websites or applications under high demand, all aspects of the hardware set up need to be considered and configured to get the most out of the hosting.
In addition, if your website is not built to be efficient it may require hosting with plenty of resource such as CPU and RAM. If it makes a lot of database queries or uses a lot of memory for certain processes, you can find yourself needing some substantial hardware to get it running smoothly.
It is worth looking at optimising the web site itself to reduce the load on the server and your wallet!
Your websites' hosting is part of a server (or an entire server if you have a dedicated server) and that server sits in a network at your hosting company. The speed of that network is important, if it reaches it's peak speed then things could slow down.
Hard Drives - SSD & SATA
SSD drives are solid state drives with no moving parts. SATA drives have an "arm" that swings back and forth across the "platter". The magnetic platter stores the information on your server and rotates at high speed. SSD drives are more expensive but they are much faster at reading and writing data and more reliable due to the lack of moving parts. However, the cost can prove too high if you are storing a lot of data online.
The CPU(s) (Central Processing Unit) are the main chip(s) in a computer that carry out instructions such as arithmetic, logic and core functions that control the computer. A web server is basically a computer, so the more CPU's you have the more functions the server can handle.
Certain tasks to do with your website will put more load on the CPU(s), so it is important to monitor this if you are changing your site or growing your traffic to make sure the loads on the CPU(s) are acceptable.
RAM stands for Random Access Memory. All software installed on your web server depends on RAM to keep them running. Without RAM the software processes on the server would not be able to access data stored in variables and they may stop working altogether. So RAM is very important and your server can literally crash if it runs out of memory.
You website or web application needs to be coded in an efficient way so that each process (e.g. load a page, load data from the database, build a dynamic navigation bar) doesn't use too much RAM. Imagine if a process uses 512MB of RAM to run and your server has 2GB of RAM. Technically you may run out of RAM if that process runs four times simultaneously. If the process was coded in a more efficient way and used 128MB of RAM, you could potentially run it sixteen times at the same time.
Bandwidth is the amount of data sent from the server to visitors in a certain amount of time. For most hosts, bandwidth is a consideration and cheaper hosting may be quite limited. Large sites that attract a lot of visitors and have many images and files to transfer can use a lot more bandwidth than smaller ones.
Networks also have a bandwidth rating, determined by hardware (ethernet) or channel width (Wi Fi) which in turn determines how much data can be sent per second.
Dynamic websites based on things like Concrete5 and Wordpress have various processes going on which rely on server software like MySQL and Apache (or similar). When you load a page a lot needs to happen. PHP scripts need to run, SQL queries are made against the database and various other processes need to happen before the page renders the content and images that you see.
This all slows things down on the server which can lead to a long server response time, which is the time when you see a white screen before the content starts to appear on the page.
Aside from optimising the code on the site which can be a long a painful process, we can use server caching to erduce the server response time and reduce load on the server. Litespeed cache is one of these such caches and it can reduce server response time dramatically from a matter of seconds to a fraction of a second!
If you have got a heavy site that is slow to load, using a server caching solution like Litespeed cache can make all the difference. Made Simple Media's "High Performance" Concrete5 hosting and Wordpress hosting use Litespeed cache to great effect.
Monitoring the Server
It's important to keep an eye on your server to make sure you have enough resources available, especially if you are improving and growing your websites' traffic.
WHM and cPanel have pages that you can view that show how much disk space has been used and how much load there is on the CPU.
SSH provides varous commands so you can login and check how things are running and there are many different server monitoring software available.
On Linux systems, you need to know how to understand CPU load in order to work out if your system is under or over loaded.
For a single CPU server, the maximum load before processes start to be queued is 1.00. Imagine your load is 2.00, that means there are twice as many processes as the CPU can cope with at that time. Ideally your load would be at a maximum of 0.70 to allow headroom for the CPU to deal with more processes, should it need to. A load of 5.00 or more means your server is probably hanging or slowing down and you need to urgently look at it.
Imagine you have multiple CPUs. The rule of thumb is to allow a load of 1.00 max for each core. So on a quad-core system a load of 3.00 would be healthy and 4.00 would be 100% CPU utilisation on each of your 4 processors.
Content Delivery Networks (CDN's)
A Content Delivery Network is a network of servers distributed throughout the world, designed to provide high availability and high performance, relative to the location of end users.
By spreading the data around various geographical locations, there is less latency than if your users were far away from your server.
Network Latency is caused by various factors, but one factor is the distance between you and the web server. A CDN such as Cloudflare caches your website and serves the cache at locations nearer to the user, which can dramatically improve web page loading times.
Having backups is essential for websites that are critical to your business. Imagine if your server got hacked or you accidentally deleted all your files or database and you had no backup!
Most hosting providers offer some sort of backup, but you need to carefully check how often backups are taken, what data is backed up and where are the backups stored?
On all of our hosting packages we pay extra for this so our clients data is kept safe just incase we need to retrieve it.
One thing that really sets the excellent hosting companies apart form the good hosting companies is their level of support. Some companies have amazing control panels where you can spin up and resize servers yourself, but when you need a helping hand the support is not available.
You need to carefully consider what level of support you want. If you are choosing a VPS, the cost will be increased quite significantly by adding Managed Support, but unless you are an expert in server administration you are probably going to need it!
As I mention above, the level of support that you get will vary from company to company, so be sure to ask about what support you wil receive before you buy hosting.
Examples of UK Hosting Providers
Here are some of the hosting providers we have worked with over the years:
We offer various hosting packages to our clients and anyone who wants to host with us using Krystal. We find that Krystal offer the best support for the cost and are always happy to help out with anything from investigating email issues to installing new PHP modules on our servers.
We have invested in daily backups on all servers so we can always roll back to the previous day if required and our High Performance hosting customers benefit from Litespeed Cache which offers incredibly fast page loading times which leads to lower bounce rates and higher rankings in Google*.
We also throw in a free domain name and free SSL certificate so that your website can run on https as easiy and cheaply as possible.
For more information or to take advantage of this market-leading hosting, please contact us.
There are many hosting companies out there and price various wildly depending on what you need. Basic shared hosting from a budget supplier can be a few pounds per month, or even free! VPS servers can then be £150+ per month and dedicated can be over £500 per month. If you are running a really high traffic solution then you can be looking at tens of thousands a year for complex set ups involving load balancers and multiple servers.
Going for the cheapest hosting can be tempting, but you are more likely to end up with a slow loading website and a lack of support from it. Support is really a critical factor when choosing hosting! We have taken on customers who wanted to move from DIY platforms, or platforms where the support has not been good enough.
* Page speed is now a ranking factor in Google. Having a fast website means Google may move you up it's search results above your competitors which can lead to more visitors and more sales. A slow website will lead to your visitors getting frustrated with waiting for pages to load and they will end up leaving quickly with less chance they will buy from you.
Join the Discussion...