Linux containers have been around for many years in such incarnations as BSD jails, zones, chroot jails, OpenVZ containers, and now famously, Docker containers. These containers provide a very high density, very secure virtualization solution on Linux. You'd think someone would have figured out how to do the same thing for Windows. Someone did several years ago: Parallels, now Odin. And just like their Linux counterparts, they look and feel just like a full Windows system.
A container is an operating environment that consists of a host system and secure partitions that look and act like full operating systems. Containers share the central kernel and key operating system files, memory, and CPU with the host system, but they're also segmented off in such a way that they have their own user database, their own applications, and their own slice of host disk space.
You can change container CPU, memory, disk, network, and I/O without rebooting, which is a boon to Windows users.
One of the differences in containers vs. full system virtualization is that there's no operating system installation required for containers. You get the same operating system that your host runs.
Containers are so efficient because the host "sees" a container as a regular application. You get high density because of this shared kernel setup. Some container researchers report having more than 600 containers on a single Linux system. I'm not sure what the densities are like for Windows containers, but I'm sure that it's in the range of 10 to 15 times that of standard server virtualization solutions, so it wouldn't surprise me to hear that you can run 150 to 200 or more Windows containers on a single host.
The hardware requirements for Containers for Windows 6.0 are as follows:
- 1.4 GHz or faster 64-bit processor
- At least 1 GB of RAM
- At least 32 GB of disk space (more for 16 GB of RAM or more)
With these low requirements, you can test Windows containers on any desktop or server system available to you.
Words of Caution
You do not need to install anti-virus software in containers nor do you need to patch/update individual containers. Install anti-virus software and anti-malware software on the host only. Also, only patch the host. All containers will receive the patches. The Internet Explorer version should be consistent throughout the operating environment and its containers. Containers do not support non-Microsoft VPN software. VSS backups don't work on the system drive (C:) for containers. For backups, you should use the Virtuozzo backup tools provided.
For databases, Odin suggests using Microsoft's SQL Server or MySQL. You do not need to separately install .NET for containers. You can (and should) perform disk defragmentation of containers.
Containers do not have their own paging files nor do they have their own separate memory spaces, although administrators can limit the amount of memory consumed by containers.
Business and Educational Applications
For business applications where developers and management don't want to use a hosted service, Windows containers provide an excellent way to leverage hardware for test, development, and production scenarios, although it's not recommended to mix environments. The amount of overhead consumed by containers is small enough that almost any contemporary system is capable of hosting several containers.
Especially attractive for schools and educational institutions, Windows containers offer an inexpensive method of supplying desktops to hundreds or thousands of students with low overhead and minimal management required as compared to standard desktops or traditional VDI implementations.
If you want to know how economical it is, try a virtual private server (VPS) for yourself at one of the hosting companies that use it. You can start with a small system for as little as $5.00 per month. You can also download the trial version and host some VPSs for yourself.
If you do decide to check into Windows containers, let me know how you like them. Give me some feedback about your experiences, good or bad.