Monday, July 4, 2011

Virtualization is not Cloud Computing !!!

Virtualization is not Cloud Computing

Virtualization is a technology
When you run software in a virtual machine, the bits that represent the program's instructions run through a layer of software that "pretends" to be a dedicated server infrastructure, the hypervisor. The hypervisor is the heart and soul of server virtualization, and is the enabler of the consolidation and agility values that virtualization brings to the data center.
It is because of the hypervisor that virtualization is the true disruptive technology that enables cloud computing on a massive scale. Hypervisors allow servers to be multi-tenant without rewriting applications to be multi-tenant. Hypervisors allow operating systems and applications to install to a consistent hardware profile, even though they end up running on a variety of actual physical system implementations. Hypervisors also allow servers to be manipulated by software APIs, which greatly simplifies the act of automating IT operations.
Virtualization is abstracting computing functions into a logical environment that appears ideal for that function that may be very different than the actual physical environment. This trades computing and other resources for flexibility, scalability, performance, reliability or some other requirement
Virtualization can be applied to many types of computer resources: Storage, Network, and Compute (CPU / Memory etc.)
# Hypervisors
For high-availability, multiple hosts can be “pooled” together to form “clusters” or “farms” often sharing the storage on which the virtual machines themselves reside. In this fashion VMs (guests) can be moved from host to host merely by using a management tool to point the file(s) containing the VM to a different host. A common technique called Live Migration allows a virtual machine to be moved from host to host without the need to be shut down and restarted. A technique called Distributed (or Dynamic) Resource Scheduling can make use of this capacity to actively load-balance VMS among multiple hosts in order to most efficiently utilize the resources available to the VMs
Hypervisors fall roughly into three categories:
Emulation (sometimes call full virtualization) where the hypervisor creates a virtual machine entirely in software.
Hardware-Assisted Virtualization where the VMs make more full use of the built-in virtualization capacity built into modern CPUs (such as those from Intel and AMD)
Para-virtualization where the Operating System is aware that it is virtualized, and has been re-coded and recompiled specifically to run on a virtualized platform
Hypervisors are usually classified as Type II (run on top of a standard OS such as Windows or Linux) and Type I (bare metal) which run directly on a hardware platform (host), typically utilizing a “stripped down” version of a standard OS in order to provide some services to the VMs (guests.) VMware provides several versions including (Type I and II), as does Microsoft
Virtual Box is a popular type II product, though rarely used in large production environments
Xen and KVM are Open Source solutions - Bare Metal
Type II solutions suffer from a disadvantage (real or imagined) that reliance on an underlying Operating System means that all the guest VMs inherit the vulnerabilities and weaknesses of that OS. Type I hypervisors are overwhelming While I must stress that Virtualization is by no means a necessity for Cloud Computing, the agility and cost-effectiveness ensure that many (if not most)
Cloud Providers will be offering up hypervisor-based solutions, especially for Platform and Infrastructure as a Service.
While I must stress that Virtualization is by no means a necessity for Cloud Computing, the agility and cost-effectiveness ensure that many (if not most) Cloud Providers will be offering up hypervisor-based solutions, especially for Platform and Infrastructure as a Service.
An initiative called OVF (or Open Virtualization Format) is being adopted to ensure some level of transportability for applications among various virtualization platforms
Some of the important advantages of virtualization are
• Consolidation of resources
• Cost reduction due to the above consolidation of resources
• Ease of management due to the above consolidation of resources

Cloud computing is an operations model, not a technology
When you run an application in a public or private cloud, there is no "cloud layer" that your software must pass through in order to leverage the physical infrastructure available to it. In the vast majority of cases, there is probably some virtualization involved, but the existence of hypervisors clearly does not make your data center resources into a cloud. Nor is the fact that Amazon EC2 uses Xen hypervisors the reason that they are a cloud.
What makes a cloud a cloud is the fact that the physical resources involved are operated to deliver abstracted IT resources on-demand, at scale, and (almost always) in a multi-tenant environment. It is how you use the technologies involved. For the most part, cloud computing uses the same management tools, operating systems, middleware, databases, server platforms, network cabling, storage arrays, and so on, that we have come to know and love over the last several decades.
Specific technologies, of course, gain significant importance in a cloud computing environment, such as policy-driven automation, metering systems, and self-service provisioning portals. However, all of these technologies--with the possible exception of the self-service portal--existed before cloud computing became a much hyped paradigm.
There is no doubt cloud borrows much from long established technologies. It is also true that cloud has borrowed from many long standing operations models, such as mainframe service bureaus. However, the combination of on-demand, at scale, in a multi-tenant infrastructure is relatively unique for the post client-server era, and is the reason why cloud computing is disruptive, rather than just another operations fad.
Cloud computing turns traditional data centers inside out. Infrastructure like networks, storage, and policies which have been shielded not only from the public but from developers as well, are now exposed as a service layer - that IS the cloud. Whether using the EC2 approach of shared infrastructure accessed via API or the 3tera approach of dedicated infrastructure created on-demand, cloud data centers are designed to respond to application requests. That response layer is definitely new technology.
Cloud computing, on the other hand, is a delivery and consumption model allowing organizations to purchase access to applications, development and deployment platforms and either virtual or physical servers as a service and on a by-the-use model.Cloud computing is about the move away from the desktop to a network-centric software model
Features such as on-demand provisioning, distributed redundant architecture
Microsoft Azure, a platform for developing, deploying and running applications in the cloud, as a complement to the Windows Server





Cloud/Virtualization
Even though virtualization plays a predominant role in most of the clouds, it is not the only way. Like Google, it is possible to build a cloud using commodity hardware and dumping a mapreduce like system on top of it. There is nothing in the world to prevent me from putting together several thousand commodity machines inside a datacenter (or multiple datacenters), inside my firewall, and build a cloud using something like Hadoop. So, even though there are many advantages in resorting to the use of the virtualization technologies, the idea of cloud is not restricted to virtualization alone.
It all depends on how you consider multi-tenancy. If you are an IaaS player, you will talk about multi-tenancy at the infrastructure level and a SaaS provider will talk about multi-tenancy at the application level, a point highlighted by Chris Hoff in one of his tweets. An infrastructure provider may tap into virtualization to achieve multi-tenancy in their public cloud compute offering. It need not be the case for the platform and applications providers. SaaS providers like Google or Salesforce achieve their multi-tenancy at the application level rather than at their infrastructure level.
To conclude, virtualization is not necessary to call something a cloud. Even though virtualization offers many advantages that could be used in building a cloud, there are other ways to do cloud computing
#Grid Computing
"Grid Computing" is what I call policy-based automation. And, again, it doesn't sit in the execution stack, but sits to the side in the management stack. You are missing grid computing as just another important layer. At the core of cloud computing is grid computing that provides Resource overflow and eventually scalability to the cloud. GRID approaches (where discrete workloads are distributed among multiple physical servers, and the results eventually collected)
GRID approaches (where discrete workloads are distributed among the work load Members)



http://cloudgurkul.com