
Desenvolvi um aplicativo usando AngularJS + NodeJS (junto com MariaDB, Redis e Socket.io para notificações em tempo real) e o implantei em um único nó Linode. Agora gostaria de organizar a arquitetura de forma que possa dimensionar facilmente o aplicativo em caso de aumento de tráfego no futuro.
Então minha ideia é preparar tudo da seguinte forma:
- 1 Servidor Linode LoadBalancer que será o ponto principal e redirecionará as solicitações vindas dos usuários
- 1 servidor de nó Linode onde irei instalar o Nginx que, atuando como proxy reverso, redireciona para o servidor NodeJS no mesmo nó
- 1 servidor de nó Linode para servidor MariaDB e Redis
então, quando preciso escalar, adiciono um novo nó com Nginx + NodeJS. Para MariaDB + Redis eu definiria o clustering para ambos (eu uso Redis para a sessão e MariaDB para os dados).
Agora minhas dúvidas são as seguintes:
qual seria a arquitetura adequada para o aplicativo?
onde devo colocar o aplicativo AngularJS, no LoadBalancer ou em cada nó?
preciso que o nginx atue como proxy reverso em cada nó?
Obrigado!