Containerization is an application or system distribution method that isolates the application or system and its dependencies from the underlying infrastructure. It is an OS-level virtualization that allows users to deploy and run distributed applications or systems in containers without launching an entire virtual machine for each app. Application containers include all of the runtime components – such as configuration files, binaries and libraries – needed to run the app. Multiple containers can run on a single host and access the same OS kernel via APIs. System containers, also called infrastructure containers, include the host operating system, application libraries and execution code. System containers can host application containers. Containers work on bare-metal systems, cloud instances and virtual machines, across Linux and some Windows and Mac OSes. A host machine could have multiple OSes supporting multiple containers – all sharing the same physical resources.
Application containerization is like a lightweight alternative to full machine virtualization. It involves encapsulating an application in a container with its own operating environment so the application can run on any physical or virtual machine without dependency worries. Each container operates independently of others and uses minimal resources from the host OS. Containers create a safe space for app code to consume host resources without depending on (or conflicting with) other applications using the same OS. Application containers consume fewer resources than virtual machines because containers share resources without a full operating system under each app. Containers can scale up microservices to meet rising demand for an application component and distribute the load.
Enterprises use containerization to save development time, speed application deployment, optimize existing resources and improve IT flexibility. Containerization allows applications to run reliably and predictably when moved from one computing environment to another, increasing portability. Compared to traditional virtualization and physical application hosting, containerization increases IT efficiency for memory, CPU and storage. Without the overhead required by VMs, many more application containers can be supported on the same infrastructure. Cloud providers offer Containers-as-a-Service (CaaS) for users to manage and deploy containers, Linux applications and clusters through container-based virtualization. SUSE CaaS Platform is an enterprise-class container management solution that enables IT and DevOps professionals to manage and scale container-based applications and services for private or public clouds.