While the interest level in Docker containers as an alternative form of virtualization is all the rage these days among developers, it might be a little while before IT services providers see large numbers of these containers deployed in a production environment.
What is a docker container?
Docker containers are lightweight pieces of software that wrap up a piece of software in a complete file system that contains everything required to run an application. Those containers can be deployed on top of any bare-metal server, virtual machine, or platform-as-as-service (PaaS) environment. Developers have embraced Docker containers on public clouds because they don’t need help from an IT operations team to spin them up.
For the most part, when Docker containers are used in a production environment they are deployed on top of virtual machines. This is because the IT organizations that deploy containers already have the tooling in place to deploy virtual machines. Plus, many of them appreciate the additional level of security that virtual machines provide by isolating Docker containers from the underlying operating system. For similar reasons, Docker containers are also deployed in PaaS environments that provide a framework for deploying and managing them.
Rise in open source adoption
In the near future, it is expected that many more organizations will adopt an open source Kubernetes orchestration tool developed by Google to manage Docker containers. Once that happens, the number of deployments of Docker containers on bare metal servers in a production environment is expected to increase dramatically.
The average server can run 15 to 25 virtual machines today, but that same server can run 100 or more Docker containers. That results in a substantially higher utilization of servers and less reliance on virtual machines that can become increasingly bloated over time. It’s also probable that in time Docker containers will be deployed directly on top of storage systems to reduce I/O latency and contention between Docker applications and storage resources.
Managing Docker containers
The only major drawback at the moment is that the underlying networking technology associated with Docker containers is relatively immature, which makes deploying distributed applications that go beyond the reach of a single cluster a significant challenge.
For at least the next decade, IT service providers are going to find themselves asked to manage multiple types of Docker containers, as well as all the legacy virtual machine infrastructure and PaaS environments that have already been deployed. So, those IT service providers need to start thinking about management tools that can span the full gamut of virtualization options that organizations now have at their disposal. For that reason, there is expected to be a sharp increase in adoption of the OpenStack cloud management framework, which is the only mechanism for managing all these environments using a single application programming interface (API).
The lesson for IT service providers
By now it should be apparent that the IT industry as a whole is on the brink of a seminal change. Naturally, there will be multiple ways of absorbing all that change. The one thing that is no longer an option—if IT service providers expect to stay relevant at this point—is to do nothing.