A guide to Containers AKA What do Containers Contain?

05 February 2018
4 minute read
Best practice

A guide to Containers AKA What do Containers Contain?

05 February 2018
4 minute read

What are Containers?

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.

 

What is Docker?

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.

Why use containers?

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.

When would I use containers?

Microservices

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:

  • Better application resilience – If one of the services goes down, the rest of application should continue to function (albeit at a reduced level perhaps).
  • More agile development – With distinct services being kept separate, development teams can develop and deploy their services independently of each other. This enables faster improvements and fixes, and also makes it easier to fail quickly – all key to the DevOps methodology.

Containers – being lightweight, transportable and quick to boot – can offer many benefits within this type of scenario.

Reducing Public Cloud costs

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.

Licensing in Containers

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.

Windows Server 2016

Microsoft see there as being 2 types of containers:

  • Windows Server containers
  • Hyper-V 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.

Windows Server Nano Server

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.

Oracle

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.

Further Reading

Docker – https://www.docker.com/what-docker

Nano Server – https://docs.microsoft.com/en-us/windows-server/get-started/nano-in-semi-annual-channel

 

Can’t find what you’re looking for?