Skip to main content

Minimal Technical Requirements and Architecture

Scalability Guide

This guide is for users who are utilizing virtual machines in their Hubble deployment, whether it is an on-premise or cloud deployment. The purpose of this guide is to provide guidelines for hardware and virtual machine configurations, and to illustrate how many users an organization could accommodate per server, based on the types of users, data, and frequency of change in their environment. The data below is sourced from a combination of application recommendations from our independent software vendors (ISVs), along with customer data from actual deployments. This is not an application scalability guide.

This guide is therefore best used as a starting point for your planning - as with any deployment, your usage will depend on the variables of your own environment.

Hubble Application Server Configuration

Table 1: Application Server Guidelines

VIRTUAL MACHINE SETTINGS MINIMUM RECOMMENDED ADVANCED
Memory 8 GB 16 GB 32 GB
vCPUs 4 cores 8 cores 16 cores
Disk Space 1

OS - 20 GB

Application - 50 GB

Data 2 - 100 GB

OS - 20 GB

Application - 50 GB

Data 2 - 150 GB

OS - 20 GB

Application - 50 GB

Data 2 - 300 GB+

Virtualization Technology Optional (customer supplied; VMWare, HyperV, etc)
Operating System 3 64-bit Linux distribution that supports the required version of Docker (customer supplied), Version 4.0 or higher of the Linux kernel, or RHEL or CentOS using version 3.10.0-514 of the kernel or higher.

Software Dependencies

Needed 4

  • Docker CE or EE 17.06 to 18.06.1
  • Docker Compose - 1.13.0 specifically
  • Device Mapper dependencies:
    • RHEL / CentOS: device-mapper-persistent-data, lvm2, and all their dependencies
    • Ubuntu / Debian: thin-provisioning-tools, lvm2, and all their dependencies

1 Each of the mentioned storage needs will require their own separate drive/partition (i.e. you will not be able to combine the OS and Application parts in a single 70 GB partition).

2The Data drive will need to be formatted with the ext4 filesystem and be auto-mounted to the /mnt/ data/ folder. We also HIGHLY RECOMMEND configuring an NFS mount upon /mnt/data/backups to prevent losing data in an event of a disaster with App Server. For more details, please see Prerequisites in the Hubble Application Server Installation section of this guide.

3 We recommend using one of the following Linux distributions:

  • Ubuntu: Versions 16.04.4 LTS to 22.04.2 LTS
  • CentOS: Version 8
  • RHEL: Versions 7.5 to 9.2

4 You will need to install the exact version of Docker Compose mentioned here - higher versions are not supported. See https://docs.docker.com/compose/install/. for instructions. You can install newer versions of Docker through:

Installing Docker on Systems with RHEL 8 Servers

Steps to install docker on systems with RHEL 8 servers:

  1. sudo dnf config-manager --add-repo=https://download.docker.com/linux/ centos/docker-ce.repo
  2. sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
  3. sudo dnf install docker-ce
  4. sudo systemctl enable --now docker
  5. curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-com
  6. sudo mv docker-compose /usr/local/bin && sudo chmod +x /usr/local/bin/ docker-compose
  7. sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Troubleshooting Docker CE Installation on CentOS

If you see the following error during Docker CE installation on CentOS:

Error: docker-ce-selinux conflicts with 2:container-selinux-2.12- 2.gite7096ce.el7.noarch

To resolve this, you should uninstall docker-engine-selinux:

sudo yum erase docker-engine-selinux

Then install the newer container-selinux package (version 2.42 was appropriate at time of writing but you may need to update this):

sudo yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages/ container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm

And then try using yum to install docker-ce again.

Hubble Web Server

A load balancer is included in the Application Server, which can distribute user requests across multiple web servers. Depending on usage profile, we recommend a maximum loading of about 50 users per web server.

Table 2: Web Server (IIS) Guidelines

ASPECT

MINIMUM

RECOMMENDED

ADVANCED

Instances

1

1-2

3+

Memory

16 GB

16 GB

32 GB

vCPUs

4 cores

8 cores

16 cores

Disk Space 100 GB free on C: drive1
Virtualization Technology Optional (customer supplied; VMWare, HyperV, etc)
OS Windows Server 2016, 2019, and 2022 with Internet Information Services (IIS) (customer supplied)

1 The Hubble software will only install on the C: drive, not another drive.

Networking Requirements

  • Internet access during deployment, installation and configuration on all nodes.
  • See Network Diagram.

Storage Requirements (Accelerator)

  • Specific storage requirements will vary depending upon source ERP data, desired replication and analytics functions.
  • For guidance, the compression ratio between source ERP and Vector is 4:3.
  • Future disk expansion will require assistance from the Hubble Infrastructure Team.

Clock Synchronization

Hubble's servers communicate with each other and require that their clocks are sufficiently synchronized. If there is more than 5 minutes difference between their clocks, a timeout error will be logged and users will not be able to login.

Please ensure that each machine used for Hubble is maintained with the correct time by using the corresponding VMWare option or operating system settings/services.

Performance Testing

Below is a list of important things to remember during your own testing:

  1. Define “acceptable” user experience: Defining user experience (UX) requires careful examination of user and application interaction. This can be obvious, like the rendering time for a workspace to appear. It can also be less obvious, like the ability to smoothly scroll down a page or the “snappy” reaction for a menu to appear after a right click. Ask users to report metrics, and to judge specific activities or functions using finite scales (e.g. 1-5, 5 being best), to avoid feedback that is too generic.
  2. Compare real world workloads: In virtual environments, time-slicing of resources allows users to get the same level of performance even when sharing resources. This is due to user “think time” which includes any time the user is not actually interacting with the application, or when not using the application or even sitting at their workstation. Add up all the time away from the application (meetings, lunch, out of office, etc.) and one could expect to get even more benefits from shared resources. These benefits equate to more resources for the user’s session and typically a more responsive application, thus a better perceived experience by the end user, as opposed to peak workload benchmarks with inhuman-like uninterrupted work.
  3. Test with real users: It is important to actually look at the application running be sure that the experience is enjoyable for users. That being said, it’s also important to maintain perspective, especially if you are not a regular user of the applications. While a data center administrator deploying Hubble in a virtual environment might view a testing desktop and think the experience is slow or sluggish, while a user who works with it daily might find it normal. The feedback from an actual end user using the application in a virtual desktop is the ultimate test of success. Add in the point above about real world workloads and you see why real users are the most accurate means of testing.

Architecture Diagram

Note: External Access

We require external (Internet) access, during deployment only:

  • In the Hubble Application Server, we need internet access for downloading containers from Docker Hub. You can test this by running the “docker run hello-world” command from a shell with root privileges.

  • In the Hubble Web Server, we need internet access for downloading updates from Microsoft.

  • This access can be provided through a proxy if your organization requires one for internet connectivity.

The following diagram illustrates the network architecture of an On-premise deployment:

Port Explanations

The ports that are used to access the Hubble Application Server:

  • TCP 22: SSH
  • TCP 443: HAProxy (if using HTTPS)
  • TCP 592: HAProxy (if using HTTPS)
  • TCP 3000: Configuration UI
  • TCP 5000: Repository Backup Service
  • TCP 5432: PostgreSQL
  • TCP 5433: Repository Backup Service
  • TCP 5580: Wkhtmltopdf (PDF generation)
  • TCP 5672: RabbitMQ
  • TCP 6379: Redis
  • TCP 15672: RabbitMQ Admin

The ports that are used to access the Hubble Web Server:

  • TCP 80: IIS
  • TCP 3389: RDP

Note: You can also configure SSO on HTTPS using Port 443 instead of 7001 through Load Balancer. Similarly, configuring Reporting on HTTPS using Port 443 instead of 592 through Load Balancer with redirect rules is also possible.

Hubble Tools

As part of Hubble installation, some third party tools are installed. Below is a list of the services Hubble uses, with the corresponding vendors:

HUBBLE SERVICE THIRD-PARTY TOOL
Hubble Queues RabbitMQ
Hubble Cache Redis
Hubble Load Balancer HAProxy
Hubble Repository PostgreSQL
Hubble Storage Scality S3 Server
Hubble Web PDF Service

Chromium

v88.0.4292.0

Configuration

Default Configurations

  • Administrator password: password

Hubble Configuration Page

There are a number of configuration details that are required when deploying Hubble.

These are entered into the configuration web page, and should be known before deployment.

SECTION FIELD DESCRIPTION DEFAULT MANDATORY
General Customer Name Your company name.   Yes
Network Hubble Application Server IP Address The IP address for the Hubble Application Server.   Yes

Network

Hubble Web Server IP Address(es) / Hostname(s)

List of Web Server IP's and/or hostnames (Example: "192.168.0.101,webserver1.mycompany. lan")

 

Yes

Hubble

Web URL

DNS name for users to access Hubble web application (Example: hubble.mycompany.lan). This must be mapped to the IP address of the Hubble Applicationserver, not the Web server, because that is where the load balancer is. If the domain name hasn't been determined yet, enter the IP address of the Application server.

 

Yes

Hubble

Web Protocol

The protocol to be used for Hubble. HTTPS is required, you will need to generate and install a certificate that matches the Web URL provided.

See HTTPS setup instructions for details.

HTTPS

Yes

Hubble

SMTP Host

Mail server host.

This will be used to send email notifications from Hubble.

 

Yes

Hubble

SMTP Port

Mail server port. Normally 25 or 587.

25

Yes

Hubble SMTP SSL Enabled Indicates if SSL is enabled on the mail server. true Yes

Hubble

SMTP Username

Mail server username.

 

No

Hubble

SMTP Password

Mail server password.

 

No

Hubble

Email From

Emails will be sent by Hubble using this email address.

 

Yes

Hubble

Email BCC

Send a copy of all emails sent by Hubble via BCC to the specified address.

 

No

Hubble

Company Logo URL

This is the logo URL to be used on PDF prints and on the Hub.

This URL needs to be accessible from the Hubble Environment machines.

 

No

Hubble

PDF Disclosure Text

This is the text that appears at the bottom of all PDF prints, for example "Disclosures: Private and Confidential.". Backslashes (\), forward slashes (/) and double quotes (") are not allowed

 

No

Advanced

Backup Schedule

When to perform backups of the repository, where users' documents are stored.

NOTE: The time specified here must match the one defined in the Hubble Application Server (e.g. timezone, DST)

Everyday at 00:00

Yes