Howto load balance eClinicalWorks in high availability

Overview

eClinicalWorks is a leader in ambulatory clinical solutions, whose intent is to get rid of paper and digitize the communication and workflow between a physician’s office and the rest of healthcare process: from the doctor, to the pharmacy, to the lab and to the doctors supply chain. It provides a web application to extend the use of electronic health records beyond practice walls and creates community-wide records. It’s widely used in United States and they’re established in more than 24 countries.

This guide describes the optimal configuration of eClinicalWorks application with Zen Load Balancer in order to provide scalability, high availability, advanced health checks for monitoring and enhanced security of this application with sensible data.

Requirements

1 HTTP farm, named eclinical as an example.
Cookie insertion enabled with the Cookie Name set to eClinical_Cookie.
Least Response algorithm for a better load sharing between backends.
At least 2 real servers or backends with eClincalWorks instances.
FarmGuardian configuration for advanced health checks.
A SSL certificate in PEM format to configure HTTPS listener (from a trusted CA or self signed), if SSL Offload will be enabled.

Basic Load Balancing Configuration

Create a HTTP Farm

Go to Manage >> Farm and press the button Add new Farm.

During the farm creation, configure the farm as shown in the picture below where the Virtual IP will be the IP Address in the load balancer and Virtual Port the port where the application will be delivered. Press Save.

eClinical HTTP Farm creation

Edit HTTP Farm Global Parameters

Edit the HTTP Farm Global Parameters as shown below, clicking in the Edit Farm Button. If more than 600 concurrent users are estimated, you can increase the value of Number of working threads as needed (this option will be dynamically configured in future releases).

eClinical HTTP Global HTTP Parameters

Add a new HTTP Service

Create a new HTTP service, named servers as an example, within the eclinical farm created before.

In order to do that, please go to the section Add Service below to the Global Farm Parameters section, introduce the selected name for the service (servers in our example) and press Add.

Select Redirect Type as Default and enable the Least Response algorithm in order to improve the sharing among the backends servers. Then, enable the Cookie insertion option with the Cookie Name set to eClinical_Cookie where Domain field is your application domain (eclinical.app.com in our example if our users will enter through http://eclinical.app.com) and Path field set to / in order to enable the cookie for the whole application. The TTL could be set to 0 and no persistence enabled.

Finally, add the list of the backends IP addresses and port as it’s shown in the picture below.

eClinical HTTP service

Restart the HTTP service in order to apply the changes and it’s done!

Advanced Health Checks Configuration

The basic HTTP farm configuration provides an inherent TCP health check during the connection between Zen Load Balancer and the real servers. In order to ensure the correct application behavior it’s required to configure an advanced health check with FarmGuardian like it’s shown in the picture below.

eClinical HealthChecks FG

In order to achieve that, go to the FarmGuardian Configuration section in the service created before. Then, enable the check Use FarmGuardian to check Backends Servers , configure the Check interval and the Command to Check as it’s shown below (please, remain the HOST and PORT tokens without change).

check_http -c 15 -w 15 -t 15 -I HOST -e "401 Unauthorized" -p PORT

SSL Offload configuration

As eClinicalWorks manages sensible data, it’s recommendable to setup a SSL Offload configuration in the load balancer. This way, the client connects through a HTTPS secure channel to the virtual service in the load balancer, and then the load balancer connects in plain HTTP to the backends.

It’s quite easy to setup a HTTPS service for eClinicalWorks just change the Farm Listener to HTTPS , Virtual Port to 443 (standard for HTTPS protocol), ensure to have the HIGH security ciphers configured and finally, install your self signed or trusted certificate acquired (the default zen certificate is available in order to test your HTTPS setup, but it’s mandatory to change it as soon as possible). In order to setup your certificate refer to this article for more information.

eClinical SSL Offload

High Availability Configuration

The high availability configuration allows to setup 2 load balancer nodes to create high availability through redundancy. Once your first node is configured, just create a Virtual IP Address in the load balancer, change it in your new eClinicalWorks farm and create the cluster as described in this article. The full configuration will be replicated to the second node automatically, so it’s not needed to reconfigure your setup.

References

https://www.eclinicalworks.com/

Share on:

Was this article helpful?

Related Articles