In talking with people about the differences in hosting options, I ended up with the following continuum view of various hosting models. I still need to think about it some more, but I present it here as a work in progress.
|computing service provider||X||X|
|complete service provider|
- Self Hosted – You host the hardware and manage the data
This is the traditional scenario. You own and manage your hardware in your office space and all of your data resides on this hardware. You are responsible for maintenance and upkeep of the hardware, as well and maintenance of all software and files on the machine, including your database backups.
You know where your data is physically located, and can get to it at a moments notice. Taking care of the hardware/software is not core to your business, but is required to maintain complete control of your data.
- Co-location Hosted – You place hardware at a co-lo and manage the data
The next step is locating hardware you buy at a managed site, where the site takes care of the hardware maintenance and upkeep for you, for a fee. You are still responsible for all software on the machine, the maintenance of your database (including backups) and the replacement/upgrade of any hardware.
You know where your data is physically located, but it would take time to get to it.
This takes care of hardware management, which is generally not considered to be core to a business, allowing you to focus resources on more important things. However, there are still non-core activities you must engage in to maintain control of your data (eg. hardware replacement/upgrades).
- Co-location Rented – You rent the hardware at a co-lo and manage the data
In this scenario, you rent hardware at a managed site, where you pay for specific resources (CPU, disk, memory). The site provides you with those services on one or more machines, and maintains those machines for you. You are responsible for the software on the machine, including your database, but backups (and recovery) are handled by the co-lo provider.
You have a good idea of where your data is physically located, but perhaps not at any exact moment in time, since it may move within the co-lo facility as conditions change (eg. hardware failure or replacement).
At this point, all hardware management activities are taken care of for you, leaving you to deal with the software you require to run your business.
- Computing Service ProviderYou pay for hosted service and manage the data
In this case you rent specific services from a service provider (CPU, RAM, disk, operating system). The service provider manages the hardware and maintains the OS. You only have to manage any software specific to your business, which includes your database. However, the service provider usually manages backup and recovery of your data for you as part of the service.
Outside of a specific (and more expensive) agreement with the service provider, you don’t know where your data is physically located at any point in time, since the service provider is free to place it anywhere in any of their data centres that can provide the service you are paying for.
However, you are getting rid of the need to manage much of the software needed to run your business, and increasing your ability to stay available, leaving you to maintain only the data and data management software.
- Complete Service ProviderYou pay for hosted service and data
In this case you rent all services from a service provider. The service provider manages the hardware, maintains the OS, and provides access to the software you need, usually via web services. You only have to access the service to manage your data.
Again, short of a specific (and likely expensive) agreement with the service provider, you don’t know where your data is physically located at any point in time, since the service provider is free to place it anywhere in any of their data centres that can provide the service you require.
You have effectively gotten rid of all hardware, software and data management requirements at this point. All you need to do is put data into the system, and get data out of the system, in specific formats as specified by the service provider application.