Por favor me diga se:
- O Node.js tornará nosso site mais rápido!
- O Node.js consumirá menos recursos do servidor, podemos economizar dinheiro!
- O Node.js nos tornará mais produtivos!
- Node.js significa que podemos compartilhar o código JavaScript do lado do cliente e do servidor.
Para esclarecer, estamos reescrevendo um servidor front-end, que conversará com nosso aplicativo Ruby on Rails existente como uma API. Enquanto isso, refatoraremos nosso aplicativo Ruby on Rails em serviços.
Mais detalhes sobre a arquitetura existente:
- Memcached para cache de parciais HTML
- Redis para sessão e alguns cache de dados estruturados
- Mestre único MySQL , múltiplos escravos
- Há uma tabela grande que aceita muitas gravações (imagine uma pesquisa)
- Caso contrário, principalmente lê.
- MongoDB para alguns metadados
- Ruby on Rails 3.0
- nginx e unicórnio
architecture
ruby-on-rails
node.js
rewrite
user88487
fonte
fonte
Respostas:
A maioria das perguntas que você faz não é respondida sem contexto e é mais ou menos discutível, já que a gerência já fez a sua escolha ... a menos que você esteja perguntando 'devo parar e encontrar um novo emprego diante de todas essas mudanças? ?
Se você for difícil, recomendo que você leia este post sobre o tema: Como sobreviver a uma reescrita de baixo para cima sem perder a sanidade .
Recentemente, iniciei o processo de reescrever um pouco da lógica do servidor no node.js. O principal motivo foi que ele está atualmente escrito em .NET e queremos migrar para longe dos ambientes MS no caminho.
Minhas experiências até agora foram positivas, você terá uma curva de aprendizado inicial com todo o seu não-bloqueio, mas depois que você passar, é realmente divertido codificar .. Eu sei, DIVERTIDO!
Porém, ele tem um lado sombrio: todo homem e seu cachorro que fizeram algum desenvolvimento front-end com JavaScript - e isso seria todo desenvolvedor de front-end, espero - fica um pouco animado quando você menciona que o node.js é 'javascript do lado do servidor 'no entanto, isso não significa que os desenvolvedores de front-end terão a experiência necessária para escrever bons aplicativos do lado do servidor.
Por um lado, você considerou que um erro fatal derrubará todo o aplicativo devido à sua natureza não encadeada, então as apostas são um pouco maiores e você deve verificar e capturar tudo explicitamente.
Para aqueles que fizeram o front e o back - e desfrutam de ambos - não ter que alternar contextos mentais dos idiomas front-end para back-end é um bônus real que, em última análise, aumentará a produtividade de nossa equipe.
fonte
Bem, não acho que reescrever o aplicativo tenha sido uma boa ideia, a menos que tenha um desempenho ruim. Para responder suas perguntas:
Node.js não é mágico. Seu aplicativo tem uma quantidade enorme de usuários, portanto não há como ter certeza de que o tornará mais rápido.
Bem, sim, o Node.js de fato consome menos recursos do servidor. Portanto, não apenas você pode economizar dinheiro em recursos, mas também pode fazer mais com os existentes. Isso ocorre principalmente devido à natureza de thread único do Node.js. Não há sobrecarga de threads adicionais.
Novamente Node.js não é mágico. Dito isto, pode haver alguma verdade nisso. O Node.js possui uma comunidade muito ativa que criou centenas de módulos para todas as tarefas possíveis. Portanto, é bastante provável que a maior parte do trabalho tenha sido feita para você. Você só precisa encaixar as peças.
Teoricamente, sim. Como o Node.js é JavaScript, você pode compartilhar o código entre o cliente e o servidor. Mas não sei exatamente o que será compartilhado. Não escrevi nenhum código reutilizável em um cliente. O que fazemos no servidor geralmente não tem nada a ver com o cliente. Mais importante para mim é a falta de mudança de contexto. Acho mais fácil codificar no cliente e no servidor em um único idioma.
Como o Node.js é de thread único, a menos que seja explicitamente configurado para isso, ele não pode tirar proveito de várias CPUs .
Dê uma olhada nos comentários também. Eles fornecem algumas boas informações sobre o funcionamento do Node.js.
fonte