Configure load balancing and proxies
A load balancer is needed in front of a server group in order to direct traffic to individual servers in a way that maximizes efficiency.
Here are some of the best practices and guidelines for a typical implementation with ThoughtSpot. Your experience may differ depending on your environment and preference.
The following shows a network architectural diagram which includes a load balancer for ThoughtSpot nodes.
The load balancer is an appliance in your infrastructure that routes traffic automatically to nodes to provide failover. You can also place a load balancer or proxy in front of the ThoughtSpot appliance if you’d like external network users to access the system.
The best way to load balance across all ThoughtSpot nodes in a cluster is to map one domain name (FQDN) to all the IPs in the cluster in a round robin fashion.
For example, if you want to use a DNS server based load balancing, then you can define multiple "A" resource records (RR) for the same name.
Below is an example of how you could set that up
thoughtspot.customer.com IN A 184.108.40.206 thoughtspot.customer.com IN A 220.127.116.11 thoughtspot.customer.com IN A 18.104.22.168 thoughtspot.customer.com IN A 22.214.171.124
The example indicates that IP addresses for the domain thoughtspot.customer.com are 126.96.36.199, 188.8.131.52, 184.108.40.206, and 220.127.116.11.
Session Affinity refers to directing requests to the same application server for the time it takes to complete a task.
In order for session affinity to work on ThoughtSpot, HTTPS (an SSL certificate) has to be installed on the load balancer level. If it is installed outside of the load balancer, session affinity may not occur and the ThoughtSpot system will fail.
You can access ThoughtSpot through any standard web proxy server. Web proxies are fairly universal regardless of the application they are proxying. However, ThoughtSpot doesn’t use any new protocols, like SPDY or HTTP/2, which may have a dependency on the proxy. Instead, ThoughtSpot is commonly placed behind a web HTTP/HTTPS proxy.
Additionally, the proxy can round robin across multiple nodes in the ThoughtSpot backend. You can essentially use the web proxy as a load balancer. Therefore, your session will carry over if the proxy round robins between the ThoughtSpot backends as long as the URL doesn’t change.