Wednesday, December 17, 2008

[ Cloud Computing ] Re: why virtualization?

Dan,

Let me see if I can address this.

Virtualization is a means to disconnect the running application from the underlying hardware.  Its an enabling technology used by all the cloud computing vendors to provide higher availability, mobility, and scalability.

How does it do that? Well, for one, virtualization disconnects the cycles of application development and deployment from hardware refresh. You can move a VM from one hardware platform to another without redesigning the application. I have a customer who recently replaced aging pizza box servers with blades, and since I had them move their apps to VMs, it was easy. Change the server controller to specify the old hardware was no longer available, specify that the new hardware was, and let the server controller move the VM to the new hardware either by live migrate or at next scheduled outage for patching. That very same process works to increase availability. Because when a piece of hardware fails, the server controller moves the VMs from the failed hardware to the replacement. Or, finds existing servers with capacity and shuffles VMs about to reach an optimum performance distribution.

Virtualization also provides scalability if you design your software load to allow for VM cloning. Simply clone a running VM, and start say, a new middle tier to take the load off the other(s).

And further, the choice of hardware is not necessarily to select the smallest available computing units, its to select the units that have the best price to capacity ratio, while not selecting hardware so big that a single unit failure takes out more than can be spread about the remaining hardware.

We select servers based upon cost of CPU to Ram to Power and Space ratio. And that changes over time. Virtualization also gives us the freedom to select hardware at todays prices, and not feel locked into one vendor.

Now, as for the connection between VMs and Cloud, its a logical step. Once your organization is comfortable with VMs, you can then pick those VMs up out of your data center, and run them on most cloud computing vendor's clouds. Same concept applies. So say your data center is currently at max capacity, and there is no better hardware to gain CPU to RAM to Power and space ratio, why not pick some of your lower, less mission critical services and simply run them in the CLOUD while technology and your facilities catch up? Overflow parking at the mall at Christmas analogy...

Once you can factor in your real cost of compute unit in your owned data center, you can then compare that to the vendors out there and see if it makes financial sense to engage for more and more, rather than building your own capacity. And if you're worried about the cloud vendor raising prices, just realize that if you've gone down this path, and have developed the in-house ability to manage VMs, you can always acquire co-lo space, or build out your own data center to compete with the cloud vendor.

Eventually, the actual cost of compute units will trend towards 4 underlying costs: The cost of low-skilled Labor to rack and stack, monitor and pull dead hardware, the cost for Electricity, the cost for Real Estate, and the cost for Hardware. If the cloud vendors mark that up too high, its then cheaper for their customers to run things themselves, and they lose competitive advantage.

A server controller with the ability to power on and off servers on-demand, with the ability to load balance VMs on the fly, and to move things from failed or failing hardware, and staff trained to develop and support VMs are the critical needs in this environment.

I hope that addresses what you need. Cloud does not replace or supplant Virtualiztion, used properly, it builds upon it. I recommend that you build your management framework on it as it translates into greater organizational efficiency.

Niels

Dan Kearns wrote:

Out of curiosity.... it seems to me that two pretty fundamental tenets of cloud computing are contradictory:

Virtualization: a mechanism to get better utilization of existing hardware when loads are generally smaller than node capacity, or spiky in the time domain

Griddiness: (for lack of a better word) the idea that appropriate cloud designs support massive scale, and do it by aggregating many small+cheap failure-prone compute units with smarter software

If the goals are to have smarter software and maximize utilization (or minimize power consumption for equivalent compute capacity), then why introduce the constant runtime overhead of virtualization instead of, eg using smaller more power-efficient compute-unit designs and making the hardware controllable by software?

Am I missing something, or is virtualization a tactical answer and therefore a short-term solution, and not a great place to start building management frameworks (for example) on top of?

-d


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Cloud Computing" group.
To post to this group, send email to cloud-computing@googlegroups.com
To unsubscribe from this group, send email to
cloud-computing-unsubscribe@googlegroups.com
To post job listing, send email to jobs@cloudjobs.net (position title, employer and location in subject, description in message body) or visit http://www.cloudjobs.net
To submit your resume for cloud computing job bank, send it to resume@cloudjobs.net.
For more options, visit this group at
http://groups.google.ca/group/cloud-computing?hl=en?hl=en
Posting guidelines:
http://groups.google.ca/group/cloud-computing/web/frequently-asked-qu...
This group posts are licensed under a Creative Commons Attribution-Share Alike 3.0 United States License http://creativecommons.org/licenses/by-sa/3.0/us/
Group Members Meet up Calendar - http://groups.google.ca/group/cloud-computing/web/meet-up-calendar
-~----------~----~----~----~------~----~------~--~---


--
Oracle
Niels Goldstein | Technical Director | Data Center and Infrastructure Management Center of Excellence Lead
Phone: +1 443 562 6198 | Fax: +1 443 364 4020 | Mobile: +1 443 562 6198
Oracle National Security Group (NSG)
7115 Bridoon Ave | Sykesville, MD 21784
Green Oracle Oracle is committed to developing practices and products that help protect the environment

No comments: