What is the difference between a cloud server a virtual server and a dedicated server?
Solution 1:
VPS and Cloud are the same damn thing.
A dedicated server is a physical box sitting in a rack somewhere that is not shared with anyone else, that you can do whatever you want with.
Solution 2:
A dedicated server is a full server to which you have exclusive, guaranteed access.
A VPS provides you with similar levels of administrative control as a dedicated server, but is powered by one of a number of technologies, either full virtualization (Xen, VMWare) or single-image segmentation (OpenVZ) to give you the illusion of exclusive access to what is really a shared resource (and almost always oversubscribed in many ways)
Traditionally, dedicated servers and VPSes are billed on a fixed cost for a time span. Dedicated servers in particular require investment on the part of the provider, and may be leased on a contract with a minimum duration.
A Cloud server is technically just a VPS, but it has some differences in billing and provisioning:
- Cloud services are usually billed on a metered consumption basis. While a VPS may have a variable cost for data transfer over some threshold, an idle VPS would have a flat cost. A Cloud server would typically have a base cost per hour running -- and may also have charges for data transfer just like a VPS.
- Cloud servers employ more automated ordering and deployment, including the ability to provision additional servers nearly identical your current ones quickly, possibly programatically using an API. This lets your application add capacity to itself -- this is not magic, and may require significant architectural changes to your environment.
Other services may be marketed as 'cloud': what was 'hosted email' before is now Cloud Email (Service-as-a-Service); some shared webhosting providers are relabeling their services similarly.
Good use cases for cloud servers are short-duration peak loads: services with hourly billing allow you more flexibility to create and destroy systems as needed. Constant load setups, which will always be running, may not be economical to run in a Cloud environment; applications that have constant sustained high load are unfriendly to a provider's over-subscription model, and may be better suited for a dedicated server.