Containers are finally making their way into the real world. According to a survey out this week from Nginx, 20 percent of respondents say they use containers in production, and one-third of the respondents run containers for more than 80 percent of workloads. Both developments are huge.
I see this in my world as well, as large enterprises now do real work with Docker and CoreOS.
On the surface, the objective is portability. Containers let you move from cloud to cloud with little or no modifications. However, the chances are low that a Global 2000 IT shop will move from Cloud A to Cloud B anytime soon.
If portability is not a real concern, why containers? Because they promote a software architecture that takes advantage of the distributed nature of cloud computing. When you place applications and application components inside containers, they become workloads that can be easily balanced between any number of private and public clouds, yet still communicate with one another.
Also, containers are naturally service-oriented. They work with microservices to provide access to parts of the application, promoting reuse and getting the most out of application development.
Finally, containers are scalable when run within cluster managers such as Kubernetes or Swarm. We can build apps with the assurance that scalability will happen outside of the container. Developers can focus on writing the app without the need to deal directly with the efficient management of resources.
Containers are more of an evolution than a revolution. It’s a way to build and move applications to a state where they can be better managed and utilized. It’s simple and it works well, and we should all be happy about that fact.