Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Placar UOL: Copa do Mundo e Eleições ao vivo co...

Placar UOL: Copa do Mundo e Eleições ao vivo com Node.js e WebSockets

Placar UOL é um dos produtos de maior audiência do UOL. Milhares de usuários acompanham as principais partidas de futebol, resultado das eleições e apuração do carnaval em tempo real. Esta apresentação mostra a evolução da arquiteturaem começando com Apache, passando por Nginx, até sua versão atual utilizando Node.js e WebSockets.

Fernando Miçalli

August 23, 2015
Tweet

Other Decks in Technology

Transcript

  1. • 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
  2. 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/
  3. iptables iptables -A PREROUTING -i eth1+ -p tcp -m tcp

    --dport 80 -m statistic --mode nth --every 23 -j REDIRECT --to-ports 8103 iptables -A PREROUTING -i eth1+ -p tcp -m tcp --dport 80 -m statistic --mode nth --every 22 -j REDIRECT --to-ports 8102 iptables -A PREROUTING -i eth1+ -p tcp -m tcp --dport 80 -m statistic --mode nth --every 21 -j REDIRECT --to-ports 8101 iptables -A PREROUTING -i eth1+ -p tcp -m tcp --dport 80 -m statistic --mode nth --every 20 -j REDIRECT --to-ports 8100 iptables -A PREROUTING -i eth1+ -p tcp -m tcp --dport 80 -m statistic --mode nth --every 19 -j REDIRECT --to-ports 8099 iptables -A PREROUTING -i eth1+ -p tcp -m tcp --dport 80 -m statistic --mode nth --every 18 -j REDIRECT --to-ports 8098 iptables -A PREROUTING -i eth1+ -p tcp -m tcp --dport 80 -m statistic --mode nth --every 17 -j REDIRECT --to-ports 8097 iptables -A PREROUTING -i eth1+ -p tcp -m tcp --dport 80 -m statistic --mode nth --every 16 -j REDIRECT --to-ports 8096 iptables -A PREROUTING -i eth1+ -p tcp -m tcp --dport 80 -m statistic --mode nth --every 15 -j REDIRECT --to-ports 8095 child_process
  4. 32 cores (2 GHz) 64 GB RAM 31 workers REDE

    1 Gb USO PREVISÍVEL CRESCIMENTO HORIZONTAL 1.040.000 users 33.500 users / worker TOO BIG TO FAIL 16.700 users / GB 4 cores (2.2 GHz) 8 GB RAM 3 workers 100.000 users 33.300 users / worker 16.600 users / GB
  5. (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