Skip main navigation

Container Environments


In the previous steps, we looked at Infrastructure as a Service and Platform as a Service and we explored their differences. In this step, we will look at the third environment type, Containers.

Computing has shifted significantly since the days when only physical machines could be used.

Virtual machines (VMs) opened up the possibility of running multiple instances on one machine with separate environments and applications. Although VMs have revolutionised traditional computing and cloud computing, applications or processes that require large amounts of memory challenge the idea of scalability for machines.

Containers also help you to create isolated and allocated resources. Both technologies have similarities in that they create isolated environments with separate resource control (memory and CPU, for example). However, containers, unlike VMs, don’t run an entire operating system. While VMs utilise a hardware virtualisation technology, containers virtualise the operating system and share the kernel of the host machine.

By using containers, you can package an application with its dependencies and configurations to run it in different environments without concerning yourself with the underlying layers of the operating system and the infrastructure. This enables faster creation of isolated environments as well as the flexibility to deploy and release instances of the same container.

Multiple Benefits

Application containers are ideal for application development and testing because they have the combination of an instant startup, which comes from OS virtualisation, and reliable execution, which comes from isolation and resource governance.

Containers also allow developers to quickly iterate over a development project because their environment and resource usage are consistent across systems. A containerised application that works on a developer’s machine will work the same way on a production system.

Instant start and a small footprint also benefit cloud scenarios; applications can scale-out quickly and many more application instances can fit on a machine than if they were each in a virtual machine. This maximises resource utilisation.

With Infrastructure as Code and configuration management processes and tools, you can provision your production environment to a container and deploy it anywhere.

Docker is an application-containerisation technology that you can use to build and assemble an image by providing instructions and commands in a Dockerfile (a plain text file).

This article is from the free online

Microsoft Future Ready: Fundamentals of DevOps and Azure Pipeline

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now