QueueMetrics High Availability


Modern systems are transitioning to High Availability Systems more and more often, because nowadays the reliability of a system is a must.

When QueueMetrics is running on a High Availability System, you can guarantee that your users will be able to access QueueMetrics, even if a physical server hosting QueueMetrics is down for whatever reason. Take for example a heavily loaded call center, with hundreds of agents, all using QueueMetrics. An interruption of the service can be disastrous;the most important reason is that your agents cannot access their queues and your supervisors cannot run reports. This is where High Availability comes in handy. If your system is protected against downtime, you never need to face this risk.

What is included with the purchase of "QueueMetrics High Availability" ?

When you purchase "QueueMetrics High Availability" you are buying the setup of QueueMetrics in High Availability mode, performed by one of our Engineers.

How does this type of 'High Availability' work ?

Our 'High Availability' mode takes advantage of database replication in addition to a round-robin DNS failover. Each node runs:

  • a web server (nginx)
  • an application server (Apache Tomcat)
  • a database

The web server of the node 'A' tries first to pass the request to its application server. In case of failure it will use the application server of node 'B' The same happens for node 'B' that first tries its own application server and then the application server of the node 'A'. The databases maintain their consistency by using a master-master database replica. The configuration.properties file is synchronized over ssh according to the newest.

What happens in case of failures ?

In cases of failure of the webserver of the node 'A' your traffic will go through the webserver of the node 'B'. This comes for free from the round-robin DNS failover. The same happens if the failure happens on the webserver of node 'B'. In cases of failure of the application server of the node 'A' your traffic will go through the application server of the node 'B'. This is managed by the webserver. The same happens if the failure happens on the application server of node 'B'. In cases of failure of the database of the node 'A' your traffic will go through the database of the node 'B'. This is managed directly by the application server.

Is there a diagram that explains how it works in practice ?

High Availability mode for QueueMetrics.

Can I purchase "QueueMetrics High Availability" regardless of requirements ?

No. Before you purchase "QueueMetrics High Availability" make sure that you can satisfy the following requirements that must be setup before we proceed with the installation:

  • Two CentOS 7 Machines, freshly installed and never used before for anything else.
  • The machines must have only one partition (without LVM) with an EXT4 filesystem (no additional partitions like boot, swap).
  • The machines' Filesystem must be ext4 (no lvm)
  • Direct SSH Access with root access (can be on any port, not necessarily port 22).
  • An SSH key provided by us must be installed, it can be deleted once the installation is complete.
  • The internal IP Address of the two machines must be provided to us.
  • The two machines must be able to reach each other through the network they reside on.
  • A Fully Qualified Domain Name (FQDN), that will be used to access QueueMetrics (queuemetrics.mycompany.com).
  • The provided FQDN must point to the two internal IP Addresses, if there are no internal addresses, public addresses of the machines work as well.
  • A Fully Qualified Domain Name for each IP Address (node-a.mycompany.com - node-b.mycompany.com).
  • The network interface of the machines is expected to be eth0.
  • A valid SSL Certificate, and its private key. Alternatively we will generate a valid Self Signed Certificate for secure access.

Why do you need all the above requirements?

We are using CentOS 7 because with those specific requirements we performed multiple tests on it and are sure that it performs reliably, and in case of issue we would like to replicate the problem in the same environment. While the filesystem and the partition layout are irrelevant, in case of issues we would like to exclude anything regarding the filesystem and the layout from our investigation. We use a piece software that automates the setup of the HA environment and this software needs SSH access. The internal IP addresses are needed because they will be included in the configuration files. A Fully Qualified Domain Name is needed to use the DNS round robin failover. The network interface name is used in the configuration file and the SSL certificate is needed because the traffic is supposed to go across the nodes and will be encrypted.

Are both the nodes active?

Yes they are both active.

Do I need to purchase anything related to Pacemaker or Drbd or similar solutions?

No, we are using master-master database replica.

Is there anything else I need to buy together with the "QueueMetrics High Availability" setup?

You need to buy (or have):

  • the main QueueMetrics license
  • its hot backup license
  • a Remote Installation
  • QueueMetrics High Availability (setup)

My company is not using CentOS 7, may we install "QueueMetrics High Availability" on another OS?

This is not possible atm.

Are machines on Amazon Web Services or Google Cloud suitable for "QueueMetrics High Availability"?

All machines that meet the above requirements are suitable. They can be virtual machines or dedicated bare-metal servers.

Can we use Amazon RDS for database backend?

No, only local database is supported.

Since this is an internal network, can we generate the SSL certificate instead of purchasing a new one? Can we use Letsencrypt/Certbot?

Yes, but you need to be sure that you can install this certificate on your clients and on your PBX. Letsencrypt/certbot is not suitable for this case.

Can I disable the SSH login via password ?

Yes, you can.

Can I enable the SSH traffic only for your public IP?

Yes you can but we do not have a static IP, so please ask for the address right before the installation is performed.

Do I need an internal DNS?

No, that will not be necessary.

I can't provide root access, is there an alternative?

Yes, please setup a user called 'qm', assign them sudo rights and provide us with the appropriate password.

Will the installation be performed through a Remote Desktop software ?

No, the installation will not be done manually. We will use a proprietary piece of software that will operate through the SSH connection; for this reason we can't run the installation through your desktop client.

I already have QueueMetrics in production. Will the High Availability cause the interruption of the service? For how much time ?

Yes, because you will need to stop the service, perform a database backup and give it to us. The time taken will depend on how much data you have and how fast are your machines.

How much time will the setup take? How can I be sure that the High Availability System is working as intended ?

The setup will take ~2 hours. After the setup is performed, through a remote desktop software, we will shutdown both nodes with you, one at a time, and demonstrate that QueueMetrics is working as expected.

Can I put the same virtual machines on the same hypervisor ?

Speaking from a technical point of view, you can but it creates a point of failure, so we strongly encourage you to use more than one hypervisor.

Can you give me an example about the record DNS setup ?

For machines with private IP:
node-a with IP 192.168.1.5
node-b with IP 192.168.1.6

node-a.mycompany.com should resolve 192.168.1.5
node-b.mycompany.com should resolve 192.168.1.6
queuemetrics.mycompany.com should resolve 192.168.1.5 and 192.168.1.6

For machines with public IP:
node-a with IP 1.2.3.4
node-b with IP 5.6.7.8

node-a.mycompany.com should resolve 1.2.3.4
node-b.mycompany.com should resolve 5.6.7.8
queuemetrics.mycompany.com should resolve 1.2.3.4 and 5.6.7.8