Operations Guide
Virtualized Environments

UM can be used in virtualized environments. It can be heavy-weight virtualization, as with virtual machines using VMWare or Virtual Box, or it can be lighter-weight containers, as with Docker. Containers can be further enhanced via an orchestration layer, such as Kubernetes or OpenShift.

For the most part, UM does not notice the virtualization. In particular, UM does not currently explicitly integrate with virtualization features. However, we have found that UM performance can be affected by choices made when setting up the virtualization.


Physical Network in a Virtualized Environment  <-

By default, a virtualized environment typically provides a virtual network interface with an IP address that is different than the physical interface provided by the host. The virtualization software then provides a virtual network to interconnect the virtual interfaces and the physical interface.

However, this virtual network adds overhead to the exchange of message, adding latency and reducing throughput.

Most UM users choose to provide the virtualized environments access to the physical interface(s). For example, with virtual machines, the physical server is typically installed with more than one network interface. Then each VM is given exclusive access to one interface. With Docker, it is more common to simply have each container use the host network.


Shared Memory Between Containers  <-

It is possible to use IPC or SMX transports across containers by using the –ipc option.

We do not know of any way to use IPC or SMX across virtual machines on the same physical server.