Where to deploy production software is one of the questions a software startup has to answer. At a high level there are three options outlined below:
|Option||Hosting Vendor Responsibility||Developer Responsibility|
|Managed Hosting||Vendor provides dedicated servers and is responsible for physical and network security, connectivity, power, operating system, hardware/OS/network monitoring.||Developer installs application software and any packaged software applications require, and is responsible for application layer monitoring and security.|
|Cloud||Vendor provides virtual servers. Responsibilities are similar to those outlined above.||As above|
|Co-location||Vendor provides floor space and cages to install servers in, physical security, redundant power, environmental control, and network connectivity.||Developer purchases and installs hardware, installs application software and any packaged software applications require, and is responsible for hardware/OS/network/application monitoring and security.|
Each of the options has advantages and disadvantages.
|Managed Hosting||Low friction acquisition/deployment process.
Quick time to deploy .
Allows developer to focus on what they do the best – application development – by delegating system administration responsibilities to a specialist.
|Vendor mistakes/issues can negatively impact application uptime.
As a number of servers grow, costs can add up very quickly.
|Cloud||The most flexibility in matching hardware capacity to application needs.
The most attractive pricing.
|Cloud technology is still considered emerging.
Lower maturity means higher uptime risk.
|Co-location||Total flexibility in hardware selection and configuration.
(Almost) full control over environment.
Ability to commit to more demanding SLAs.
As number of servers grow, it can be more cost effective than Managed Hosting.
|Requires capital outlay.
Requires system administration resources.
Initial launch and subsequent capacity expansion involves a lead time (purchase, shipping and installation time).
To simplify the decision making process, we can evaluate options by looking at two key dimensions – cost (which happens to be correlated with time to market) and level of control (which is correlated with SLAs such as uptime commitment).
Fig 1. Hosting Options
- In early stages of product development cloud is very compelling. Costs are low, time to market is short and higher uptime risk is acceptable. Cloud technologies are rapidly evolving and with the right architecture this can be a viable long term solution as well.
- Managed Servers is a solid, mature option for any company with a relatively low number of servers.
- For a company with a large traffic/large number of servers, co-location may be the optimal solution.