»

Demystifying containers

Containers are useful to overcome compatibility problems when moving software from one environment to another.

Until recently, a container was something which went on a train or a ship. However, with the rise of a company called Docker, containers are now rapidly becoming a part of the information technology landscape. Software containers, to be more precise (and to distinguish them fully from cardboard boxes, Tupperware and those metal things they load on ships).

Let’s take a closer look at containers – and examine if they matter to you.

What is a software container?

Brace yourself, because the definition is quite technical – but essentially, a software container is a self-contained virtualised instance of an operating system.

There are alternative terms for containers which provide some conceptual hints at what they are: virtualisation engine, operating system virtualisation, virtual private server and our personal favourite, jail. 

It’s almost like multiple personality disorder for an operating system, or something out of Christopher Nolan’s Inception. There is a single host operating system; containers are fully contained schisms, which operate as complete runtime environments to host applications and servers as required.

So what does a software container do?

Containers are particularly useful for overcoming compatibility problems encountered when moving software from one environment to another. If that sounds odd, it shouldn’t: applications have to be developed somewhere, and that might be hosted on a laptop or in the cloud. But they are often then deployed elsewhere to be used.

The many differences and dependencies in the underlying operating system and other factors can create issues that prevent the application from working. In other words, containers are most useful for people creating software – it equips them to work in standardised environments, regardless of the computer on which they physically create their code.

In this respect, containers are not unlike those metal boxes which are loaded on to ships – and indeed, software containers are routinely conceptually equated with the logistical variety. By standardising, it becomes easier for people to work together and across a multiplicity of systems, just like the standard box size makes it easier to load cargo.

Sounds brand new and exciting

Settle down, because just like the virtualisation associated with VMware and other vendors, containerisation has a long history.

The recent zoom into the jargonosphere is driven by the emergence of Docker, a company founded by Solomon Hykes. An open source toolkit which automates the deployment of applications in containers, Docker’s first release came in 2013.

So why are containers a big deal, thanks to Docker?

This is the crux of it. Quoted in Readwrite, Hykes explained the problem that Docker solves. “ … your app is supposed to span any number of machines, it’s supposed to continue running even if you swap out machines, as you go from your own servers to Amazon or Google Compute Engine. The biggest problem is how do I package my app so that it can be moved around from machine to machine?”

As you’ll have noticed, apps are everywhere today; the number of platforms and operating systems has only grown and the difficulty of producing an app that works is, as a consequence, heightened.

What Docker does is to make it easier to build an app once and then get it to work on any operating system.

American intelligence company 451 Research helps with a more digestible insight: "Docker is a tool that can package an application and its dependencies in a virtual container that can run on any Linux server. This helps enable flexibility and portability on where the application can run, whether on premises, public cloud, private cloud [or] bare metal.”

Can I make money out of containers?

If your target market is software developers, then probably yes. Containers have the ear of the who’s who of high-profile companies – Amazon Web Services, Cisco, EMC, Fujitsu, Google, HP, Huawei, IBM, Intel, Microsoft, Pivotal, Red Hat, VMware and many more – and users include eBay, Spotify and plenty of others. 

Docker (which is not the only company to provide container solutions) enjoys the highest profile, but there are definite opportunities as the concept of software containers enjoys widespread support – including for the widespread deployment of cloud applications.

Further reading

<ul><li>https://en.wikipedia.org/wiki/Docker_(software)</li>

<li>http://www.cio.com/article/2924995/enterprise-software/what-are-containers-and-why-do-you-need-them.html</li>

<li>https://en.wikipedia.org/wiki/Operating-system-level_virtualization http://www.wired.com/2015/06/software-containers-bringing-tech-giants-together/</li>

<li>http://www.networkworld.com/article/2226996/cisco-subnet/software-containers--used-more-frequently-than-most-realize.html</li>

<li>http://techbeacon.com/essential-guide-software-containers-application-development http://readwrite.com/2014/06/10/docker-goes-enterprise</li>