Node.js - Devo adotar na minha empresa?

2.194 visualizações

Publicada em

Apresenta o Node.js e as vantagens e desvantagens da sua adoção.

Publicada em: Software
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.194
No SlideShare
0
A partir de incorporações
0
Número de incorporações
225
Ações
Compartilhamentos
0
Downloads
24
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Node.js - Devo adotar na minha empresa?

  1. 1. node.js JavaScript no servidor Pablo D. Souza Santos Rectius - Tecnologia e Informação
  2. 2. Apresentação O node.js é um interpretador de código JavaScript que funciona no lado servidor. Seu objetivo é ajudar programadores na criação de aplicações de alta escalabilidade (como um servidor web), com códigos capazes de manipular dezenas de milhares de conexões simultâneas, numa única máquina física. O node.js é baseado no interpretador Google V8 JavaScript Engine (a mesma tecnologia do Google Chrome). Foi criado por Ryan Dahl em 2009, e seu desenvolvimento é mantido pela empresa Joyent.
  3. 3. O que é node.js "O objetivo do Node é permitir uma maneira simples de desenvolver programas de rede que precisem escalar." - Ambiente de execução e bibliotecas para rodar JavaScript, independente de qualquer navegador. - Open Source e Multiplataforma: Linux, Windows, Mac, etc. - É um framework para aplicações de rede de alta performance, otimizado para ambientes com concorrência. - É uma ferramenta de linha de comando. - Foi desenvolvido 40% em JS e 60% em C++. - O desenvolvimento com Node é feito com JavaScript, mas não da mesma forma como fazemos no lado cliente.
  4. 4. Arquitetura do node.js - Node.js opera em single-thread e usa o modelo de I/O não bloqueante e baseado em eventos. - Cliente envia uma requisição HTTP para o servidor node.JS. - O loop de eventos da thread principal registra um callback, encaminha o trabalho para um pool de threads e imediatamente retorna para escutar a próxima conexão. - As threads do pool executam as tarefas de longa duração de forma assíncrona e paralelizada. Ao finalizar uma tarefa, a resposta é enviada para a thread principal via callback. - O loop de eventos retorna o resultado para o cliente.
  5. 5. Como escalar com node.js - Escalando verticalmente - Escalando horizontalmente - Escalando com proxy reverso Estratégias
  6. 6. Quando utilizar o node.js - Se você precisa desenvolver uma API REST. - Se você precisa criar serviços baseados em real-time. - Se você precisa gerenciar um alto nível de concorrência com baixa utilização de CPU. - Se sua equipe tem facilidade com desenvolvimento JavaScript, porque eles poderão escrever o lado cliente e o lado servidor com a mesma linguagem. Testes de performance: https://code.google.com/p/node-js-vs- apache-php-benchmark/wiki/Tests
  7. 7. Onde utilizar o node.js - Você pode criar um servidor web com apenas 4 linhas de código. - Da mesma forma, você também pode criar um servidor TCP. - Essas poucas linhas permitem gerenciar até 10.000 requisições por segundo. - Também é possível criar: - Servidores DNS - Servidores de arquivos estáticos - Aplicações real-time var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Worldn') }).listen(1337, '127.0.0.1'); var net = require('net'); var server = net.createServer(function (socket) { socket.write('Echo serverrn'); socket.pipe(socket) }).listen(1337, '127.0.0.1');
  8. 8. Vale a pena utilizar o node.js ? - Para aplicações que não requerem um uso intensivo de CPU, é possível escrever Javascript em todas as camadas, inclusive no nível do banco de dados utilizando soluções de banco de dados não relacionais, como o MongoDB. - I/O assíncrono favorece a criação de ambientes com alta escalabilidade e concorrência. - Node.js foi criado para resolver o problema de escalabilidade e concorrência, portanto é ideal para criação de soluções com grande quantidade de usuários conectados consumindo web services. PRÓS CONTRAS - Para aplicações que requerem conexão com banco de dados relacionais, Node.js não é a melhor opção. - Aplicações que exigem um alto processamento de CPU anulam todos os benefícios do modelo de I/O não bloqueante, uma vez que todas as novas conexões ficarão bloqueadas enquanto a thread está ocupada com o processamento. - Por ser uma tecnologia relativamente nova e em constante atualização , o futuro é incerto e por isso sua adoção envolve um risco para o negócio.
  9. 9. Fim. Pablo D. Souza Santos Rectius - Tecnologia e Informação

×