What’s hot in today’s cloud computing world? Containers are fast becoming a viable alternative to virtualization for the right use cases. But to understand why containers can be a better option, we need to first understand their origins.
In basic terms, containers are application-centric environments that help isolate and run workloads far more efficiently than the traditional hypervisor technology found in commodity cloud Infrastructure as a Service. Modern operating systems (Linux, Windows, etc.) are made up of two basic parts: kernel space and user space. As its name implies, Kernel space is home to the operating system kernel, or the low level instructions that boot the machine, control hardware, provide subsystems (e.g., networking, storage, etc.), and schedule tasks. Tasks (processes, threads, etc.) run in user space, which is home to applications and services. Different operating systems have different levels of modularity and functional “splits” between kernel space and user space, but most architectures are conceptually the same. While hypervisors run virtual machines that make up both spaces, containers encapsulate just the user space, greatly reducing complexity and redundancy. The immediate benefit is higher performance and less “bloat”, extremely important to the economics of cloud computing. The popularity of containers is a direct result of the realization that hypervisor-based technologies are expensive to host and manage for many types of applications.