
He desarrollado una aplicación usando AngularJS + NodeJS (junto con MariaDB, Redis y Socket.io para notificaciones en tiempo real) y la he implementado en un único nodo Linode. Ahora me gustaría organizar la arquitectura de manera que pueda escalar fácilmente la aplicación en caso de que aumente el tráfico en el futuro.
Entonces mi idea es preparar todo de la siguiente manera:
- 1 servidor Linode LoadBalancer que será el punto principal y redirigirá las solicitudes provenientes de los usuarios.
- 1 Servidor de nodo Linode donde instalaré Nginx que, actuando como proxy inverso, redirige al servidor NodeJS en el mismo nodo
- 1 servidor de nodo Linode para servidor MariaDB y Redis
Entonces, cuando necesito escalar, agrego un nuevo nodo con Nginx + NodeJS. Para MariaDB + Redis, configuraría la agrupación para ambos (uso Redis para la sesión y MariaDB para los datos).
Ahora mis dudas son las siguientes:
¿Cuál sería la arquitectura adecuada para la aplicación?
¿Dónde debería colocar la aplicación AngularJS, en LoadBalancer o en cada nodo?
¿Necesito que nginx actúe como proxy inverso en cada nodo?
¡Gracias!