Containers can be viewed as the next step in virtualisation. They’re smaller, faster and easier to work with than traditional Virtual Machines (VMs).
A Virtual Machine is, as the name suggests, a complete machine – so each one has its own Operating System and everything else a server would contain. Virtual machines will often run multiple services and applications.
Containers, on the other hand, contain just what is needed to perform the task – and that is typically running a single service or application. Most of the “central infrastructure” – including the Operating System – is shared between the containers, enabling each one to be small and lightweight.
Docker is the foremost container technology, reaching almost “Hoover” levels of ubiquity in some quarters. While other tools to create containers exist, Docker is the leading technology, with widespread use as well as partnerships with companies such as Microsoft.
Some of the main benefits offered by containers include:
Better resource utilisation – Because they’re much smaller than VMs, typically tens of Megabytes rather than tens of Gigabytes, more containers can be deployed on the same infrastructure.
Increased speed – Because they’re much smaller, they can boot up much faster.
Increased agility – Their small size makes them extremely portable and standardised images makes them easily re-usable within other deployments and services. Due to this, containers can help increase speed and efficiency within development scenarios.
Many more organisations are moving towards developing applications using microservices – a combination of loosely coupled, interacting but somewhat separate, services. This has two main benefits:
Containers – being lightweight, transportable and quick to boot – can offer many benefits within this type of scenario.
As containers are smaller, you can put more of them on one server which can lead to savings – particularly in the public cloud. If you can consolidate multiple workloads into a single VM – this will almost certainly reduce your Cloud infrastructure spend.
This all sounds great – but what does it do mean for SAM? As a general rule, containers are viewed the same as virtual machines but let’s take a look.
Microsoft see there as being 2 types of containers:
And these are licensed differently.
An unlimited number of Windows Server containers can be run on a Windows Server 2016 system, whether licensed with Standard or Datacenter edition.
Hyper-V containers provide higher levels of isolation and follow the familiar Virtual Machine licensing rules – 2 containers are available when all physical cores are licensed with Windows Server 2016 Standard while Datacenter allows unlimited containers. 3rd party container technologies are equivalent to Hyper-V containers, meaning containers created via tools such as Docker follow these same licensing rules.
This new deployment option for Windows Server is designed for container scenarios – the OS has a significantly smaller footprint and is designed for such uses with “fewer patches, faster restarts and tighter security”.
Be aware of the licensing requirements! Windows Server 2016 Nano Server receives updates using the “Semi-Annual Channel”, meaning that Software Assurance (SA) is required on both the server licenses AND CALs.
Containers are, not surprisingly, considered “soft virtualisation” by Oracle. Should Oracle be deployed within a container, you will need to license all the physical infrastructure that sites underneath the container – including all servers within the cluster, farm etc. unless other, Oracle approved, “hard partitioning” measures are also in place.
Docker – https://www.docker.com/what-docker
Nano Server – https://docs.microsoft.com/en-us/windows-server/get-started/nano-in-semi-annual-channel