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

Our purpose is to transform access to education.

We offer a diverse selection of courses from leading universities and cultural institutions from around the world. These are delivered one step at a time, and are accessible on mobile, tablet and desktop, so you can fit learning around your life.

We believe learning should be an enjoyable, social experience, so our courses offer the opportunity to discuss what you’re learning with others as you go, helping you make fresh discoveries and form new ideas.
You can unlock new opportunities with unlimited access to hundreds of online short courses for a year by subscribing to our Unlimited package. Build your knowledge with top universities and organisations.

Learn more about how FutureLearn is transforming access to education