Praveen convinced me yesterday to have a look at Virtualization. I am jotting down few thoughts on the same. The word “Virtual” means “Existing in essence though not in fact”. Below I have outlined the basics of common Virtualization techniques out there, hope you find them useful (though it’s mainly from Microsoft Perspective).
Server Virtualization: I guess this is the most used one. Every time you want a new server you have to go your IT department, and they will put you in queue – either due to budgets, servers occupied, time to setup, etc. Challenge for IT department is most of the allocated servers are not fully used, and nobody is willing to share their Server with others. This is where Server Virtualization comes in. Server Virtualization gives you the power of creating Virtual machines which in turn can share the physical resources of the underlying Server (adding saving of power, space, coolant and professionals). Every virtual machine runs in isolation and has its own OS and applications as required. Technology that enables this is called Hypervisor which sits in between the underlying hardware & virtual machines (for instance Hyper-V available for Windows Server 2008 64 bit editions). Apart from virtualzing the underlying hardware for Virtual Machines, Hypervisor also supports live migration (only with 2008 R2) of Virtual machines (in case there is a failure / up gradation of underlying host hardware) which results in higher up times, Load balancing (moving workloads to less utilized host Server) and power management (turn of machines which have no workloads). Understanding Server Virtualization is necessary for anybody to understand about how Azure (Microsoft cloud) operates.
(N.B. Microsoft Hyper-V Server 2008 which a variant of “Windows 2008 Core” comes with CLI only interface, helping you getting speed up with your Server Virtualization efforts. Also you can migrate your .VHD created by Virtual Server to use Hyper-V).
So will my existing hardware suffice? It can but it may not scale enough. Lot of hardware innovation is currently going on to leverage on Server Virtualization. For instance, Intel VT-x processors ensure better scalability, performance & reliability for Server Virtualization efforts.
Desktop Virtualization: This consists of 2 parts – Client hosted desktops & Server hosted desktops. Client hosted desktops help creating a virtual environment for running legacy applications (for e.g. you have an application running only on Windows XP but your current OS happens to be Windows 7). The way we normally get this working is by using Virtual PC or Windows Virtual PC (bundled with Windows 7). Microsoft Enterprise Desktop Virtualization (MED-V) makes management of these Virtual PCs (vmc / vhd) a breeze. Coming to Server hosted desktops, here the client OS, Applications & Data are kept on Severs in data centers benefits being better utilization of hardware, easy maintenance& better accessibility (for instance you can access the desktops from your home). The technology which enables this is called Virtual Desktop Infrastructure (VDI) leveraging protocols like Remote Desktop. The technology is still evolving so it’s recommended you do a thorough check on it before proceeding.
Application Virtualization: Here the Applications are virtual (they are never installed physically on boxes either due to conflicts with it’s previous version / other applications or for security reasons). Only thing required for installation on client machine is App-V client. Software is either streamed or cached locally on demand and then executed (sandbox execution). The Microsoft product which enables this magic is called App-V (previously known as SoftGrid). Other benefits of App-V include centralized management, easy scalability, easy availability, easy deployment, etc. There is also another technique for Application Virtualization supported by few vendors – Presentation Virtualization (Screen Scraping). Here the screen travels all the way to your terminal while application is running on server & your input gestures are transferred back (we had proposed this to one of our clients who was insisting on a web based application while we had a windows application).
Other Virtualization Products: XenApp, XenServer, XenDesktop – Citrix; VMware, Vmotion – VMware
I would look forward to read your thoughts on above 🙂 .