Unlike running multiple user applications on a single, multitasking operating system (OS), workload consolidation creates separate, isolated environments, each with its own OS, on a single, powerful platform. Two key technologies that enable workload consolidation are virtualization and containerization.
As shown in the following figure, virtualization creates isolated environments called Virtual Machines (VMs) that access the underlying hardware through a central layer called a hypervisor. Each VM runs as though it is the only environment on the platform with its OS and virtualized network and storage resources. Containerization creates isolated processes in user space (at the application layer) that share the same kernel and nonvirtualized hardware resources through a central application (for example, Docker). Virtualization and containerization each have their own strengths and applicable use cases.
While containers are gaining traction in IIoT, virtualization is often the method of choice in industrial automation and IT infrastructures, in which complete isolation is often paramount to operations. One of the great benefits of containerization is the isolation of containers; however, as containers are designed to run one command, it is beneficial to launch containers together, using a microservice approach for your application. Tools such as Kubernetes and Docker Compose can be used to automatically manage your containers, ensuring they are always up and running at scale, and also enabling intercontainer networking. Kubernetes takes orchestration one step further by allowing you to easily schedule recurring or one-time jobs.
Transitioning to a modular and container-based platform allows new products to solve several long-standing issues with the traditional monolithic approach. The base platform retains the operating system and the basic building blocks, such as container management tools. All other functions are available through modules. These modules can come from both the hardware vendor and from third parties.
Advantages of application workload consolidation at the edge include:
- Upgradeability
- Minimization of dependencies
- Granular deployment cadence
- Centralized apps
- On-demand scaling