The State of Containers and the Future of the Docker Ecosystem
Containers (and in particular, Docker) are getting ever more popular.
A recent report by O’Reilly Media and Ruxit presents interesting findings on the adoption and use patterns of containers and Docker.
For instance: the deployment of containers in production is likely to increase significantly in the short term. The report also highlights that one of the major barriers preventing production adoption has to do with the need for better operations tools. This sort of information may be crucial in guiding decision making on investment and innovation priorities.
This post considers some key aspects of the report. I first present the approach used for the research, then highlight the main findings. I conclude with a quick comparison to similar research reports published during the course of this year.
O’Reilly Media and Ruxit invited individuals from the O’Reilly community to share how their organisations currently use (or plan to use) containers, which container technologies and infrastructures they opt for, and what motivations and challenges are associated with opting to use containers.
Some 138 self-selected participants were reached. They came from a range of industries and represented a broad spectrum of company size. About half of the respondents came from organisations with fewer than 500 employees. While 13% of responses came from individuals working at companies or organisations with over 10,000 employees.
These demographic data alone confirms that containers are being adopted by a broad range of company size.
Who’s Using Containers and What Sort of Containers Are Being Used?
The survey reveals containers are used by 65% of participants, and predominantly by those companies running more than 10 hosts in their infrastructure.
As to the type of container used, Docker is the most popular at 78%, followed by LXC at 24%, rkt at 16%, and 11% for other technologies, including Cloud Foundry’s Warden and Microsoft’s Hyper-V.
What Infrastructure Are Containers Being Deployed On?
The likelihood of running containers did not significantly vary depending on the number of hosts a company was operating.
With regards to the underlying OS being used to run containers, EC2 Amazon Linux and the Ubuntu/Debian distributions were found to be the most popular, followed by CentOS and RedHat Enterprise Linux.
As for the OS the containers are running, Ubuntu/Debian was the most popular choice, with 67% of respondents using or planning to use.
*Reasons for Using Containers *
The survey asked participants to select the factors that motivated them to start using containers.
These were the responses:
- Faster or easier deployment (85%)
- Flexibility in deployment (62%)
- Better isolation (54%)
- Architectural reasons, i.e. microservices (48%)
- Cost savings (30%)
Given that Docker is by far the most predominant container technology, participants’ emphasis on deployment and workflow gains reflects how Docker has successfully simplified the process of building, packaging, and shipping applications across multiple environments and infrastructures.
Further analysis of participants’ views on how containers impact infrastructure reveals containerisation has simplified and sped up deployment, making it easier and faster to test, iterate, and rollback if required.
Containerisation has also improved operational management by making it easier to automate deployment and integrate with DevOps tools. This improvement in the workflow has resulted in more frequent and regular deployments.
The increased capacity to run multiple containers per host has resulted in fewer hosts and thus has reduced the infrastructure cost. However, container adoption has meant that companies have to run their on-premises private registries and significantly change their monitoring and alerting infrastructure.
In addition, for companies running a small number of services, containerisation may result in increased complexity, and does not necessarily lead to reduced number of hosts or the associate cost savings.
Production Adoption Lags Behind
The survey finds adoption in production (currently 40%) is slower than for development (86%) and testing (64%) environments.
However, production deployment of containers is slated to increase significantly in the short-term, with half of all respondents (53%) reporting they intended to use containers in the production environment within the next 6-12 months.
These figures demonstrate a broad emerging consensus that containers are production ready.
Why Aren’t Containers Being Widely Adopted in Production?
In response to this question, the following challenges were identified:
- Technology maturity (56%)
- Orchestration (50%)
- Monitoring (46%)
- Automation (40%)
A number of participants also indicated it was difficult to convince clients, management, or the development team of the benefits of adopting containers.
However, as the container ecosystem matures and better tools are developed, many of this issues will be addressed, likely leading to increased adoption.
The O’Reilly Media and Ruxit Survey is by no means the only attempt at measuring container adoption and use trends. Over the past months, several other organisations have produced similar data, including: Datadog, ClusterHQ and DevOps.com, vmblog.com and StackEngine, and New Relic on Docker. While these research initiatives differ in their approach and focus areas, they do not contradict the general picture emerging from the O’Reilly Media and Ruxit survey report.
Across the board, this body of research seems to agree. Containers are getting more popular. Docker dominaes the the container ecosystem. There is a lag in production deployments, but this should increase in the near future. And there is a need for better tooling in order to facilitate orchestration, automation, and monitoring.
Deis, which provides an open source Heroku-inspired workflow on top of Docker, is one such response to this need.