Friday, August 10, 2012

Application Virtualization: from Deployment to Delivery

(written in November 2010)
 
We live in a world that is not the world that we were born in. They say, change is the only thing that does not change. How true! Our traditional world essentially was made up of 'physical' substances and concepts. While most of the substances continue to be 'physical', the concepts around these sure are going the 'virtual' way.
We are virtualizing desktops, doing away with local operating systems, looking for data centers to host our resources. And what not!
Let us see how Jack - a user in the physical world - uses various Applications on his system. Except for a few web-based hosted applications, Jack would need to deploy and install applications 'locally' on his system. He may not need to access all the installed applications at all times, but he would not want to uninstall any application on his own, unless being directed to do so by the organization. In this model, he acts as a part time system administrator for himself, while there are dedicated teams of expert administrators and application support professionals. I am not saying this has not been a successful model of managing applications on end user systems; I am only asking a question: "Can there be an alternate approach of addressing the obvious pain areas in the traditional system, while ensuring a uniform standardized user experience?" I would attempt to answer in brief: "Why not?"
An organization wanting to manage traditional applications must go through the cycle of testing, deploying, installing, patching, updating, and finally uninstalling. Today's multi-hardware multi-OS platforms complicate this further, with a dedicated bunch of support staff spending tangible resources to manage such application lifecycles. Add to this the numerous challenges with consistently deploying applications on end user systems. What it translates into is an increasing number of organizations looking around for a simpler way of handling application management from end user perspective. 
Imagine Jack not requiring to deploy any applications at all, on his system, rather being able to work on streamed instances of operating systems and applications on demand. An application repository is created, applications profiled using an OS environment, profiled applications are encapsulated and stored in the secure repository. When Jack needs to work on or access a certain application, he places a request, which gets picked up by a virtualizer, that uses its 'brain' to ascertain if Jack's system is compatible to 'run' the requested application.
If 'yes', the requested application is packaged (with the required components) and streamed from the repository to the end system. In this case, the application uses the local system's resources for running and execution. If Jack's system is not compatible, the requested application is streamed on to a hosting environment in the data center, which is then made available to him. The application is executed and run on the server in the hosting environment.
In both the instances, Jack does not have to worry about anything but working on the applications alone. Any subsequent patches or updates to the applications are performed at the 'source' level, allowing one-time fix for all instances of the requested application at one point of time, and letting end users work on their core business areas. Let us not be surprised if Jack indeed becomes the master of all trades! Organizations can then afford to reduce their IT support staff strength. Jack also has the liberty of working 'offline' on the streamed instance of a requested application, while 'live' updates are being applied to the application at the source. Once Jack is able to again work on the online instance, the recent updates are automatically made available to him. Quite fittingly, this entire feature is known as Application Virtualization.
As is evident from the above, applications are no longer required to be 'deployed'; rather they are 'delivered' on demand, to end users.
Let us now take a deeper look at the concerns with traditional deployment-based application management.
·         Increasing complexity of catering to user demands of real time access to an   ever-changing set of applications; anytime, anywhere.
·         With organizations opting for newer operating systems, e.g. Windows 7, a lot of existing applications are becoming incompatible. This calls for replacement of legacy applications, leading to a big hole in an organization's pocket.
·         Repeat telecast of IT efforts due to endless lifecycle of updates, patches and security fixes.
·         Exposure due to poor application security and control.
·         High cost of overall application management.
·         High cost of IT support staff.
In short, to say the least, Application Virtualization is the way forward.

No comments:

Post a Comment