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), Parallels (Paid, for Mac), or VMWare (Paid, many platforms). 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 or 8 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 VMWare Fusion on my iMac 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 many separate such computers running at once, assuming that your 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, Mac, 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 to it 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, privacy, and reliability. 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 generally costs more than a shared environment (for customers with smallish needs).
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 hardware and software will be highly optimized for running virtual servers and will be updated and maintained by trained professionals.
The word “Cloud” is a popular marketing buzzword that has gone viral, had its ups and downs, and is now back in vogue with relatively positive connotations. 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 or perhaps OpenStack 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 — both the underlying hardware and the software are dedicated to you and not shared with anyone else.
What is the advantage of a “Cloud” over, say, just buying some physical 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 many 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. E.g. 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). See Are Cloud Servers bad for sending email? In some special situations, customers of Public Cloud servers can have special blocks of IPs used with their servers so as to avoid this IP reputation issue (LuxSci has this arrangement with Rackspace, for example).
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. LuxSci does not over provision in any way that would affect your Private Cloud server performance.
- 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. Most cloud servers these days are running on very fast hardware, so this performance impact is not really important, compared to the other benefits of cloud over physical servers.
- 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 of the infrastructure.
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.
- You are not concerned about unexpected downtime due to underlying hardware failure.
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 or Private Cloud
- It is OK if you have no control over the underlying hardware.
- 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.
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 want to optimize reliability and minimize the chance of downtime
- You are concerned about outbound email deliverability.
Cloud Servers at LuxSci
LuxSci offers physical servers for customers that have very specific requirements. For all others, we offer “Business” and “Enterprise” servers. These correspond to Public and Private Cloud servers in our highly customized Rackspace infrastructure.
Our “Public Cloud” servers are setup such that they are behind our dedicated hardware firewalls and use a LuxSci-specific IP address space that is not tainted by the kinds of grey listing common to Public Cloud.
LuxSci customers can thus decide on Business vs Enterprise servers simply based on their reliability requirements. The Enterprise servers are resistant to underlying hardware failure and the Basic servers are not. Both types can be HIPAA compliant and both are great for sending outbound email. Compare these options.