Mention containers, and the first word that comes to mind these days is "Docker." But container technology is far bigger than Docker alone, and it covers more use cases than simply delivering and running apps.
One of the original major proponents of container technology on Linux, OpenVZ -- or Virtuozzo in its commercial edition -- is releasing a new version of its container solution, packaged as a full-fledged Linux distribution.
But rather than serve as a head-on challenge to the likes of Docker, OpenVZ allows users to run Linux VMs that have the fleet-footedness of containers. This approach will remain valuable as long as VMs remain in operation.
One kernel, many VMs
OpenVZ is essentially a modified Linux variant -- the current version uses the Red Hat Enterprise Linux 3.10 kernel family -- where multiple containers, or virtual private servers/virtual environments (VPSs/VPEs), can share a single kernel.
As a result, Linux is the only guest OS that can run under OpenVZ in a container. That said, those containers can be booted quickly and run without the overhead of a full-blown hypervisor.
The commercial edition of OpenVZ, called Virtuozzo (also the name of the company marketing the product), incorporates OpenVZ but adds enterprise-grade features not found in the open source release. Virtuozzo has a new release of its own alongside OpenVZ 7, named -- appropriately enough -- Virtuozzo 7.
Most of the big changes announced in OpenVZ 7.0 involve the packaging and deployment of the product. It's now an entire standalone Linux distribution, with both the commercial Virtuozzo product and the free OpenVZ distribution based on the same kernel.
For those who want to run actual VMs, KVM/QEMU can be used as the hypervisor in OpenVZ. To make management easier and more consistent, OpenVZ now uses the libvirt project as the standard API for working with full KVM instances, containers, and their attached storage pools or volumes.
Doing things the VM way
Virtual machines are still in wide use in IT, not only due to their legacy presence, but because they provide advantages that are still hard to replace. OpenVZ 7.0's changeset lists several such features, including live re-allocation of memory for containers ("memory hotplugging") and live migration.
That said, some of the best implementations of those features are only available in the commercial Virtuozzo product. If you want zero-downtime live migration, for instance, you'll need to pay for it. Other for-pay features include hardware-level virtualization support, integrated backup (OpenVZ only supports snapshotting), physical-to-virtual migrations, and clustering. And while Docker is working on a form of live migration for its containers, that hasn't yet made it into an official release.
The biggest differences between OpenVZ and Docker are not only technological but methodological and philosophical. OpenVZ is about isolating entire running instances of an OS, while Docker provides applications with isolation, both from the system at large and from each other.
Docker's advocates have, if anything, become stauncher over time about distinguishing VMs from Docker-style containers, with strong use cases for both. As long as that remains the case, there'll be room for projects like OpenVZ to provide an alternative.
[Edited to clarify the differences between the open source OpenVZ project and the commercial Virtuozzo product.]