Friday, March 20, 2009

Different types of virtualisation

Different types of Virtualisation

As you are aware of some of these technologies standards are defined by corporates and each has its own set which die out in course of time and some emerge and become common standard as it was in case of Video adapters,DVD's and many more until a body like IEEE etc we have microsoft which even had java of their own version and even sun sued them. They even had MOF Microsoft Office Foundation which was their version for ITIL

Microsoft has Classified Virtualisation into Four of them.
Server Virtualisation
Desktop Virtualisation
Presentation Virtualisation
Application Virtualisation

Let's walk through them.

Server Virtualization

This is the most commonly thought of instance of virtualization . Extending our bubbles, let's take our bubble and wrap it entirely around entire servers. We encapsulate a server operating system and any applications, and build an entire virtual machine. This allows entire servers to become those portable bubbles, and independent of the hardware beneath them. Examples include using VMWare Server or hyper-v in Windows Server 2008 to run an entire machine in a virtualized environment. Let's diagram this out.

First, let's take the conventional "hardware plus operating system" we're all so familiar with.

You take a piece of hardware, and you put an operating system on it. Simple, the way it's been done since your grandpappy did it.

Now, I want to wrap bubbles around the operating system, and seperate each off.


You end up with multiple operating systems running on one physical machine, managed by the virtualization layer.

Let's take an example. You have a Windows Server 2003 system, and you have an application running under it. That application hasn't been tested under Windows Server 2008, and yet you want to take advantage of the new group policy objects within Server 2008 to handle your Vista desktops. You could add another piece of hardware, but that will up your maintenance costs and require the management of two full servers.

Instead, you could move the Windows Server 2003 system into a Virtual Machine, and then have Windows Server 2008 as your core operating system. Each runs on the same hardware, and you're able to keep your application snug in it's Windows Server 2003 heaven until you're ready to upgrade it. (And, now that it's virtualized, see the previous sections for all the benefits of managing it under virtualization for the upgrade! That upgrade should be a snap.)

Desktop Virtualization

I almost want to say "See above, but with Desktops". That over simplifies a little, as you can do some other interesting things with Desktops. On your own laptop or desktop, you can run more than one machine. I like to demo this with my Mac, as I use VMWare's Fusion to run a virtualized Windows machine, so in the single laptop, I have three entire machines. OS X runs the "host" operating system, and then Windows XP and SBS 2008 RC0 are both available as additional machines. In fact, they each have their own IP addresses, have to use networking to talk to one another. This can be costly from a management perspective, as you do end up creating more machines each time, from a desktop perspective.

The diagrams would be the same. The only significant difference is that we're doing this on the desktop rather that the server, and then we're really only talking about a difference of the operating system below and within the bubble.

Example time. You want to upgrade to Vista, but have an application that only runs under Windows XP. (Sound familiar -- it should, it's a lot like Server Virtualization). Instead of holding back, you can give the customer a Windows XP environment, running in a VM, that allows them to run their application on a Windows XP machine, while still upgrading the core operating system to Vista.

Presentation Virtualization

Very much related to Desktop Virtualization, Presentation Virtualization puts the display on one machine, and the actual execution on another. Processing happens on the server, which is optimized for availability and capacity, and the end user UI is handled on the desktop. Terminal Server or solutions by Citrix are a great example of this, as is RWW in SBS.

You centralize the data, making sure it isn't spread across various desktops, and you lower your cost of management, since to update desktops in one single place. Additionally, this can improve performance in some circumstances, where network bandwidth is an issue, such as across a WAN.


Diagraming this out, the idea is that you centralize where everything is run, and only ship the display across the wire. You only have to upgrade an operating system or a application in one place, and you can control access easily. No data is left "floating" about on the terminals, and you can even manage backups centrally.

Let's give this as an example. You have a customer who has two branch offices, each with three employees in them. They use a line of business application that is very bandwidth intensive. It's quite chatty, and it needs to be on a local LAN with the database server. Rather than try and setup two more databases in the field, you centralize the application and allow your clients to connect in, sending only the keyboard, monitor and mouse communications back to the users. The application happily communicates with it's database, and the end users in each office see a responsive, useful application.

Application Virtualization

Finally, we'll look at application virtualization. Now that you understand presentation virtualization, application virtualization should make more sense. The intention is to put one of our bubbles around an application and yet still run it on the client.

Typically, when you have to install an application, it plants pieces around the machine. DLLs, for example, are laid around the machine. Each application interacts with the operating system, and can interact with each other.

This can lead to situations where the applications themselves collide. If you were trying to isolate an application from the operating system, you could easily use Desktop or Server virtualization. But if the applications collide, you have other problems.

Take something like QuickBooks. CPAs love to have every version of QuickBooks installed on their computers, because that way they can work with all different clients who may have upgraded to different versions along the way. Thus, if CPA-A, works with Customer A with QuickBooks 2004, and Customer B with QuickBooks 2007, the CPA doesn't want to open Customer A's data file with QuickBooks 2007, else the customer won't be able to open it.

But having all those versions of QuickBooks on the desktop can cause issues. Intuit really doesn't intend for you to run them all; they expect you to run one and work with it.

So what if we could wrap bubbles around each?


That's what application virtualization does. It creates application specific bubbles, each with it's own required dependencies (registry entries, DLLs, and all), and are packaged in a neat bubble to keep them seperated from the operating system and from each other. The application can play within it's own bubble, using it's own resources and not mixing with those around it.

So that's the four basic kinds of virtualization. My efforts here are first to concentrate on Server and Desktop Virtualization, and implementations and "how to's" around that.



While EMC has them as three.

No comments: