2012-03-24 2 views
3

Ich entwickle eine Web-App, die eine Regressionsanalyse von Benutzerdaten durchführt.Optimales Hosting für eine Statistical Analysis Rails App

auf dem Backend, RoR wird von der Anwendungslogik kümmert, und alle statistische Analyse wird durch R gemacht (da Ruby-arme stat Pakete hat).

Vorausgesetzt, dass R und RoR sind single-threaded, und dass die App wird voraussichtlich von mehreren Benutzern gleichzeitig verwendet werden - ich brauche Ihren Rat zur optimalen Konfiguration.

Beispiel: Soll ich die R- und RoR-Maschinen auf separaten Instanzen ausführen und RoR über REST mit R kommunizieren? beide auf demselben Rechner laufen, der geclustert werden kann? Verwenden Sie Revolution Analytics?

Was wäre eine gute Hosting-Konfiguration, um die Skalierbarkeit meiner App zu ermöglichen?

Antwort

0

Sie einen Proxy mehrere Webserver zu kommunizieren schaffen könnte, und wiederum jede dieser Web-Servern kommuniziert über einen Proxy auf mehrere R_servers. Um die Auslastung der Proxyserver auszugleichen, können Sie sich die Upstream-Anweisungen von Nginx ansehen.

Das folgende Diagramm zeigt 3 Webserver (die genaue Klone voneinander sind), und 3 R_servers (die genaue Klone voneinander sind). Verwenden Sie jedoch so viele, wie Sie benötigen, da es einfach ist, die Webserver oder R_servers hinzuzufügen oder zu entfernen, um horizontal zu skalieren.

 webserver1   R_server1 
    /   \  /
proxy - webserver2 - proxy - R_server2 
     \   /  \ 
     webserver3   R_server3 
0

Betrachten Sie Rserve, die, wenn sie auf Linux gehostet wird, eine neue Instanz bei jeder Verbindung abzweigt.

Anschluss ist über das Netzwerk, und es gibt Ruby-Clients zur Verfügung as indicated by a Google search