Infosys delivers concept-to-market software engineering services across the engineering value chain. Our blog will discuss the latest trends in software product engineering, outsourcing, technologies, and address business challenges.

« While thinking of SaaS, think out of the box! | Main | Rich Internet Application Blues for customers and software developers »

Virtualization means a lot of different things

The first time I ever heard of Virtualization as a computing technology term was when I was part of a team hosting a visit by a senior delegation of a reputed Japanese IT Fortune 500 company. During the course of the meeting which focused on a server side product to be launched in the global market, one of the guests lamented the complexity and costs involved in testing the product across varied combinations of operating systems, component software etc. Spontaneously, one of our colleagues shouted out -  ‘Virtualize your environment!’. This suggestion though was shot down politely as ‘this was not the real thing – and hence cannot be guaranteed to be as good as the real thing’. The concept of Virtualization has come a long way since then and today the same company prides itself in being pioneers in developing storage virtualization products. Virtualization in the industry itself means a lot of different things. Ideally, the term Virtualization would imply using a physical resource such as a server and dividing it up into virtual resources called Virtual Machines thus ensuring the maximum use of the available resources on the physical machine. But, over time, the term Virtualization has come to cover a lot many different concepts which finally happen to have the same aim – that is to consolidate physical resources, simplify deployment and administration and reduce data center costs. However, it would be nice to understand the various commonly prevalent types of Virtualization briefly in this post.

“Machine Virtualization” can be considered to be the “Father of all Virtualization” because that is what is commonly associated with the concept of Virtualization. The concept of “Machine Virtualization” provides the virtual environment for applications run within an operating system - thus simulating the existence of a physical machine (with it’s own CPU, hard-disk, memory etc.) virtually. The concept of  Machine Virtualization itself can be categorized into “Hardware Virtualization” and “Operating System Virtualization”. Hardware Virtualization is the case where a software layer is used to emulate the physical hardware and each virtualization machine deals with this software emulation as if it is running on it’s own dedicated hardware. This approach is what Microsoft is propagating with it’s Hyper-V technology in it’s Windows Server 2008 platforms. Operating System Virtualization is the case where the Guest OS running inside the VMs require the services of a Host OS to perform it’s core functions.

“Server Virtualization”, “Server Consolidation”, “Application Consolidation”
are more or less terms used to explain the same concept – i.e. the act of consolidating server based applications to less number of physical machines by running them within VMs. This approach prevents machine sprawl (and hence less manpower costs to administer machines) and reduces costs for power and cooling requirements (to the glee of Green IT enthusiasts) . With the VM machine management tools that vendors are providing today, administration overheads are greatly reduced. With Server Virtualization, disaster recovery, security and high availability - so important to server based applications – are well addressed.

Traditionally, server side deployments have been more with deploying a single application on a given server machine- thus you would have a database server, an email server etc on disparate machines. This has resulted in wastage of computing resources. With Virtual Machines, you can run multiple server side applications cocooned inside VM silos. Even in the case where multiple applications were indeed running in a physical server, a ‘naughty’ application would end up crashing the server and bringing down all other applications with it. A naughty application within a VM however can only bring down it’s VM which would not affect other applications running in their own VM spaces.

The concept of Desktop Virtualization is something that most developers the world over might be considerably familiar with. The facilities provided by products like Microsoft’s Virtual PC fall in this category. Desktop Virtualization helps you test your applications across various operating systems without having to deal with the hassles of procuring separate physical machines. One can also simulate and test various n-tier applications on the same physical machine by running each tier in a VM. Today, the term Desktop Virtualization  is also used to consider the case where an employee’s desktop is now managed and maintained in a central server. The employee can effectively use any device to access their desktop as long as the device is capable is displaying the desktop. This approach provides enhanced security as data is now safe in a central server, control over what employees can access and not access, reduced hardware costs as client machines need not be high end, easier management with patch control not requiring visits to every physical machine etc.

Virtualization has primarily been considered as targeting the server market based on x86 based processors.  But, the concept of SmartPhone Virtualization promises to virtualize a larger market in terms of mobile phones. Mobile hypervisors are being developed that are placed in the stack between the phone application and the device CPU and intercepts instructions and converts to the needs of the device processor. VMWare’s Mobile Virtualization Platform promises to do just this and in the process  applications developed for Nokia phones can be run on Motorala phones for example (as long as the devices are based on the ARM architecture)

While much of the focus in the industry has been in server virtualization, the complexities of managing various types of storage devices and provisioning storage has been a continuous challenge. The concept of Storage Virtualization brings in an abstraction layer to hide applications from storage systems (collections of SAN, NAS, DAS systems etc.) and provides a consistent interface to heterogeneous storage devices and applications. Applications need not be concerned with where and how data is being stored as storage virtualization solutions take up the responsibility of maintaining this data in an appropriate device.  Some intelligent storage solutions have the capability to store data of applications in various class of storage devices (tiered storage) depending on access frequency (faster storage device), security etc.  Storage virtualization solutions from NetApp, VERITAS and Hitachi Data Systems are quite popular in the market today.

Network Virtualization  is another talked about Virtualization concept which seems to be an abstraction that provides a way to run multiple networks (each network possibly configured for a specific purpose) using a shared network. The idea behind this could be to increase the efficiency of a large corporate network or data center. It is also possible to provide a “network in a box” where virtual machines in a single box share resources and exchange data by simulating virtual NICs.  Cisco, HP are major players while VMWare, Microsoft, OpenSolaris etc. have their own network virtualization features in their virtualization offerings.

Virtualization means different things to different people-but at the end of the day it all boils down to achieving substantial cost savings by “doing more with less”. This becomes all the more relevant considering the bleak economic climate as we end the first half of the year. With there being a lot of talk of delivering on the ‘cloud’, and with a lot of CEOs acknowledging the benefits of this changed computing environment all thoughts on achieving the best out of infrastructure lead to Virtualization.


Here’s opening up the post for information regarding other  types of Virtualization that you might have encountered in the industry and would like to mention ……there sure are going to be many more!

TrackBack

TrackBack URL for this entry:
http://www.infosysblogs.com/engineering-software-mt/mt-tb.fcgi/3

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Infosys on Twitter