Have a long enough career in the IT industry and you’ll eventually realize that everything old is new again. Concepts that were invented decades ago often reemerge in a new and improved form to become the next hot technology. Like VMs a dozen years ago, containers are the latest application packaging and isolation technology to captivate and reshape the industry. Application containerization or sandboxing is an old idea, first implemented almost 40 years ago in AT&T Unix via the chroot command. While primitive by today’s standards, chroot provided process isolation by changing the root context and execution environment of an application to a particular directory tree and prohibiting access to the remaining file system. Here, we detail the containers basics and provide an update on the technology.
The Container Basics:
Chrooted applications running on the same system share an OS; however, they can’t interact with each other or the OS itself outside of user mode system or networking calls. Along the way, other forms of isolation were created, including FreeBSD Jails, Solaris Zones, cgroups etc. Today’s container technology is a direct evolution of these early Unix capabilities that, while vastly more capable, is conceptually similar by virtue of containers sharing an OS, but having wholly isolated processes, (virtual) networks and storage environments.
Arguably, Google is most responsible for bringing containerization into the cloud era as a viable alternative to bare metal (type 1) hypervisors through its development of generic process containers on Linux that allowed applications to share system resources while maintaining process isolation and resource control. The technology eventually evolved and was popularized by the Docker container runtime engine and packaging format that became the basis for the Open Container Initiative (OCI) and its runtime and image standards.
Google is also the genesis for another foundational container technology, the Kubernetes orchestration engine that is an evolution of the Borg cluster manager Google developed to schedule thousands of applications across its massive infrastructure. Like Docker, Kubernetes is the basis for another industry standardization effort, the Cloud Native Computing Foundation (CNCF), which has become the nonpartisan home for Kubernetes and other cloud and vendor-agnostic open source projects.
Containers Basics: Standardization
Container standardization efforts illustrate a maturing technology that has become a foundational element of enterprise infrastructure and application deployment strategies. A recent state of the cloud survey found that more than half of the enterprise respondents used Docker or related container products with nearly as many using AWS’s ECS container service. Indeed, about 80 percent of respondents plan to use or have already deployed on-premise and in-cloud containers with nearly as many embracing Kubernetes, illustrating more extensive container expertise and usage. Further evidence that enterprise container adoption is well past the ‘kicking the tires’, evaluate-and-test stage, another survey of existing container users found that the average density on container hosts has increased by 50 percent and that one-quarter of the applications deployed in containers are databases.
The fact that every major provider of enterprise infrastructure software, including Microsoft, VMware, Red Hat, and Nutanix have incorporated containers into their core products and each of the major cloud services, AWS, Azure, Google Cloud and IBM offer and are continually enhancing container services, demonstrates that containerization has become an invaluable component of enterprise infrastructure. Indeed, by 2020, IDC estimates that containers will host five times as many workloads as VMs, even as the number of VM physical servers continues to dwarf those in container clusters. Such scale and efficiency are clues to the reasons behind the rise of containerization as businesses look for more flexible and cost-effective means of deploying next-generation applications.