If you have primarily worked in a Windows Server environment, you may be asking yourself what’s the big deal about containers? After all, we’ve seen this all play out on the desktop side for years. Windows has had application virtualization in different forms from many vendors. The best known would be Citrix’ XenApp. XenApp has similar performance advantages over virtual desktop as containers have over full Linux OS virtualization. In addition to the performance advantages, the Windows desktop ecosystem also has container solutions that address the challenge of application portability and environment independence.
My experience has been that XenApp is about 300% denser than full VDI. Years ago, I witnessed 45 or more users streaming Lotus Notes 6 clients from a single XenApp host vs. the watching the same hardware only able to support 15 full desktop OS’s (this was a while ago, but I think the comparison is linear based on modern hardware). XenApp even allows for unique IP addresses for each application instance and even some dedicated memory spaces.
Both Microsoft and VMware offer solutions for pure application virtualization. Both ThinApp (VMware) and App-V (Microsoft) allow customers to package an application with all the needed support files and registry to run independently of the underlying Windows installation. If you were inclined, both applications would allow you to run every version of Office on the same OS. In the case of ThinApp, you can package the application in an .EXE that can be run on a kiosk. This is a very impressive set of capability that is basically not needed for server applications. I’ll share why shortly.
Why Windows containers are not taking off
Parallels, the sometimes forgotten virtualization company offers a server specific application virtualization solution. So there is at least one well-known vendor offering mature solutions for server application virtualization. The simple answer is that the same gap doesn’t exist in the Windows application development ecosystem as in Linux. The advantage of the Microsoft monopoly is that there’s only one distro for each major OS release. There may be different SKU’s such as Standard, Enterprise and Datacenter but this is all basically licensing. If a developer writes an application for Windows Server 2008 then, it’s reasonably assured that the application will run across Cloud providers as well as their private data center.
This is not the case for Linux. When a developer writes an application on a VM provided by their private Cloud, there is no guarantee that the same packages or distro will be available in the target deployment environment. While installing applications in Linux has gotten easier over the years, there still isn’t a comparison between ease of application installation between Windows and Linux. For all the grief, we give (and receive) about Windows, the application installation experience is best of class.
What about the performance advantages? Keep in mind that we are dealing with enterprise applications. Looking at the Parallels application, the target market is the Cloud provider. Containers are extremely effective when you are running the same workload across containers on the same OS. When you have varied applications they become less appealing from an administrative and I’d assume performance perspective.
It’s highly unlikely that there are enough similar workloads running in a Windows enterprise to make it worthwhile the overhead of running container management software. Also, I believe the density offered by application virtualization is appealing but not appealing enough to replace the simplicity offered by OS virtualization with VMware or Hyper-V. We can again look to the desktop as an indicator. Even faced with the hard data, it’s difficult to convince an enterprise to adopt a pure XenApp deployment vs. full VDI such as VMware Horizon or XenDesktop. My guess is the simplicity of desktop virtualization vs. the effort needed to engineer and manage streaming or virtualized applications are too much for the average decision maker.
Will containers take off in Windows Server?
Containers make sense in Linux environments. The challenge of portability is strong enough for the enterprise to adopt containers for Linux infrastructures. I’m skeptical as to containers taking off in Windows Server. Unless enterprises begin to build scale-out applications that can take advantage of containers, I see little value.