
Ich habe eine Anwendung mit AngularJS + NodeJS (zusammen mit MariaDB, Redis und Socket.io für Echtzeitbenachrichtigungen) entwickelt und sie auf einem einzelnen Linode-Knoten bereitgestellt. Jetzt möchte ich die Architektur so organisieren, dass ich die Anwendung bei künftigem Datenverkehr problemlos skalieren kann.
Meine Idee ist also, alles wie folgt vorzubereiten:
- 1 Linode LoadBalancer-Server, der als Hauptpunkt fungiert und die Anfragen der Benutzer umleitet
- 1 Linode-Knotenserver, auf dem ich Nginx installieren werde, das als Reverse-Proxy fungiert und zum NodeJS-Server im selben Knoten weiterleitet
- 1 Linode-Knotenserver für MariaDB- und Redis-Server
Wenn ich also skalieren muss, füge ich einen neuen Knoten mit Nginx + NodeJS hinzu. Für MariaDB + Redis würde ich das Clustering für beide einrichten (ich verwende Redis für die Sitzung und MariaDB für die Daten).
Nun sind meine Zweifel folgende:
Was wäre die richtige Architektur für die Anwendung?
Wo soll ich die AngularJS-App platzieren, auf dem LoadBalancer oder auf jedem Knoten?
brauche ich Nginx als Reverse-Proxy auf jedem Knoten?
Danke schön!