There has been a surge of interest in containers in recent years, particularly in the wake of Docker’s popularity among developers. Many are now suggesting that the virtualisation technology could eventually replace the hypervisors which have become near-ubiquitous in enterprise data centres.
Simply put, containers offer a lightweight alternative to virtual machines, offering even greater resource utilisation, simplified management and the ability to quickly move applications between servers.
A panel discussion at Cloud World 2016 in London last month - which included representatives from the analyst, vendor and end user communities - gave a balanced view of some of the business benefits alongside the limitations as more companies investigate the technology.
While there are some clear advantages to containers, the challenges are two-fold: the need for the technology to mature, and for large businesses to adapt their processes to realise the full benefits.
According to Laurent Lachal, cloud computing research lead at analyst firm Ovum, the reality is that the technology is still at least "three or four years" from large-scale, mainstream adoption.
Containers - what are the advantages?
But first let's look at why businesses are considering use of containers within their organisation.
Steven Langton, devops team lead at Sainsbury's explained that the supermarket chain has been investigating the use of containers, and though the company remains at an early stage in its deployment, it is "an area that offers great potential for businesses that are looking at agile transformation or digital transformation".
He said that some of the benefits of containers include greater flexibility for developers, freeing them up to concentrate on creating software rather than managing VMs. Meanwhile, for operations teams, containers can reduce the need for performance monitoring once an application is in production.
"We have done a few proof of concepts and realised the benefits that containers are able to bring to us: from realigning or restructuring how our development teams are set up, to enabling us to use multiple languages in our products that we are developing," he said.
"Also, enabling us to build once and run in several environments - so build once and ship anywhere."
Langton added that this has knock-on effects for the wider business: "We are able to implement change a lot quicker than we could do when we were using a VM."
Matteo Piccinini, support and deployment engineer at Bright Computing - which provides software and services to manage Linux clusters for HPC environments - said that containers offer great speed and agility as companies move towards continuous integration and delivery of applications.
"For example, you can easily go into production with a new version and you can roll back in case of failure in a very fast way," he said. "Containers are very fast to spin up."
He added that organisations that are able to break up their applications into 'microservices' using containers will see operational benefits.
"It is important to change the way of doing applications," Piccinini said. "You can easily develop small units of applications that interact with others using RESTful APIs. It is easier for a company to maintain software because you don't have monolithic applications that are very hard to manage.
"You can have a small team that works on a small application that easily interacts [with other applications]. This is the advantage of containers."
Mandi Walls, technical community manager, EMEA at software provider Chef, said that containers can be used to modernise legacy software and make applications 'cloud-ready'.
"For a lot of the larger enterprises that we see, the actual portability to the cloud comes along with containerisation of applications," she said.
"Especially for applications that are five years old or more, that are harder to move out of data centres, harder to get off of older virtualisation platforms and maybe running on unsupported Linux platforms - keeping them in their cage a bit better with containers helps reduce the cost of the legacy maintenance and those sorts of things."
There are clearly strong reasons to consider placing applications in containers. However, despite some industry claims that uptake is quickly spreading through large businesses, Ovum's Lachal claimed that - like most new technologies - containers are actually being rolled out much more gradually.
"My view is that - at the moment - containers are mostly being used by vendors," Lachal said. "Cloud service providers, IT vendors - they are all adopting the technology, but the enterprise market itself is much slower."
The considerable hype around the subject has led to some estimates that containers will be used in production by most businesses within a year.
He claimed that approximately "five percent" of the enterprise market is running containers currently, and he expects figure this to "triple in the next 18 months - so from five to 15 percent". Nevertheless, this remains some way short of many current estimates, and is due to both technology and the immature internal operational practices at large businesses.
Lachal added: "We started talking about devops in 2010 and, six years later, devops is just now starting to gain strong traction. I think that containers will be adopted faster but still will take time - at least three or four years."
So why might adoption be lagging among larger businesses?
Chef's Mandi Walls suggested that while there is undoubtedly growing interest, many large businesses are not yet ready to take full advantage of containers in their operations.
"We work with a lot of large enterprises," Walls said. "A lot of folks are starting to look at containers. What we are seeing though is that they haven't yet reached 'level one' for the things that they would really need to get to containers - good code hygiene practices, actually building artefacts already for their code. They don't have those baseline practices yet."
And while a move to microservice architectures for applications has its appeal, this is easier said than done for large enterprise software systems.
"To use containers you need to be able to redesign your applications in a microservices manner," Sainsbury's Langton said. "Most large enterprises have a lot of legacy monolithic applications, so that is one of their biggest challenges actually adopting and making use of containers."
Another hurdle is the ability to integrate with common enterprise technologies.
"A lot of large enterprises are using .NET, and containers are not by any stretch mature within the .NET environment," said Langton.
"We found that to be one of the major disadvantages of containers at present. [However], there is an improvement - on Windows 2016 they are looking at integrating containers."
Container management and security
One of the major drawbacks that has often been cited in the past has been security limitations in comparison to virtual machines.
Langton said that security has been "one of the biggest issues" with the technology, though this has "recently improved". However, more cautious businesses are still taking the 'wait and see approach' before relying more heavily on containers.
Bright Computing's Piccinini highlighted some of the issues around the lack of isolation betweem containers running on a single machine.
"If there is a vulnerability you can 'block' the entire machine, which means all the applications you are hosting on that machine are gone," Piccinini said. "Usually what we say with containers is that you can achieve multi-tenancy, so you will use the resource of that machine for 10 or 12 applications and in that case all of your business is gone in one second because of one vulnerability in one container. This is one of the biggest disadvantages I can see."
In addition, the technology has been focused more on developers, rather than being easy for operations professionals to manage.
"In some ways containers initially felt like a backwards step from devops," Chef's Mandi Walls said, as the container management tools were, at least in the early stages, aimed more at developers rather than operations staff.
"What we are really looking for is more transparency, more documentation of what is going in those containers so that when it comes to operating those, you don't have security problems that are obscured by the container environment."
Walls said that some of these challenges are being addressed with service discovery tools such as Consul, which allows operations teams better insight into applications running in production. Various vendors have also launched services to manage and orchestrate containers, such as Google's Kubernetes, for example.
"All of the stuff that you need operationally to really be in a production environment were completely absent from the first year or so of discussion about containers and are really just now emerging in that ecosystem," Walls said.
Despite some of the challenges that larger businesses might face with containers, Sainsbury's Langton said that all companies should be considering how the technology will fit within their operations, either now or in future.
"It is worth investigating for businesses how they can use containers and the best use cases, but it is also important to cut through the hype and look at the real benefits that businesses are able to derive."