I keep hearing net-admins, vm-folks, and project managers misrepresenting these terms (Virtualization, Utility Computing, Cloud Computing) over and over again. So I thought I would provide not only my perspective but the general consensus from the experts on the matter.
As we know Virtualization can be the emulation of Hardware in software, but it goes further then that. It is not just the ability to be a “fake” machine that exits as only software, but can additionally be the emulation of any service such as an operating system, kernel, or any other type of software that has input and output characteristics to be copied. Virtualization exists on either a singular Hardware platform or can be distributed across many machines.
Cloud computing is not Virtualization, but instead a cloud is a complete service offering that exists on systems / networks that are outside of the end users control. Confusion exists when people see a distributed VM infrastructure and think that is is a cloud. It is not, however a cloud may consist of a virtualized infrastructure but it doesn’t necessarily have to.
A cloud must offer both an administrative interface, a service or machine provisioning interface, and something for the end user. It’s that last item that defines the type of cloud, i.e. Software as a Service (SaaS). But how does this differ from mainframe computing one may ask. Well in short, in the case of private cloud, it doesn’t. However, if deployed as it was intended, by someone else / somewhere else, then the singular characteristic that sets it apart from a mainframe is that it is not the users (or users organizations) responsibility to maintain it.
So where does that leave Utility Computing. Simply put, utility computing is a business model for cloud computing where you pay to drink from the provider. No different then paying your electric provider for the amount of kW/hr used. In a Utility Computing environment, CPU cycles, and time are tracked and billed to the end user.
To sum it up:
- You may have VM’s but that doesn’t mean you have a cloud.
- You may have a cloud but that doesn’t necessarily mean you have VM’s
- You don’t deploy clouds, you deploy services
- A service may consist of a VM, but doesn’t have to
- If you are paying usage changes to a computing provider, then you’re using Utility Computing
- If you are paying flat rates for service then you’re using Cloud Computing
- If you own the hardware and software and it’s on your network, then it’s a private cloud
- Private clouds are no different then mainframes by definition.
I know that many out there will argue these points, so for more information I point you (in no particular order) to the following resources:
http://www.accountingweb.com/item/107692