What is Cloud Computing? Or How to Speak Intelligently about Cloud and Virtual Private Servers
We are often asked questions about Cloud Servers and Virtual Private Servers (VPS) and which is better and in what circumstances. We also find that many customers are using these terms without a good understanding of what they mean and the differences between them.
Virtual servers are very common these days. Anyone can have one on his/her own desktop computer using software like VirtualBox (FREE for Windows, Mac, and Linux) or Parallels (Paid, for Mac). Essentially, these software products allow you to run one or more other “computers” in windows on your desktop.
For example, if you are using a Mac and need to occasionally use Windows applications, you could install one of these programs and then install an “instance” of Windows 7 in it. You could then “boot up” Windows 7 in a window on your Mac desktop. The Windows 7 “Virtual Server” thinks it is running on its own computer and behaves is if it is. It is fully isolated from your Mac (with the exception of file sharing and network sharing features that you may enable) and you can install any Windows 7 applications on it that you like. Personally, I do this with Parallels on my Mac Powerbook so that I can access any program needed at any time.
The “Virtual Server” is the separate “computer in a window” running on your desktop. You can have multiple instances running at once, assuming that you computer has sufficient memory and horsepower to manage them. In our Quality Assurance Testing lab, we have beefy computers that run a large number of virtual servers at once — Windows 2000, Windows XP, Windows Vista, Windows 7, etc. We can switch between each with a click to run programs in different environments and with different versions of software programs.
Virtual Private Servers
A “Virtual Private Server” (VPS) is really just a “Virtual Server”, as described above. The “Private” means that the Virtual Server belongs to you and that no one else has access or is sharing it with you. This is different than a shared hosting account, for example, where you share a single server with hundreds or thousands of other customers. The Virtual Private Server is isolates your data and capacity from other customers, providing enhanced security and privacy. It may provide other benefits like more access and customizations due to the fact that it is dedicated to you. The downside of a VPS is merely that it costs more than a shared environment.
Virtual Private Servers that you may purchase from a service provider are generally going to be much better than those you might run on your desktop. Why?
- The underlying server will generally be pretty beefy and redundant — with hot swappable redundant disk drives, hot swappable power supplies, lots of memory and horsepower.
- The underlying server will be dedicated to running virtual machines.
- Enterprise-level software will be used for running the virtual servers, providing higher levels of performance and reliability. I.e. VMWare ESX or Citrix XenServer
The word “Cloud” is a popular marketing buzzword that has gone viral. People think it means something very special and cool — some kind of magical computing resource that is just “out there”. That is not exactly true, though it’s a nice thought.
Lets say that you get your own beefy server or server(s) in a data center, like Rackspace, put them behind a good firewall, and install the VMWare ESX operating system on them. Then, you can create and manage your own set of Virtual Private Servers on these dedicated machines. This is the definition of a “Private Cloud” … a set of Virtual Private Servers under your complete control — hardware and software are dedicated to you.
What is the advantage of a “Cloud” over, say, just buying some real machines?
- Cost Savings. It is less expensive to get a more powerful machine and “slice it up” into smaller parts that are running separate servers, than it is to buy separate physical machines.
- Over Provisioning. You can assign each of your Virtual Servers a certain fraction of the overall underlying server horsepower (CPU) … and you can over assign. I.e. if you have three VPS running on one machine, you could assign each of them 75% of the overall server processing capacity. When one server needs to do a lot of work, it can take advantage of up to 75% of the overall capacity. As long as multiple servers are not very busy at the same time, this over provisioning allows for efficient use of system resources, rather than dedicating processing power to a machine that is mostly idle. With physical servers, capacity is often idle just so it is there when needed.
- Easy Upgrades and Migrations. If your servers need more capacity, you can just “Assign It” from the virtual server management console, assuming additional capacity is available in the underlying machine. If not, you can either (a) upgrade the underlying machine, or (b) move the virtual server to a new machine (which can often be done with minimal or no downtime).
The difference between Private Cloud and Public Cloud is:
- The underlying server hardware is not yours, it is owned by the Public Cloud Vendor.
- You are probably sharing the underlying server with other Public Cloud customers
- You have to pay for any changes to your Public Cloud Virtual Server configurations.
- The IP addresses associated with Public Cloud are well known and often black- or grey-listed for sending spam (because it is so cheap and easy to get these servers, they are popular with spammers).
The Down Sides of VPS and Cloud
Virtual Servers clearly have many advantages. However, there are some notable caveats that need to be considered before making a purchase decision:
- Over Provisioning: As multiple Virtual Servers are sharing the same underlying server, performance can become an issue if the capacity of the server is over provisioned to a degree where each virtual server cannot get enough processing power. This is mostly an issue with Private Cloud (where you make the optimization decisions) or VPS where the provider is trying to squeeze too many servers onto one machine.
- Lower Performance: The Virtual Server Management operating system inserts a layer of processing and management between each Virtual Server and the underlying hardware. This has some effect in slowing down disk access speeds and other performance factors compared to running on the same hardware as a dedicated (non-Virtual) server. Of course, if you plan for this by selecting really good hardware, it won’t be an issue.
- Single Point of Failure: Any hardware issue affecting the underlying server necessarily affects all Virtual Machines running on it. I.e. CPU failure, network failure, etc. Instead of one machine going down due to a hardware issue, you have have many going down. This issue is worse when you use large disk storage arrays and attach all of your Virtual Machines to them for storage. If that disk storage array, or its connectivity, has any issue — ALL of the connected Virtual Servers may be affected. These issues can be mitigated somewhat by using load balancing and other techniques, if your application/infrastructure allows it, but that also significantly increases the cost.
It is a common misconception that a “Cloud Server” is insulated from any kind of hardware failure and that it is redundantly hosted and always up. Such scenarios are possible, but the commodity Cloud Server solution is simply a Virtual Server on some single Physical Server. A single physical server may have some inherent redundancy (hot swappable drives and power supplies, etc.) but is not immune to failure.
What Kind of Server is Best?
Dedicated Physical Server (not Virtual or Cloud):
- You need to own the server hardware.
- You need the hardware to be dedicated to you.
- You do not want any hardware issue to affect any other server.
- You do not want one server to have any possible performance impact on another server.
- You have hardware requirements (such as very large disk arrays or memory) that are not affordably met by Public Cloud or VPS options, and Private Cloud is too expensive.
- The server needs to be so powerful or large, that there would be no extra capacity/room on the server for other Virtual Servers.
- You are concerned about outbound email deliverability.
Public Cloud / Virtual Private Server
These are effectively the same thing. The main difference is often in billing and management. With Public Cloud, you can often pay for the server by the hour, all provisioning is automated, and you may get little or no support (unless you pay extra). With a VPS, you may pay monthly, have more options in the configuration, and may have better support. However, the underlying architectural concepts are essentially the same — a Virtual Server on a shared underlying machine.
You might want a Public Cloud or VPS if:
- Your hardware and capacity requirements are modest and you do not need large amounts of storage space.
- Cost is an issue … Public Cloud and VPS will usually be cheaper than a Dedicated Server.
- It is OK if you have no control over the underlying hardware.
- Public Cloud:
- You do not have PCI, HIPAA or other compliance requirements … Most compliance would not be met in a Public Cloud environment.
- You are not sending outbound email (See - Are Cloud Servers Bad for Sending Email?) or can use smarthosting to get around email blacklists. This may also be a problem with some VPS providers.
- VPS: HIPAA may be OK in a VPS environment if the VPS provider is willing to sign a Business Associate Agreement with you.
- You only need one or a few servers.
Private Cloud is ideal if:
- You have a large number of servers to manage.
- You have complex or custom hardware requirements.
- You have need for dedicated hardware (i.e. for compliance reasons).
- You are concerned about performance.
- You are concerned about outbound email deliverability.
- Private Cloud Servers Arrive at LuxSci
- Understanding Cloud Servers
- How to Avoid Public Cloud Server Email Blacklists
- Are Cloud Servers Bad for Sending Email?
- MySQL v5.5.x Now Supported