According to a new SpiceWorks State of IT – Trends, Budgets, and Purchase Drivers study, the biggest driver for enterprises to embrace virtualization and cloud computing is to (1) reduce the support burden on IT staff (33%) — followed closely by (2) increase their flexibility and scalability, (3) enhance disaster recovery capabilities, (4) provide their users with access to data anywhere, and (5) reduce capital expenditure. Of course, these reasons aren’t going to be much of a surprise to anyone — after all, they are the major benefits of virtualization and cloud computing!
As with any major IT Transformation initiative, application virtualization has to be approached carefully and strategically. So, before diving straight into the deep waters, it pays to do some much-needed due-diligence to avoid some costly and hard-to-fix mistakes later on.
1) Understand Your Scope And Environment
Before you can make any informed decisions on whether or not you should at all virtualize (parts of) your application estate, you must understand what you are dealing with! Mainly, this means answering two questions:
- What applications do you currently have in house?
- Which of those are suitable to be virtualized “as is”?
Skipping this step is the first mistake a LOT of larger organizations make.
Oftentimes, it’s not even the IT manager’s fault, but the directive to cut costs by virtualizing the applications comes from management. But without the proper analysis for suitability and therefore definition of scope it can feel like trying to squeeze a square peg through a round hole.
2) Choose The Right Form Of Virtualization
Once you know which and how many of your applications are ready to be virtualized right now and how many could be potentially re-packaged without major manual efforts to be made suitable, you now can determine which form of virtualization you would like to pursue.
Simply put, by virtualizing your applications, a virtualization layer replaces some of the operating system runtime environment. It then intercepts the disk operations of a virtualized app and redirects them to a virtualized location. For an application, it is inconsequential whether it uses a physical or a virtual resource, but since virtual ones often contain only one central file instead of many distributed files, running the application becomes not only easier but also significantly faster. In addition, previously incompatible applications are now able to run side-by-side.
There are three main forms of virtualization:
- Application Containerization is a virtualization method on the Operating System level that allows you to deploy and run several distributed apps without launching an entire virtual machine (VM) each time. This is achieved by including all runtime components, e.g., files, libraries, environment variables and so forth, into the application container. In essence, this method of virtualization preserves resources as multiple isolated apps run on a single host and utilizies the same OS kernel. The most recognized containerization technology is without a doubt Docker, but Cloudhouse, Cloudpaging, and Numicent are also worth mentioning here.
- Application Layering effectively uncouples the virtual application delivery from its virtual desktop while still interacting with the OS and other applications as if they are installed natively on the base image. This way, the installation, updating and management process is completely independent from the user’s VM image — significantly reducing the number of corporate images you have to create, test and maintain, and therefore making updates or patches easier and faster. Application layering technology includes, for example, VMware App Volumes and Citrix AppDisk.
- Application Isolation is the third form of virtualization I want to mention today. Here, the virtualization technology essentially hides the application’s resources (e.g., file, COM object, registry value) from its environment. Hide all of an application’s resources from everything else on the system and all processes run in their own “virtual environment”. Depending on the product used, this “bubble” is much more permeable. Technologies here are Microsoft App-V and VMware ThinApp.
As you can see, these are vastly different approaches to application virtualization and this step requires some long-term strategic thinking!
3) Decide On A Physical Or Mixed Environment
After you have determined which form of virtualization is right for your needs, it is time to decide which type of environment would be best: physical or virtual machines. Or maybe you prefer a mixed environment where you package your applications as virtual applications as well as physical?
In my experience, a lot of people will deploy their applications on physical boxes, while some organizations will try to make the hop onto Virtual Desktop Infrastructure (VDI). Keep in mind that this doesn’t have to be an all-or-nothing decision! Based on your application landscape, the suitability of your apps, and the decisions you already made, you might want to keep 40% at bay, 80% at bay, or whatever the number is that works for you.
4) Decide On Your App Personalization Strategy
If you do decide to go the VDI route, you will have to decide on some form of personalization for your application settings. In other words, are you going stateless or state-full?
There are a lot of scenarios to consider, but either way you should keep your long-term goals top of mind and set yourself up for future success. For example, even if you aren’t fully going on VDI just yet, you can apply personalization settings on your physical desktops now, which will make everything a little bit easier if you introduce VDI in the future.
Certain settings would then come down through a personalization product like AppSense. This way, you could extract some of the components from your MSI or App-V packages based in the registry or in your user profile and send them through AppSense. If then, in the future, as you are moving to a virtual and stateless machine, your personalization would already be pre-configured and you wouldn’t lose your users’ settings.
5) Evaluate Your Deployment Infrastructure
Last, but not least, you will need to ensure you have the right deployment infrastructure in place to support your decision. You have to understand how you are actually going to get your applications and make them available to your business users. For this, you have to have the right infrastructure in place.
As an example, if you chose App-V, you could go and use Microsoft’s System Center Configuration Management (SCCM) that you already have in house because it integrates very well. However, if you chose Cloudpaging, you’d be forced to use their deployment mechanism. An SCCM integration will be much more involved.
Ready To Get Started?
If you are ready to roll up your sleeves and get your hands on some first insights, why not try out our Virtualization Suitability Tool, Access AppScan, which we have made available to try for free on our website now. Simply input your email address and upload your first apps to get started. You will be amazed what you can learn!