Skip to content

0035 Complex Hosts

In today's systems, hardware is managed to get the maximum use out of it. Therefore, the concept of a host is typically virtualized to allow a single computer to be used for many hosts and for multiple computers to collectively support a single host.

The complex hosts handle environments where many nodes are acting together as a cluster, and where virtualized containers (such as Docker) are being used.



A BareMetalComputer describes a connected set of physical hardware. The open metadata types today do not attempt to model hardware in detail but this could be easily added if a contributor with the appropriate expertise was willing to work on it.


A VirtualMachine provides virtualized hardware through a hypervisor that allows a single physical bare metal computer to run multiple virtual machines.


A VirtualContainer provides the services of a host to the software servers deployed on it. When the server makes requests for storage, network access, etc, the VirtualContainer delegates the requests to the equivalent services of the actual host it is deployed on.

VirtualContainers can be hosted on other VirtualContainers, but to actually run they need to ultimately be deployed onto a real physical Host.


DockerContainer provides a specific type for the popular container type called docker .


A HostCluster describes a collection of hosts that together are providing a service. Clusters are often used to provide horizontal scaling of services.

There are two specific types of host clusters defined: in both, the hosts that they manage are often referred to as nodes.

Within the host cluster is typically a special host (node) that is controlling the execution of the other members. This host is modelled with a SoftwareServerPlatform that describes the cluster management platform, and optional SoftwareServer assets. SoftwareCapabilities needed to manage the cluster are linked to these ITInfrastructure using the ServerAssetUse relationship.


HadoopCluster describes a Hadoop cluster that uses multiple bare metal computers/virtual machines to manage big data workloads.


KubernetesCluster describes a Kubernetes cluster that manages containerized applications across multiple bare metal computers/virtual machines.

The containerized applications managed by Kubernetes are represented as VirtualContainers.


The hosts can actually be virtualized through many levels. The HostedHost relationship is used to represent the layers of virtualized hosts.


The host cluster is linked to the hosts it is managing using the HostClusterMember relationship.

Deprecated types
  • DeployedVirtualContainer - use HostedHost, which is more general.
Back to top