Introdução sobre
2˚ Encontro
Quem sou eu?
Caio Ribeiro Pereira Desenvolvedor na Cocento Tecnologia Sistemas de Informação na Unisantos Twitter: @crp_underground Email: [email protected] Blogs:
http://www.udglinux.com http://udgwebdev.wordpress.com http://crpunderground.wordpress.com
Sobre o Node.js Criador: Ryan Lienhart Dahl; Lançado em 2009; Linguagens utilizada:
C++ com 8000 linhas; Javascript com 2000 linhas;
14 colaboradores no projeto; 5100 repositórios no Github; 1129 módulos existente; Versão estável 0.4.12 apenas para Linux e Mac; Versão instável 0.5.10 para Windows;
Introdução Servidor web de alta escalabilidade. Utiliza linguagem Javascript V8.
Principais características
Orientado a eventos de I/O
Compilação Just-in-time
Abstrai funções assíncronas
Concorrência com Threads Não-Bloqueantes
Analogia para Threads Bloqueantes
Analogia para Threads Não-Bloqueantes
Concorrência com Threads Não-Bloqueantes
Servidores web atuais
Twisted – Python - http://twistedmatrix.com Tornado – Python - http://tornadoweb.org Thin – Ruby - http://code.macournoyer.com/thin EventMachine – Ruby http://rubyeventmachine.com Grizzly – Java http://grizzly.java.net Node.js – Javascript http://nodejs.org
Teste de escalabilidade No blog do AkitaOnRails, há um post em que
ele apresenta uns testes de escalabilidade com esses servidores.
Twisted: 4398.17 req/s Tornado: 2498.16 req/s Thin (Ruby 1.8.7): 4619.13 req/s Thin (Ruby 1.9.1): 4777.00 req/s Grizzly: 3523.71 req/s EventMachine: não conseguiu testar Node.js: 6310.62 req/s
Fonte: Blog AkitaOnRails - Brincando com node.js, tornado e thin
Em que Node.js é bom? Construção de um Web Service Restful; Gerenciar fila de concorrências; Servidor de imagens; Resposta em tempo real;
Em que Node.js é ruim? Construção de páginas dinâmicas; Aplicação direta com banco de dados
relacionais; Sistemas transacionais;
O que criar com Node.js Jogos multiplayer online; Aplicações de grande escala de requisições; Aplicações multiprotocolo (DNS, HTTP, TCP, etc); Aplicações assíncronas; Aplicações com respostas em tempo real;
Onde hospedar?
Heroku - http://www.heroku.com Linode - http://www.linode.com Cloud Foundry - http://www.cloudfoundry.com NodeSocket - http://www.nodesocket.com Nodejitsu - http://www.nodejitsu.com
Boas referências Site oficial: http://www.nodejs.org Github: http://github.com/joyent/node Nettuts Plus: http://net.tutsplus.com/tag/node-js Node Begginer: http://www.nodebeginner.org How to node: http://howtonode.org Node Tuts: http://nodetuts.com Node Guide: http://nodeguide.com Node Cloud: http://www.nodecloud.org
Dúvidas?
Obrigado pessoal!