For the past five years or so, I've said again and again that I don't like non-persistent / shared / locked down images for VDI. In fact that was a core tenant of our 2012 book, The VDI Delusion.
Why I didn't like persistent in the past
If you go way back to 2008, I was actually a fan of non-persistent / layered desktop images. I believed that the management, security, and headache savings of just delivering apps "on demand" into a shared base image was the way to go.
The main think that screwed up that plan was that the tools of 2008 which delivered those apps on demand (App-V, ThinApp, etc.) didn't have 100% app compatibility. There have been plenty of white papers and presentations over years about which of those tools was "best," but the reality is that none of them could do 100% of the apps. Unfortunately it only takes one application to "break" this whole non-persistent concept. If you can deliver 95 out of your 100 apps via app virtualization, what do you do with the other five? Do you build separate base images for each one? One about a user who needs 2 of the 5? Do they have their own base image?
As you can imagine, this got complex really quick, with the end result being that packaging up "all" your apps in 2008 just flat-out wasn't possible.
The other thing that these older-generation app virtualization products couldn't handle was user-installed apps (or UIAs), and there were plenty of organizations out there where that was a flat-out showstopper.
So taken together, these two limitations meant that the non-persistent / shared master image VDI vision didn't happen by 2010, and it's why I've been talking about how VDI for non-persistent isn't all it's cracked up to be.
What's changed today?
Obviously the whole point of this article is that I've changed my mind on the viability of using a non-persistent shared image for VDI today. So why is that? What's change? Two things:
1. App delivery with 100% application compatibility
First, today's application delivery tools are able to provide 100% compatibility for Windows apps. (When I say "today's application delivery tools," I'm talking about things like Unidesk, FSLogix, Liquidware, VMware AppVolumes, etc.) These products have all been designed in the past five years (i.e. after VDI was already a thing) with the specific goal of broad application compatibility.
Previous generation tools like App-V and ThinApp were designed ten years ago with the specific goal of running "problem" apps side-by-side. Then when the VDI world starting talking about non-persistent (which they did because the storage of 2008 couldn't support persistent), the existing App-V and ThinApp vendors of the world said, "Hey! We can use our products to deliver apps on demand! Buy us!" So we did, but we found that those products were being twisted to do something they weren't really designed to do.
But again, the modern app delivery products were designed with app compatibility and delivering apps to shared images in mind, and they work well.
2. Users aren't as pissed off about not being able to install their own apps
The second big change that makes non-persistent work well in today's world is that the need to support user-installed Windows apps isn't as big of a deal in 2014 as it was five or six years ago. There are two reasons for this:
First is that many (most?) of the apps that users want to use today are web based. In 2008 if you gave me a locked down desktop and told me that was all I had, I would have told you to piss off and walked out the door. But today, meh, as long as I have a browser, I'm fine. (And if I have a Windows app that I actually need for my job, I can make the request through the proper channels and get it added into our app delivery system.)
The second thing that makes locked down desktops more palatable in today's world is the fact that everyone has a smartphone and iPad in their bag. If my desktop is locked down, eh, so what? I still have my phone. I'm fine.
So now I think all VDI should be non-persistent?
To be clear, everything I've written about the ability to do persistent desktops in VDI at a cheap price via modern storage technologies still applies. If you want to do persistent VDI, you should do it. It's awesome! But on the other hand, if you also want to do non-persistent VDI, the realities of the modern world coupled with modern app delivery / layering / cloaking / whatever products mean that you can do that too and it's fine.
Yay for choice!