We are building our new Spotfire environment in AWS Cloud. We would like to introduce Autoscaling into Spotfire so we can replace our Spotfire Servers and Nodes on the fly as needed. You can easily deploy new Nodes via the autotrust feature but you cannot replace and connect to servers this easily.
First of all, you cannot enter a Load Balancer internally since the Nodes will report a name mismatch since the certificate issued does not come from the Load Balancer but from the Spotfire Server.
Secondly, you have to enter all Server names into the nodemanager.properties. If you add more Servers or remove some you have to change the properties file to enter them as known servers and restart all nodes. This is not usable in an always-on environment.
We would require a better handling of server trust. You should be able to add Subject Alternate Names, so the certificates are accespted when issued from servers instead of a load balancer and you should be able to automatically have a "discovery" that updates trusted servers on the fly.
Hi Morten,
thank you for your elaborate reply!
My issue is not that I would like to have a load balancer that contains all nodes, I would like to have a load balancer that contains all servers. In an environment that does autoscaling (Adding and removing servers when the performance is needed, replacing servers on new relase instead of updating etc) you never know which Hostnames are currently in place. Today there might be "Server A" but it gets replaced by "Server B" tomorrow. So which hostnames do you put into your Nodemanager installation to get them to connect to the cluster initially?
That´s why supporting a load balancer that is automatically updated once the Spotfire Server infrastructure changes would be best so I can just tell the nodes to register to that load balancer and always find a server behind it to register itself.
Jens
Hi Jens,
I think there might be some misunderstandings involved here.
You should never put a load balancer between the Spotfire server and the Node manager. The Spotfire server has a build in load balancer, and will handle routing of traffic to all connected node managers. It doesn't matter if you have 1 or multiple Node managers, the Spotfire server(s) makes sure to route traffic to all connected node managers.
If the default routing/load balancing from the Spotfire servers to the node managers are not enough, then you could then use Routing rules and resource pools to route user, groups and/or files to specific node managers.
You do not need to manually edit the nodemager.properties file when adding or removing Spotfire servers from your cluster. The "nodemanager.supervisor.known" is updated while the node manager is running. So if you add or remove a Spotfire server from the cluster, the setting will be updated and the Node manager and underlying services will start using the new Spotfire server, or stop using it if it was removed.
Please let me know if I have understood your request correctly, and if my information helps you solve the issue you're having with using the Spotfire server.