From Virtualization To Cloud Computing
Virtualization and cloud computing have been getting a ton of buzz. But there has been less discussion about how virtualization, now known mainly for its server consolidation capability, will morph into cloud computing. For that to happen, servers, storage, and networks have to all fuse into one virtual machine from a developer’s and an administrator’s perspective. If the rumors that Cisco will buy EMC (and by extension its majority stake in VMware), the industry will have the first vendor who has a credible shot at putting together all the pieces. This post and the one that follows attempt to layout the different ways this transition could unfold. (Disclosure: I’m an investor in VMware).
Cloud computing, previously known as utility computing, is where all computing resources in Internet data centers look to users, developers, and administrators like one giant computer. It offers seamless scalability and radically reduced administrative overhead. There is more than one path from today’s virtualization to tomorrow’s cloud computing, and they’re not necessarily straightforward.
Ray Ozzie highlighted the importance of the transition from virtualization to cloud computing as one of the “three core principles that we’re using to drive the reconceptualization of our software so as to embrace this world of services that we live in… Most major enterprises are, today, in the early stages of what will be a very, very significant transition from the use of dedicated application servers to the use of virtualization and commodity hardware for consolidating apps on computing grids and storage grids within their data center. This trend will accelerate as apps are progressively refactored, horizontally refactored, to make use of this new virtualization-powered utility computing model. A model that will span from the enterprise data center, and ultimately, into the cloud…”
Establishing Principles For A Set Of Possible Scenarios
But how are we going to get from here to there? I’m not sure it’s straightforward. In order to consider the alternatives clearly we need to lay out several principles that will define the end state, now matter how we get there:
1. Compute virtualization that scales out to give applications as much or as little isolated CPU capacity as they need within or across machines to deliver on service level agreements.
2. Storage virtualization that hides the physical layout of files on storage devices, whether in a SAN or NAS topology, to give applications isolated access to files based on a predetermined service level agreement.
3. Network virtualization that offers bandwidth isolation to applications on a shared infrastructure as well as priority to meet a service level agreement.
4. Policy-based management automation that ensures service level agreements (SLAs) by delivering availability, security, optimization, and provisioning.
(For more background see IBM’s excellent Redbook on On Demand Operating Environment)
Potential Scenarios To Get From Here To There
The reason utility computing didn’t take off early in the decade was because it required all existing software to be rewritten. Existing software for the most part is only aware of the machine it’s running on. But utility computing required software to be rewritten to a new layer that made collections of servers, storage, and networks in the data center look like one machine. VMware took off because it turned that requirement on its head. It let several existing software applications run side by side, each thinking it owned the whole machine. Server consolidation via virtualization took off as the first application of what was known as utility computing. With the increasingly widespread deployment of VMware infrastructure, the company is in a good position to actually get software companies to write to a future layer that makes pools of resources look like a single machine. In the meantime, the competition isn’t standing still. The following are the possible scenarios we can see that might unfold over the next 5-10 years.
- VMware manages compute virtualization, Cisco manages network virtualization, and another vendor such as EMC or Network Appliance manages storage virtualization.
- VMware becomes the end to end virtual infrastructure.
- Microsoft manages end to end virtual and physical resources for Windows shops
- Red Hat or Citrix could do the same as 1 or 2 for Red Hat Linux shops
- HP Openview or IBM Tivoli manage both virtual and physical infrastructure in mulit-vendor shops
- Individual vendors such as Oracle and SAP write their own policy-based virtualization into their infrastructure
- Cloud computing vendors build their own purpose-built virtualization infrastructure
The next post will elaborate on these seven scenarios.