Monday, November 09, 2009

This diagram displays the tiers of the system required for a website. When you have a website it is running on this stack.

First to define the tiers
E) Network and Power – physical network connection and power to run a server
D) Server hardware – the actually physical server (like your desktop pc)
C) Operating system – usually Linux or Windows – allows the other software to run on the hardware
B) Server Applications – on Linux (LAMP) this usually includes Apache, MySql, and PHP. These pieces are the final level needed to run the website itself.
A) Website / Applications – this include the website itself and required applications like Joomla or Wordpress

Now let us take a look at some various hosting options.

1) Full Hosting. In this case you provide A-E
2) Co-location. In this case you buy the E from a provider. You then buy a Physical Server and they install it at their location. If something goes wrong with the network they fix it. A-D is your responsibility. You get the server all to yourself.
3) Dedicated Server. In this case you are leasing a server from them (D-E). If something goes wrong with the hardware, they fix it. You get the Physical Server all to yourself. A-C is your responsibility.
4) Virtual Private Server (VPS). In this case They have a server and you are buying a piece of it. They set the operating system. Everything above this point is your responsibility. Physical Server is shared – usually between 20 and 100 other users. Often they will also have a standard set of Server Applications that cannot be changed. Usually you can install applications. So you are responsible for A and maybe part of B. They provide B-E.
5) Shared Hosting. In this case you are leasing space on a server. They set almost everything. Sometimes you get terminal (SSH) access but usually not. You cannot install any applications. You share space on a physical server with usually 100-500 other users. You are responsible for A. They provide B-E
6) Application hosting. In this case the application is installed for you. You cannot create any new pages. You can use the specific application. You are responsible for the data. They provide A-E.

It is very important to note that each level is available through managed hosting and most are available as unmanaged hosting. What is the difference? Managed means the service provider takes care of administrative tasks. Unmanaged means it is up to you to take care of these issues. For example at the server level. If it is unmanaged then if a fan fails it is up to you to get it fixed. If it is managed – they will take care of fixing it.

1) Hardware firewall - position (Z) - Some providers offer a dedicated firewall solution. Often a Cisco or Juniper device.
2) Server Firewall - position X
3) Application Firewall - position X/W (depending on the solution)
4) Redundancy - often located at position (Y) this allows the site to keep working even if a server fails. Not available in most packages - instead you must wait for server to be replaced and restored from backup.
5) Scalability – position varies – if your needs expand can you expand the services to match.
6) Backup - may be located at positions (Y - system image), (X - server instance image (if you have 100% of server doesn’t differ from Y)), (W - website backup), (V - website data backup) depending on what we are backing up and how. Most solutions offer limited backup options.

Very few people really desire to manage the whole thing or know how to do so. If that is you – then you will definitely want to choose Full Hosting as it gives you the maximum flexibility. This is where many medium and large corporations operate.

For the rest of us – we need to pick one of the other options. Which option you choose should primarily be dictated by what you need to get done. As you work your way through the options there are two things that change.

First is how much of the server is yours – as you can see with shared hosting you get around 0.5% of the server. On a VPS you may get 5%. On a dedicated server you get 100%. There are solutions available that allow you to use multiple servers. So how much of the server is yours.

The second thing that changes is your responsibility. As you get more and more of the server – you usually also get more of the responsibility for keeping it working. Increasing to a bigger package doesn’t just give you more resources – it also gives you more options and responsibility. If you want to scale up to more resources without additional responsibility then you must go with a managed solution. This is an add-on to many packages where the hosting provider takes care of some of the administrative burden for tiers that they would not normally cover for that package. For example on a dedicated server – you are in charge of the operating system, the server applications and the website. If you pay for managed hosting they will take care of some or all of these levels for you.