For the last three years, I have worked on the Application Virtualization Smackdown white paper with my friends and fellow MVP's, Jurjen van Leeuwen and Ruben Spruijt. Over the last year or so, I have been presenting sessions based around the document, only instead of a presentation of many, many features, I presented on what I deemed core features and those unique features to each product. I also presented product Demo's and gave my own opinion of each product. This post will be similar. Be warned. This is long! I may record a video to make it easier to digest but for now. Feel free to read or angrily tweet at me and tell me to get off my ass and make the video!
Upon releasing the Smackdown this year, I was asked the following on Twitter:
Great job guys, although I hate seeing the word smackdown with no 'real winner'. At least give us your opinion! https://t.co/Dm79FL4GkX
— Steve Noel (@steve_noel) November 3, 2015
Before I became involved with the white paper, I would print out a copy each year and use it for research and as a reference document. It's a great independent and unbiased reference document. It doesn't lean one way or the other. I have been giving my opinion when presenting. I'm not sure if I'll be involved in future Smackdown white papers so this may be a final blow out. This post is purely my own opinion. Not that of any of my employers. Past, present or future. It's also not the opinion of Ruben or Jurjen or anybody else involved...Just mine. If you disagree with anything in this post...take exception with me and nobody else.
In this post, I will only focus on the vendors and products listed in the feature matrix section of the white paper.
I have been a fan of Cameyo for several years now and have posted about their products a few times, which you can find HERE. As a product, originally Cameyo went down the route of offering the ability to virtualize your applications into a portable single executable. If you review the various products I have reviewed on my site, you'll know this is the most common form of app virtualization on offer in the market today...well, that all changed. Now, they not only offer this portable virtual application model, they also offer the ability to publish applications to be run embedded within the browser. Here's a slightly outdated demo but the idea is still the same:
Running applications from the browser is not completely unique. FRAME have been doing this for some time and do it very, very well! RollApp entered the market with some small rumblings. It works well enough but I guess for me, personally, my first exposure to software running embedded within the browser was with Frame (Frame2 at the time). The differentiator for me with Frame over the competitors in that market is that Frame have specific use cases that they present very well.
RollApp have been looking more towards the overall cloud storage for files and running your apps but the apps they use as a case are mainly for personal use. Home users, possibly students. Cameyo seem to be targeting the same space with their application library.
To me, this makes a lot of sense. Enterprise is being catered for in a large way by competing products. The regular home user is a pretty wide open market right now. Cameyo has been free for up to 50 users since I've been following them. Cameyo supports integration with Dropbox. RollApp support integration with multiple cloud storage products. Cameyo have their own Android app in the Google Play store which is an extra entry point and an interesting one, which I discuss and show HERE
Cameyo boasts integration with Dropbox and ASG Cloud Cockpit. ASG Cloud Cockpit gives them a partner in the enterprise space. Dropbox is not too popular in enterprise. The application library currently features a plethora of popular apps but these are retail apps not really enterprise focused. Right now, there's no ability to generate an MSI using the Cameyo packaging tool. They have a nifty automated Online packaging tool but it's a little limited, it still works for some of your apps, which is cool. They have a limited number of regions for publishing apps to 'Player Servers' to allow them to run in the browser. Many of the apps currently published have some first run pop-ups that are annoying and should be suppressed and fixed by the guys over there. I'm sure they'll get to it but if you try it out for yourself, which I suggest that you do, be warned it might give a bad first impression to some.
To me, they are not a player right now in the enterprise but I urge everybody to try it out! Want to run your apps from a USB key, from Dropbox and run some of your favorite Windows apps from your iPad or Mac? Try Cameyo. No need to install a client. No need to worry about licensing for home use. Sign up and try it for yourself.
Last year a really cool infographic was created based on the feature matrix of our white paper, you can find it HERE. This Infographic was actually a big part of what motivated me to present on the various products because I felt it portrayed ThinApp very strongly....which, I believe is a little misleading. Not intentionally misleading. I believe they likely weighted the features the way they saw fit, or possibly by section in the matrix. That's not to say that ThinApp is without it's charms but personally, I believe that it's one of the weaker products on the market for a few reasons. Before I get into that, allow me to focus on the positives.
For somebody completely new to application virtualization, it doesn't get any easier than ThinApp. You perform a simple setup capture and the resulted output is mainly text files. The main project file that allows you to change settings such as project name, application dependencies etc. is a Project.ini file. A simple text file. You open it up in a text editor, make your change and recompile the app. SIMPLES! Want to modify the registry? Open the registry text file, make your change and re-compile. Want to change the level of isolation on a certain directory? Open the attribute text file, make the change and re-compile etc. etc. It's so, so simple.
This also comes at a price, though. Packaging tools such as Numecent's studio, Microsoft's App-V sequencer and Turbo.net's studio provide a nice GUI to set many advanced settings that may be confusing to figure out in ThinApp or worse yet, not available as features in ThinApp at all. ThinApp has various external utilities you can use such as SBMerge....a utility I really love. With ThinApp, Turbo.net and some of the other products you can ensure that anything written during runtime gets stored in a sandbox location.
So, imagine this...like with 50%+ packaging requests the app owner doesn't give you the full instructions, you package it up and deploy for UAT. The app owner says the correct settings were not set...you can spin up a remote session, ask them to show you what's incorrect and what needs to be set. Well, since they are setting what needs to be set for themselves, that's getting stored in their Sandbox. What you can then do is take their Sandbox and use the SBMerge utility to merge those settings in your package, re-compile and then the change is in effect for everybody, once your re-deploy. Sweet as!
Unfortunately, it's my opinion that VMware have somewhat dropped the ball with ThinApp. Back in 2007 or so, it had some great potential. It looked like an interesting alternative to App-V. At some point a few years later, it just seemed like VMware lost interest with it and stopped actively developing. Between version 4.7.1 to 5.0, there was a gap of a few years. Which sucked for us customers because it meant any bug that popped up was not readily fixed. Which brings me to another concern I had with the product which at one time was also true for App-V. VMware and Microsoft are big companies...app virtualization is not all that widely used so when you contact their support you can be left waiting for a loooooooong time. With App-V, you'll usually at least get an answer eventually. With ThinApp, as I said bugs were not addressed readily and so you could have a support case just lingering for ages...maybe that has changed now but that was my experience. For smaller vendors like Cameyo and Turbo, their appvirt product is their bread and butter so their support is on the ball.
Until the release of ThinApp 5.0. Support for virtualizing 64-bit applications was not there....that was big for one of my customers at the time and was a major black eye for ThinApp for several years. They languished behind every other appvirt product with this support. At one point, VMware announced they would no longer allow new customers to purchase ThinApp as a standalone product. My employers at the time got very shaky with that announcement. Although, it didn't effect existing customers licensing, they saw this as a vote of no confidence and that VMware were not factoring ThinApp into their future plans. At the time, VMware were stating you would have to buy another product like Horizon to get ThinApp included. They later went back on this and still allow you to purchase ThinApp but that didn't leave a bad taste in some peoples mouths.
Although, the text files make it simple to get started. It's primitive nature can also be frustrating at times. Making a small cosmetic change to an application would result in needing to recompile the entire app. If it was a large app that could be very time consuming which is annoying. I also personally experienced problems virtualizing Office Add-ins on top of a locally installed office and linking multiple large dependencies together. At the time it seemed like the primary application would begin to load at some point, the other apps would decide, ah we've waited long enough and just start to load themselves. One of the other apps would load quicker than the primary and throw an error because the first app could not be seen. That was a clusterfuck. I must be honest. I have not used ThinApp in any meaningful way in over 3 years so these issues may now have been addressed.
VMware hold a large stake in the enterprise as their products are quite popular. Thanks to this, ThinApp has a pretty large user base. ThinApp's saving grace in my eyes right now is the fact that VMware made some smart acquisitions over the last couple of years buying CloudVolumes and Immidio. When they properly integrate them into the rest of the stack e.g. Horizon, View, Mirage, ESXi, vCenter etc. They could have the best VDI solution on the market. What does that mean for ThinApp? Well, if you use App Volumes (formerly CloudVolumes) together with ThinApp, all of a sudden you've got App Volumes making up for some of ThinApp's shortcomings and ThinApp making up for some of App Volumes shortcomings. In summation, you have a solid application packaging and deployment solution. For more on App Volumes check out my blog post: HERE. ThinApp is now on version 5.1, if you'd like to see some blog posts on previous versions, check that out: HERE
App-V 5.0 was a tricky transition at first. Many of us relied on trickery using the OSD files and App-V 5.0 changed all of that. The deployment config files offer some nice flexibility and features but also do not make up some of the abilities lost with the removal of OSD's. Sequencing with 5.0 is easier than with 4.6 for the simple fact, there's less input required. Microsoft standardized the sequencing quite a bit which was a good thing and a bad thing. For example, they standardized on enforcing security descriptors, which was optional in 4.6...an option most people select to not enforce! App-V 5.x was just not fit for purpose until the release of Hotfix 4 and now with each new hotfix, service pack and major release it has got better and better. If you're new to App-V and want some pointers. Check out this presentation I gave, which was heavily influenced by fellow MVP's, Nicke Källén and Dan Gough:
At Ignite in Chicago, Microsoft announced Project Centennial. A very ambitious effort to standardize the application architecture for Windows apps. For more about this, check out my buddy, Tim Mangans (The godfather of App-V) great article: HERE. As an MVP, I have been so impressed with the App-V product group. Since Hotfix 4 they have been going from strength to strength and I believe they will continue to do so. With project centennial, the current AppX application model and App-V 5.0, could a Universal application finally become a reality?
App-V is quite rigid with it's isolation. In my opinion, it provides the least amount of control over the isolation of your apps. App-V 5.0 introduced App-V sub-systems which have helped increase application compatibility BUT to me it looks like App-V 5.0 is being built as the way to handle your legacy Win32 applications going into the brave new virtual\user centric\app on demand world but to truly provide a simple solution that everybody will want to use, they need to provide the ability to optionally reduce the level of isolation. The key to the success of App-V and indeed all appvirt products is the ability to package all applications, not just the majority...in my opinion. Sorry\Not Sorry :-)
Realistically, App-V is the real winner in enterprise. Is it a deserved position? I actually do believe so. They have constantly developed the product. As it has become more widely used they have grown their support structure. They have a great and active online community, which no other vendor can boast. Much of this is defacto as they ARE Enterprise IT....but they have done a very good job of improving the product and increasing it's adoption. If they continue this, I can see no reason why their dominance will end. With that said, at the bottom of this post. I am going to give my overall winner and it will not be based on popularity or the fact that I'm an MVP...I love being an MVP and a vExpert but I'd like to think I can still remain a little impartial. I have sooooo many App-V posts, for some more info check those out: HERE
On to Turbo.net or the artist formerly known as Spoon..So far in this post, I covered products which provide the ability to produce portable single executables which can be put on a USB key, CD\DVD, run from a fileshare or deployed to a desktop directly etc. With ThinApp you can generate an MSI and deploy the executable compete with shortcuts and file type associations. With Cameyo, you cannot. Well, with Turbo.net...you can also generate the portable EXE's and generate an MSI to deploy in the enterprise....but wait, there's more. Unlike ThinApp, you can also host your application on a 'streaming server' (Turbo Server) and stream the application on demand, similar to App-V, SWS and Application Jukebox. But wait again, there's more. All of the products discussed in this article allow you to package and deploy client side applications, desktop applications...what about server apps? You can also 'virtualize' these application with Turbo.net.
Application containers are becoming very popular in the Industry now. They open virtual application to a wider audience than ever before. Docker is mainly being used by developers. They put their application in a container and provide that container for testing. No need to host a Virtual Machine, install the application and point a user to that for testing. Expensive, heavy and time consuming. A container is essentially a light weight VM, many containers can be run side by side together on the same machine. With ThinApp and some of the other products but NOT all, you can select to fully isolate your applications. Meaning you enforce the behavior, that if your application cannot find a file, registry or anything it needs within it's isolated virtual bubble, it will not look to the local system (like how App-V does)...that's all well and good but not particularly useful for desktop applications, in my opinion. Users tend to want to save things to their local desktop, documents etc. So visibility to these is essential.
On top of the ability to fully isolate the applications. Turbo.net provide the ability to isolate the network stack. Meaning TCP, UDP, named object calls can be set to stay within the isolated space. What does this mean? It means your server applications that require things like IIS or SQL Server can be packaged up with Turbo.net and run side by side on a single box with no worries of conflict. Image this, running 20+ completely unique instances of SQL on a single box with no need to strategize around ports, instance names, shares etc. You can even just take your containers and drop them onto another server with ease, if you need to decommission a server...or even run from your desktop! Imagine being able to run many sites on a single box without needing to worry about unique virtual site directories and ports for each. No chance of conflicts, means less to worry about. For a a very outdated Demo, check this out (I will updated soon, this has completely changed but it might give you an idea of what Turbo.net containers are all about):
That's not all though...what about their packaging tool? It just so happens to be one of the best packaging tools of any of the app virt products. It's very feature rich. With their templates, you can install something like say IE8 on a machine, run the packaging tool (Studio) with the IE8 template and rather than you having to do a snapshot capture, the tool will suck up your locally installed IE8 and all your settings into a package! Very cool! They have many of the heavy hitters accommodated for...that's very unique.
You can also use a powershell module or the command line to quickly create containers without a need for a clean VM at all! Also, unique for this post and very cool.
They have some runtimes pre-packaged which you can simply leverage and merge into a package that requires them. Unique again and very cool! I could go on but there's so many advanced settings and cool features that it would take too long. Anybody currently packaging or with just an interest should reach out to the guys at Turbo.net to take a look. I may or may not present on Turbo.net at E2EVC in 2016, so watch this space too!
Something I did not mention with ThinApp and SWS is the fact you can package and deploy Internet Explorer with those products. You can do that with Turbo.net too. With ThinApp and Turbo.net you can set up redirection too. Basically that means if you have a web app that requires IE8, deploy a single .EXE of IE 8 and set a policy listing the sites that requires it. When your user goes to IE 11 and attempts to navigate to the listed site. They'll be re-directed to the isolated IE8 browser. Pretty cool. At a previous employer, we were also looking at isolating Java and Flash with the isolated browser and re-directing any sites that required those. Pretty cool because you're dealing with the security threats head on by simply removing Java and Flash from your local systems entirely.
Docker provides similar functionality around server apps and containerization but it's a Linux based technology. Microsoft have released their container technology with the most recent Tech Preview for Server 2016 BUT that's tied to the Server 2016 Kernel. Turbo containers can be run on any Windows OS. The containers are Windows based. They also have what I believe is the best platform for their containers. For an example, check this out (the most unique Demo in this post)
You can run that simple SQL Lab environment container that I created following the Turbo.net blog article: https://blog.turbo.net/creating-sql-test-lab-environments/. If I blogged about anything useful with an app or code, I could create a container and embed it my article. If I develop applications and want to provide users with a trial, I could create a container with a time limit and embed it on my site, just like above. I really didn't see the wide appeal of containers to begin with but the presentation provided by Turbo.net has given me more food for thought around their potential.
Turbo.net provides the widest variety in terms of packaging options and deployment options. They cater for the widest audience e.g. developers, home users, ISV's, enterprise etc. Their packaging tool is the best of all of the products mentioned in this blog post. My buddy Ruben Sprujit presented his Workspace of 2020 at BriForum in 2014 and spoke about Microsofts need to get a single click and run container, similar to on OS X. Do I think this is that solution? I don't know. But I can say it's a technology that excites me and many others. Cameyo and Turbo.net are the most open for you to try out for yourself. I encourage you all to search them out and sign up for yourselves. No harm in trying.
Symantec Workspace Streaming\Virtualization
During my presentation at BriForum this year in Denver, I added SWS to my honorable mentions section. Meaning, I did not give a Demo or go into the product in any great detail. My reason for this was because in my opinion, they had not developed the product significantly. It may have been a little harsh because in terms of customer base they are about the 4th most widely used. I have only worked on one project using SWS. Something which is interesting about SWS is the fact application run in a low level on the system meaning there's a higher chance of application compatibility for certain drivers. At the same time the isolation is less isolated than in other products, which also results in a higher compatibility BUT it's not at the same level of Numecent Application Jukebox. You will not be able to package all of your apps and deploy them. Of course, this is not just true for SWS, it's true for all but App Jukebox, in my opinion.
Symantec released version 7.6 which allows you to use streaming without a heavy streaming server setup e.g. Database, multiple services etc. It provides you the ability to put your application 'layers' on a file share, publish to your users and allow them to stream from the share without an expensive backend. App-V 4.6 had a similar streaming option but Microsoft got rid of it with App-V 5.0.
There is also Symantec Workspace Virtualization which uses the same application layers (not the same as application layers used in Unidesk, App Volumes, FlexApp and AppDisks) only rather than publishing applications to stream to users Desktops. You can set this up on your Servers and allow administrator to manually manage the applications e.g. Add an application, remove an application, change the isolation settings for that app etc. Kind of a niche feature but a unique feature all the same.
I have not used 7.6 yet so it's hard for me to give an up to date verdict on their products. However, based on my use of their older versions, while I hit far less issues than I did with ThinApp. SWS is far from App-V currently. They also don't have the rich feature set of smaller vendors like Numecent, Turbo.net and Cameyo. I don't know how many new customers they would win just based on them wanting to use SWS but I bet their foot in the door is through other Symantec products and license agreements. I hope to review 7.6 for this site in the future so keep watching this space. For a blog post on a previous version, check this out: HERE
Citrix App Streaming
I'll keep this one very short. If you are still using this, it may work for what you need right now BUT you need to start looking at alternatives. Citrix would suggest that you use App-V but you can make your own informed decision. Newer versions of XenApp\XenDesktop do have native integration with App-V 5.x, so it may be a given but maybe you'll see something else you like in a different project.
All but dead. Look at alternatives.
Numecent Application Jukebox
Numecent Application Jukebox provide a really solid application streaming platform. You can setup a central server for publishing applications to a web portal to allow streaming of the applications over HTTP. The streaming performance is very good over the LAN but part of their big draw is the performance over the WAN. They have a proprietary streaming logic that they call Cloud Paging which does a nice job of optimizing streaming. That's pretty nice but by far and away the most powerful aspect of Application Jukebox is it's isolation settings. Competing products have multiple levels of isolation to choose from but they still provide some isolation even in the least isolated mode. With Application Jukebox you can select to stream the application and run it without isolation. This is huge! It means about 99% of all applications can be packaged and deployed using App Jukebox. No other product, I will discuss can achieve this. For a quick Demo, check this out:
Even without setting application to run completely without isolation, the product can handle certain gotcha's like drivers when running isolated. No product is perfect and to me the some of the short comings of App Jukebox include the fact, at least natively you need to publish applications in the Web Portal and thus it gives you that Software as a Service structure but not real Enterprise push deployment capability. Right now, Numecent have partnered with Software2 and they are having great success in the Education sector which makes sense as their Web Portal makes a lot of sense for students and faculty. The management web console is also a little clunky to me. It's simple enough once you get use to it but the process of assigning an application could be streamlined a little. It would also be great to see Numecent become a little more open and offer trials for us Techies to get more exposure to their great product because it is GREAT but who would know when they all but keep it a secret.
The fact isolation can be turned off on a per app basis gives Numecent a HUGE advantage but they are currently let down by the rigid deployment model in their native tools. Just from a packaging perspective can you imagine if you packaging of all of your application came down to just running a setup capture? Less scripting, less MSI packaging, less time and money spent on the whole damn thing! Software as a Service and launched on demand as you can see in the Demo video obviously does have some uses and could be attractive in a cloud platform but currently, it doesn't cover all bases. With a little more effort put into the product to make it a little more Enterprise focused, they could be a no brainer.
Conclusion - The Winner
Personally, I can't pick just one winner so, my winners are Numecent Application Jukebox and Turbo.net. I can't definitively pick between the two because to me Application Jukebox is not Enterprise ready right now but as a Techie and fan, I can't deny how amazing their product is and for that they are a winner. I pick Turbo.net because they are more Enterprise ready than App Jukebox, in my opinion. Again, as a Techie and fan their packaging tool kicks ass and they are constantly innovating and adding to their feature set. I also believe that Web App compatibility is going to become a major issue when Microsoft pulls support for versions of IE prior to IE 11 in January. Turbo.net offers a really nice bridge solution to take care of your legacy web apps while the devs update them to work with the latest and greatest. Let's face it. IE 11 Enterprise mode does not work for everything!
But hold on...what wasn't included in this review? Application Layering products like Unidesk, FlexApp, App Volumes and App Disks. If you'd be interested in my opinion on those side by side. Let me know. This post was time consuming so don't hold your breath waiting for it. Application Layering is a contender. Right now I get contacted about more App Volumes jobs than any other appvirt solution. It looks like a growing space and could dominate soon! For now, I wanted to focus not the Feature matrix of the AppVirt Smackdown.
Realistically, I don't see anybody taking the throne from App-V and I don't think that's such a terrible thing but I believe Microsoft need focus some time on adding some key features such as the ability to switch off isolation like App Jukebox. If you work for a large enterprise with a an Enterprise agreement with Microsoft, you'll likely end up using App-V by proxy. While you could do worse, I suggest you become familiar with all of your options. In my experience companies don't invest in the application packaging and deployment side of the house as a priority. They really should because it's the cornerstone of the end user experience. I hope you at least found this somewhat insightful.