I would like to clarify a few aspects of virtualization solutions.
App-V (formerly Softgrid)
Helps with application to application coexistence problems. An App-V application runs in an isolated environment in the client OS, so that it does not interfere with other applications, but it still needs to be compatible with the OS it runs in.
MED-V (Microsoft Enterprise Desktop Virtualization, formerly Kidaro)
Helps with application to OS compatibility problems. If an application can only run in XP but the client OS is Vista, MED-V lets the application run in an XP virtual machine installed locally. The application can also appear in a normal window in the Vista session.
VDI vs MED-V
Both VDI (Virtual Desktop Infrastructure) and MED-V are desktop virtualization solutions.
VDI is a general term used by all vendors. Microsoft also uses the term “Remote Desktop Virtualization” (RD Virtualization). VDI is about the virtual machine with the client OS
running remotely in a Remote Desktop Services server and the user accessing it with RDP.
MED-V is about the virtual machine with the client OS running locally in the user’s PC.
RemoteApps vs App-V
Both RemoteApps and App-V applications appear in the client OS like normal applications in normal windows.
Each RemoteApp runs remotely in the Remote Desktop Services server and is accessed via RDP.
Each App-V application runs locally in the client OS (in an isolated environment to avoid interfering with other App-V applications or normal applications).
And some Citrix jargon:
XenServer is Citrix’s bare-metal hypervisor, just like Microsoft’s Hyper-V.
XenApp comprises of two technologies: server-side application virtualization and client-side application virtualization.
Server-side application virtualization means the application is running remotely on a server and is accessed via the ICA protocol which is similar to Microsoft’s RDP.
Server-side application virtualization is like Microsoft RemoteApps technology.
Client-side application virtualization means the application is packaged, deployed and running locally in the client OS in isolation from other applications. Client-side application virtualization is like Microsoft App-V technology.
So, XenApp = RemoteApps + App-V.
XenDesktop is Citrix’s VDI technology.
XenDesktop is about the user accessing remotely via ICA, the desktop OS which runs in a virtual machine in the data center.
But XenDesktop is also capable of streaming a virtual desktop over the LAN to a PC or thin client from a single desktop image that is managed in the data center. The PC or thin client gets and runs the OS locally on the fly.
OK! And now some examples. Fell free to use the cheat sheet above, that’s what it’s for!
You are the administrator of your company. (I am glad we clarified this.) You have five applications, app1, app2, app3, app4 and app5, which can run in every supported Microsoft OS, but which cannot be installed together in the same OS because of conflicts. For example, if app2 and app5 are installed together, neither can run. If app1 and app2 are installed together neither can run. And so on, for every possible combination. What can you do?
You could provision and setup five Terminal Servers, TS1 to TS5. In Terminal Server TS1 install app1. In Terminal Server TS2 install app2. And so on. Publish the applications as RemoteApps. Now each user can run them simultaneously from the same client OS session and they will appear in normal windows.
The downside here is that you need a different Terminal Server for each app to isolate the app from the others. And if there were more conflicting apps, you would need more Terminal Servers.
Sequence each application as an App-V app. Make the applications available to your users. Now each user can run them simultaneously from the same OS client session and they will appear in normal windows. This is because each App-V application runs in an isolated environment.
Clearly, solution 2 is the best solution.
You are the administrator of Contoso, a company that sells illegal firearms. Your boss, a Godfather type of character, wants the users to use some sensitive applications from their PCs only when they are connected to the company’s intranet. He wants no part of the applications executables downloaded to the user’s PCs. In every PC there are a lot of other applications installed that the users also need. All applications, both the locally installed ones and the sensitive ones, should be seamlessly available. And if your boss finds out that you responded incorrectly, you will “conveniently disappear”. What will you answer to your boss?
Clearly the solution here is RemoteApps. You should suggest deploying a Terminal Server,
install the sensitive applications there and make them available as RemoteApps.
When these applications are run, they will appear to the users as if they are installed locally. In reality, though, these applications run on the Terminal Server and communicated to the client PC via RDP.
Although App-V has a secure cache and security measures to prevent the applications from being used offline and from remaining in the local PC cache after they are run, since the boss wants no part of the applications executables downloaded to the PCs, RemoteApps is the best solution.
Contoso sells contraband items to various countries around the world and has hired you as an external consultant. Recently sales have fallen and the company has decided to reduce TCO costs by replacing desktops with thin clients. They heard about MED-V and want to implement the technology towards their goal. What will you advise them?
MED-V is the only technology that cannot be implemented in such a senario. MED-V needs a virtual machine to run locally alongside the main OS. MED-V is the technology that needs the “fattest” clients in order to be implemented.
For Contoso’s situation, the thin clients can either connect to Terminal Servers or Hyper-V Servers that host the full client desktops. Either way, the connections will be via RDP. Also, the Terminal Servers and Hyper-V hosted client desktops can have App-V applications installed in them.
But should Contoso choose Terminal Servers or Hyper-V Servers? It depends on which platform their particular applications are more stable, what their administrators find easier to manage and what extra features they want to have. For example, some administrators find it very easy to provision Terminal Servers and do not mind having a lot of user sessions in the same OS instance. Others do not like this approach and want every user to have their own virtual machine centrally managed and accessed. With Hyper-V Servers each user gets a centrally deployed virtual machine which the user can access from a thin client.
You are working for Microsoft. You are responsible for the features that go in Windows 7. Windows 7 will be able to run Vista applications, but there might be issues with Windows XP applications. Steve (sorry, I meant upper management) wants to have a solution for users that want to run XP applications alongside with Windows 7 applications, even if the XP applications cannot run in Windows 7. What can you suggest?
Clearly, App-V does not cut it here. Even if you sequence the problematic XP apps as App-V apps and run them isolated, they will still run in Windows 7 and fail. So a MED-V approach is correct here. Give each user the option of running a Virtual PC Windows XP virtual machine hosted by their Windows 7 session. The Virtual PC virtual machine will have XP as the operating system along with all the applications that cannot run in Windows 7. The MED-V technology will also allow the XP apps to appear as normal apps
in the Windows 7 session.
And a parting tip. Whenever you hear about a virtualization technology, always do a research for its strong and weak points. And always try to understand where the virtualized OS or virtualized app runs (in the client device or in a server in the data center), in what session and in what context (isolated or not). This will clarify a lot of potential issues and lead you to more informed decisions.