• JavaScript desde 1999
• Node.js desde v0.2.4 (2010)
• 15 anos no UOL
Home Page, Rádio UOL
Publicador (CMS), Bate-papo
Busca, Placar UOL
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
TSE
“tempo-real”
publica assina
edita
assiste envia
Slide 8
Slide 8 text
Alta audiência
em intervalo de
tempo
extrema-
mente curto
Slide 9
Slide 9 text
HTTP REQ/RES
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
CONN/THREAD
1m UPDATE
NFS + mod_cache
META REFRESH
Slide 12
Slide 12 text
30.000
18
30/06/2006
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
DEVOPS++
4s UPDATE
RESTARTS
JSONP
SCRIPT
Slide 15
Slide 15 text
72.000
18
Rio 2011
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
1s UPDATE
PROXY
JSON/XHR
SOCKETS * 2
MOD--
Slide 18
Slide 18 text
500.000
18
Rio 2013
Slide 19
Slide 19 text
BIDIRECIONAL TCP HANDSHAKE
Slide 20
Slide 20 text
$ npm install ws
https://github.com/websockets/ws
The fastest RFC-6455 WebSocket
implementation for Node.js
BINARY HIXIE
Slide 21
Slide 21 text
User
DNS
Router
Master
Data centers Servers Processes
Worker
Internet
Browser
Arquitetura
Slide 22
Slide 22 text
Workers
Slide 23
Slide 23 text
theory
meets messy reality
most connections ended up in just two
or three processes.
https://strongloop.com/strongblog/whats-new-in-node-js-v0-12-cluster-round-robin-load-balancing/
(Des)balanceamento via DNS
close code 4001
WebSocket close codes 4000-4999
“Available for use by applications”
RAM NOK
BROWSER DNS DATA CENTER SERVER
WebSocket HTTP upgrade
Slide 27
Slide 27 text
POLLING!
HUEHUEHUE 46 LINHAS 2s
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
1.200.000
26
24 milhões de page views
Slide 30
Slide 30 text
300.000
26
3,5 milhões de page views
1 x 7 never forget
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
1.100.000
26
Primeiro turno
Slide 33
Slide 33 text
1.500.000
26
Segundo turno
Slide 34
Slide 34 text
ms UPDATE
POLLING IE
window.WebSocket
DEVOPS--
PING
RESTART = 0