Relating this concept to industrial applications, Fahrion explained that the virtual machine on the hypervisor would not be in a climate-controlled data center but at the network edge in a NEMA enclosure or embedded inside of a piece of packaging equipment where it could be subject to higher temperatures and low air flow. This is where the concept of containers enters the picture.
Containers are a “leaner form of virtualization,” explained Fahrion, because they “share the host operating system rather than replicating the operating system in every container. Therefore, we only need one operating system sitting on the system for each container to hold the application and its dependencies, libraries, and configurations.”
He added that, if there are libraries in the operating system that are shared across containers, it is not necessary to replicate them in each container. “Containers are isolated from each other and from the outside world; we create interconnections over virtual networks within the containers or bridge them out to the outside world.”
Because each container essentially gets its own virtual network and has no access to outside sockets or other containers in a native fashion, Fahrion said that, if this set up is managed correctly, the use of containers can dramatically reduce the number of attack vectors on your network.
Additional Advantages
Beyond the security advantages of containers, Fahrion said another major advantage is resiliency. “When you build one monolithic application that holds your user interface and your databases and everything else, if one part of that compiled application crashes, the whole thing is gone and needs to be restarted,” he said. “In a container, however, we isolate each of those functions from each other. This means that one crashed application doesn't bring down the whole machine. We just need to restart that particular container, which can be set up to happen automatically.”