I'm speaking at the New Structure Conference in San Francisco this week, and the common themes are the cloud and containers -- often interwined. The sense is that containers are exploding in use, with Docker, CoreOS, and Mesos becoming the new rock stars of cloud computing.
Containers are great, and the cloud is great. But it's a mistake to conflate the two because it unnecessarily limits the power of containers to only one deployment model.
Why are containers so attractive? They bring real value:
- A common platform for application distribution, which provides the ability to distribute and isolate portions of the application
- A standard way to develop and deploy services and microservices
- The ability to provide consistency of platforms, which leads to better portability
Containers are an enabling technology build on familiar technologies -- such as distributed objects and Java containers -- that provide a better way to build and deploy both cloud and on-premises applications.
That "both cloud and on-premises applications" statement is critical, but it was lost at the New Structure Conference this week. So I'll say it again: Containers provide a better way to build and deploy both cloud and on-premises applications.
When people say "containers are the future of cloud," I get discouraged. Their value extends to all complex distributed systems, cloud and otherwise.
There's a tendency in IT to consider any popular technology as a savior if only it were more widely used. The fact is no single technology will ever save us; it's always a matter of correctly deploying many, many technologies. Cloud computing is no different.
The future of cloud is better clouds because they use containers, not containers becoming clouds. Cloud computing means that we provide platform and development services as a service, and I really believe that the cloud providers should be laser-focused on that aspect.
Although containers are certainly part of the mix -- and a great enabling technology -- they are simply a path to building better, more stable, and more scalable applications, and not much more. Don't make the mistake of trying to view the cloud as a container-only entity.