We are launching a high demand (several hundred simultaneous users) Ruby on Rails application and we are trying to determine the best way to scale. Currently, we have a setup that follows this structure:
HaProxy DDoS Protected VPS -> Three Varnish Cache VPSs ---> One Thin + Sinatra + NGINX server for the actual files
The rails application is very resource intensive, both memory and CPU. I do not have nearly as much experience with Varnish or HAProxy, so I'm not sure which servers should be scaled, and which direction to scale them. I assume that I should scale horizontally (more instances of each server, and just slightly vertically) but I am not sure what industry standard practices are in a case like this. I also need to better understand where the load will fall, so if the Varnish should have more allocated resources (either servers or resources) than the HAProxy instances, for instance.
I appreciate any help with this