VMs help create isolated environments, each with guest OS. Software applications or services can run inside a VM with complete isolation from another VM.
Hypervisors can run discrete VMs such as Linux and Windows together.
VMs suffer from portability and packaging due to the huge size and intense orchestration needs.
Containerization helps run software systems as isolated processes inside a machine. Containers increase the density of applications per machine, and also provide application packaging and shipping capabilities.
Windows Server 2016 supports containerization using kernel features such as filesystems, namespaces, and registry.
Windows Server 2016 runs two types of containers, Windows Server Containers and Hyper-V Containers. Windows Server Containers share OS kernels, whereas Hyper-V Containers run their own OS.
Nano Server is a deeply refactored version of Windows Server, which is 93% smaller, remotely-administered, and ideal for microservices.
Microsoft Azure supports cluster management solutions such as DC/OS and swarm.