Contact usRequest a demo

Unblu cluster components

Unblu uses the Kubernetes cluster orchestration system. Both Kubernetes itself and the OpenShift variant of Kubernetes are supported. Components that require modest resources typically require a single pod, whereas components that require more computing resources can be deployed as multiple replicas of a pod. Some components consist of a fixed number of replicas. Others can be scaled by adding additional replicas as needed.

The Unblu cluster consists of the following components, each deployed in one or more pods:

Unblu Collaboration Server

The Java back-end application that’s the core of the Unblu server functionality. This component typically consists of two or more pods.

You can scale the Collaboration Server by allocating more pods.

Kafka

A data streaming and messaging platform used to synchronize changes across the multiple Unblu Collaboration Server core pods in the cluster. The Kafka component is always composed of three pods. See Kafka.

ZooKeeper

A distributed system service that coordinates tasks in the cluster and provides service discovery. It contains a list of Collaboration Server pods that exist and their addresses, and performs leader election for tasks that should only be done on one server. The list of servers is also used by HAProxy to know which servers it can balance to. The ZooKeeper component is always composed of three pods. See ZooKeeper.

Grafana

Grafana provides visualization of the metrics collected by Prometheus and provides dashboards for analysis. It typically occupies a single pod in the cluster. See Grafana.

Prometheus

A metrics collection and alerting system used to monitor the cluster. Prometheus gathers all the metrics Unblu provides and scrapes the Collaboration Server and all other pod types, such as NGINX, HAProxy, Kafka, Rendering Service and so on, for new data. It typically occupies a single pod in the cluster. See Prometheus.

Alertmanager

Provides alerts to an external observation service to enable tracking of server behavior. It typically occupies a single pod in the cluster.

Kubernetes Ingress (OpenShift Route)

Manages external access to the services in the cluster. Incoming requests from agent or visitor web clients are sent to the NGINX proxy server. Ingress provides TLS termination and host name-based routing.

NGINX and HAProxy

There are two proxy components, each of which typically occupies at least two pods in the cluster.

  • An NGINX proxy server, which is the entrypoint after Ingress and provides caching functionality for static resources like JavaScript and CSS files as well as images.

  • A HAProxy server, which provides load balancing for the Collaboration Servers. HAProxy retrieves the list of available Collaboration Servers from ZooKeeper.