Mais conteúdo relacionado
Semelhante a Secomp 2011 - Node.JS - Introdução (20)
Mais de Emerson Macedo (17)
Secomp 2011 - Node.JS - Introdução
- 21. ~ 70% dos adultos
serão usuários
regulares de
redes sociais
- 35. PHP 1995
Java EE 1998
- 36. PHP 1995
Java EE 1998
ASP.Net 2001
- 37. PHP 1995
Java EE 1998
ASP.Net 2001
Ruby on Rails 2004
- 38. PHP 1995
Java EE 1998
ASP.Net 2001
Ruby on Rails 2004
Django 2006
- 40. Usuários de Internet no Mundo (em milhões)
2.000 milhões
2000
1500
1000
500 360 milhões
0
2000 2010
- 52. Escalando DB na horizontal
Shard Shard Shard Shard Shard Shard
Database Database Database Database Database Database
- 75. Qual é o problema
das tecnologias atuais ?
- 78. Nosso código costuma
ser escrito assim
O que o software está fazendo
enquanto a querie executa ?
- 85. Rails ou Django
RUNTIME
BLOCK
PROCESS
RUNTIME
BLOCK
PROCESS
HTTPD Database
RUNTIME
BLOCK
PROCESS
RUNTIME
PROCESS BLOCK
- 88. Java
Servlet Container
HTTPD Servlet Database
- 89. Java
Servlet Container
HTTPD Servlet Database
- 90. Java
Servlet Container
HTTPD Servlet Database
- 91. Java
Servlet Container
Thread
HTTPD Servlet Database
- 92. Java
Servlet Container
Thread BLOCK
HTTPD Servlet Database
- 93. Java
Servlet Container
Thread BLOCK
Thread BLOCK
Thread BLOCK
HTTPD Servlet Database
Thread BLOCK
Thread BLOCK
Thread BLOCK
Thread BLOCK
- 102. concurrency × reqs/sec
Apache vs NGINX
concurrency × reqs/sec
http://blog.webfaction.com/a-little-holiday-present
http://blog.webfaction.com/a-little-holiday-present
- 103. concurrency × reqs/sec
Apache vs NGINX
concurrency × memory
http://blog.webfaction.com/a-little-holiday-present
http://blog.webfaction.com/a-little-holiday-present
- 107. Pense bem antes de
usar uma thread por
request quando
precisar suportar alta
concorrência
- 124. Latência de I/O
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
Disco 41.000.000 ciclos
- 125. Latência de I/O
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
Disco 41.000.000 ciclos
Rede 240.000.000 ciclos
- 126. Latência de I/O
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
Disco 41.000.000 ciclos
Rede 240.000.000 ciclos
- 130. I/O não bloqueante
L1 3 ciclos
L2 14 ciclos
RAM 250 ciclos
I/O bloqueante
Disco 41.000.000 ciclos
Rede 240.000.000 ciclos
- 132. Servidor TCP simples
em NodeJS
O código acima faz com que a execução
retorne imediatamente ao event loop
- 136. Arquitetura
Javascript Node standard library
C Node Bindings
thread event
IOCP
pool loop
V8
(async)
(libeio) (libev)
unix windows
- 139. Pilha de execução
http_parse(1)
socket_readdable(1)
ev_loop()
I/O em disco (bloqueante)
- 140. Pilha de execução
load(“index.html”)
http_parse(1)
socket_readdable(1)
ev_loop()
I/O em disco (bloqueante)
- 141. Pilha de execução
http_parse(1)
socket_readdable(1)
ev_loop()
I/O em disco (bloqueante)
- 146. Pilha de execução
http_parse(2)
socket_readdable(2)
ev_loop()
I/O em RAM (não bloqueante)
- 147. Pilha de execução
http_respond(2)
http_parse(2)
socket_readdable(2)
ev_loop()
I/O em RAM (não bloqueante)
- 148. Pilha de execução
http_parse(2)
socket_readdable(2)
ev_loop()
I/O em RAM (não bloqueante)
- 153. Pilha de execução
http_respond(1)
file_loaded()
ev_loop()
Arquivo carregou do disco
- 158. Arquitetura Web
Nginx
Ruby Ruby Ruby Ruby Ruby
or or or or or
Python Python Python Python Python
- 159. Arquitetura Web
Nginx
Ruby Ruby Ruby Ruby Ruby
or or or or or NodeJS
Python Python Python Python Python
- 163. Arquitetura Web
NodeJS
Quando NodeJS estiver bem maduro, a
idéia de Ryan é que ele seja a porta de
entrada. Será ?
- 229. Obrigado !!!
Emerson Macedo
@emerleite
http://nodecasts.org
http://codificando.com