I’ve been giving containers a second thought at least from a concept perspective. One of my more faithful readers Lennie, has been pushing containers for the past year or so. I wrote about how containers will probably never catch on in Windows because one, they have been around at least since Windows 2000 and two, the Windows ecosystem doesn’t have the application portability challenges that exist in Linux.
This may have been short-sighted on my part. I don’t believe Windows containers will take off anytime soon in the enterprise. The value proposition just isn’t there today. However, in the long run Windows containers may be the default mechanism for deploying applications. Not that application developers will choose or even know that they are deploying applications upon containers. Containers will become the default environment because platform as a service (PaaS) will be the default environment for running applications.
Containers and PaaS go hand & hand
PaaS provides a new level of abstraction for building applications. The infrastructure for PaaS environments whether in Public of Private clouds will be lean and efficient. This will be facilitated by abstracted subsystems from networks and storage to compute. This is because abstraction is a fundamental principle of a maturing discipline. Containers are just another level of abstraction. Instead of abstracting the underlying hardware, containers abstract the underlying OS. This eliminates another level of complexity and provides application developers more flexibility for developing applications that don’t rely on a specific OS underlay. Containers help provide a platform for the infrastructure.
Developers don’t care about containers
While the containers provide some independence for application developers. Application developers don’t care about containers. Containers just create an environment that should have been available to application developers from the start. It’s a waste of cycles for developers to identify all of the OS components that should be available from infrastructure to infrastructure. The intelligence of this should be in the infrastructure.
This is in line with my philosophy around the relationship with the infrastructure and application development. The details of the infrastructure should be hidden from the application developer. The API’s to the platform will ultimately dictate where the code for an application is run. It could end up running on a VM, a container or service running on either. Windows containers are part of the future of PaaS but will just be plumbing that’s hidden from the application developer.