The history of containers can be broken into three main phases. Each phase marks a different stage in the evolution of container technology, as well as different use cases for containers. Understanding the three phases is critical to understand how containers became what they are today and where they are headed in the future.
What are the phases of containerization? Keep reading for an overview.
Containers Phase 1: Staging and PaaS Dominate
The first phase in the history of containers took place between about 2013 and 2015. At the time, Docker and most other containerization frameworks were a new technology for most people. (OS-level virtualization, which makes containers possible, is actually a much older idea, but most folks did not pay attention to it until Docker’s debut.) Organizations were still experimenting with it.
Most use cases for containers at the time fell into one of two categories: helping to build agile staging environments for automated release pipelines and hosting production applications as part of a PaaS system. (Indeed, it’s easy to forget today, but one of the first major examples of containers in the real world was Heroku, which used LXC to build hosting environments.)
During the first phase of containerization, few companies were using containers at a large enough scale to need sophisticated orchestration solutions. The only major technology within the container ecosystem was, therefore, the container runtimes themselves.
Phase 2: Containers Deployed at Scale
Between about 2015 and 2018, the momentum within the container ecosystem shifted to orchestrators. These years saw hard-fought battles between Kubernetes, Swarm and other orchestrators to become the centerpiece of container deployments.
Thanks to the rapid evolution and sophistication of orchestrators, companies also were able to begin deploying containers at scale. This made it possible to use containers as a complete solution for deploying applications, not just for staging or as part of tightly controlled PaaS environments.
Meanwhile, Docker’s container runtime quietly displaced alternatives including LXC to become the go-to containerization framework for most deployments.
Phase 3: Containerization Services Take Over
Around 2018, the battle for orchestration ended, with Kubernetes emerging as the leading orchestration tool for most deployments. At the same time, cloud-based container services, such as AWS ECS and Azure AKS, became the go-to solution for deploying containerized applications. The DIY approach of installing a runtime and orchestrator and provisioning your infrastructure is mostly a thing of the past.
Today, the biggest question that companies ask themselves when choosing how to deploy containers is which container service to use. And like other services that run in the cloud, the most important differentiator is price. Ease of integration with other services is also a consideration.
The Future of Containers
Where do we go from here from the first three phases of containerization? I suspect we’ll continue to see cloud providers slash prices for container services, while also beefing those services up with add-ons, such as security tools, in a bid to attract customers.
It’s worth noting, too, that a litany of different container runtimes has emerged, many of which cater to specialized use cases. A second battle over runtimes may thus be on the way.
But whatever the future holds, it’s clear that we are worlds away from the heady days of 2013, when OS-level virtualization was a new idea to most folks.