5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

71

description

Nessa palestra mostro como lidamos com todo nosso tráfego com um pequeno número de servidores modestos, utilizando page caching, nfs, Memcached, MySQL replication e outras abordagens incomuns."

Transcript of 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Page 1: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 2: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

8

Page 3: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 4: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Referência

no Brasil

Page 5: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Julho/201292.000.000

visitas

21.000.000uniques

633.000.000pageviews

Page 6: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer App Servers File Servers

Page 7: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

Intel Xeon 2ghz (quad core, 4mb cache L2)

8gb de memória (ddr2 667mhz)

145gb HD SCSI

Page 8: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

App Servers

Intel Xeon 3ghz (dual core, 6mb cache L2)

4gb de memória (ddr2 800mhz)

250gb HD SCSI

Page 9: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

File Servers

Intel Xeon 2.33ghz (octa core, 12mb cache L2)

8gb de memória (ddr2 667mhz)

160gb HD SCSI

Page 10: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

2.305 pontos 3.989 pontos

Page 11: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

web server

Page 12: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

app server

+

Page 13: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

file server

Page 14: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

+

Page 15: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

replication

Page 16: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

AppServer

master slave’s

Page 18: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

html

imagens

desacoplar aplicação

evitar desperdício

deploy

Page 19: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

22 milhões de pageviews/dia

Page 20: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

AppServer

GET / Balancer

cache /index.htmlresponse

Page 21: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

GET /

responseAppServe

r

Page 22: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 23: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

AppServer

Page 24: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Busca

JSON

Paginação

Redirects

Page 25: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Busca

GET /busca/?q=clickcross301 /busca/clickcross/

Page 26: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

redirects

<meta content=’0;url=/clicksinuca/’ http-equiv=‘refresh’/> <script type=‘text/javascript’> window.location = ‘/clicksinuca/’ </script>

Page 27: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

4gb 215kde html’s

Page 28: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

janitor crawler

Page 29: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

janitor crawler

Page 30: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

janitor crawler

Page 31: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

22 milhões de pageviews/dia

Page 32: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

html

imagens

desacoplar aplicação

evitar desperdício

deploy

Page 33: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 34: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 35: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 36: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

location ~* ^.+.(jpg|jpeg|gif|png|ico|css|tgz|gz|js|swf)$ expires modified +20d; }

Page 37: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

HTTP/1.1 200 OK

Expires: Wed, 29 Aug 2012 22:52:28 GMT

Cache-Control: max-age=864000

X-Varnish: 1519921732 1192092275

Age: 307204

Via: CacheUOL

Server: Proxy-Samba UOL

X-Cache: HIT

Page 38: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Intel Xeon 2.4ghz (quad core)

96gb de memória

Page 39: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 40: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

clickjogos.com.br 92g1.globlo.com 86terra.com.br 83ig.com.br 74uol.com.br 72

Page 41: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 42: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

OptiPNGPNGquant

Page 43: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

-20%

Page 44: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

$100.000,00 (amazon)

$20.000,00/mês

500.000 GB/mês

(de imagens de 4k)

Page 45: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

cache de html

cache de imagens

desacoplar aplicação

evitar desperdício

deploy

Page 46: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 47: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Sinatra

Page 48: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Sinatra+

Page 49: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

cache de html

cache de imagens

desacoplar aplicação

evitar desperdício

deploy

Page 50: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 51: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

5ms 1ms

Page 52: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

location ~ ^/(categorias|categorias/mais-jogos|novidades)(|/pg-[0-9]+)/$ { include includes/default_cache.conf; include includes/send_to_balancer.conf;}

location ~ ^/((downloads|jogos|barra)(|/.*))/$ { include includes/default_cache.conf; include includes/send_to_balancer.conf;}

location ~ ^/(clicksinuca|shuffle|shuffle/pqe)/$ { include includes/no_cache.conf; include includes/send_to_balancer.conf;}

location ~ ^/(livehome|thumbtest|dfptest)/$ { include includes/no_cache.conf; include includes/send_to_balancer.conf;}

Page 53: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

cache de html

cache de imagens

desacoplar aplicação

evitar desperdício

deploy

Page 54: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 55: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 56: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 57: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 58: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

AppServer

Page 59: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

AppServer

GET /

responsecache /index.html

Page 60: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

AppServer

GET /shuffle/

response /warmup-lock.html

Page 61: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 62: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

AppServer

GET /shuffle/

response /warmup-lock.html

GET /contato/

response 200 OK

Page 63: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

AppServer

GET /shuffle/

response /warmup-lock.html

GET /contato/

response 200 OK

Page 64: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

WebServer

AppServer

GET /shuffle/ Balancer

response

Page 65: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 66: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

OptiPNGPNGquant

Page 67: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews
Page 68: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Sinatra

Page 69: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

# Allowed

URLs

location ~

^/((top(|

/(semana|m

es|6meses|

12meses))(

|/pg-[0-9]

+)))/$ {

includ

e includes

/default_c

ache.conf;

includ

e includes

/send_to_b

alancer.co

nf;

}

location ~

^/(ajuda|

anuncie|co

ntato|cont

ato/msg|su

bmit)/$ {

includ

e includes

/default_c

ache.conf;

includ

e includes

/send_to_b

alancer.co

nf;

}

location ~

^/(catego

rias|categ

orias/mais

-jogos|nov

idades)(|/

pg-[0-9]+)

/$ {

includ

e includes

/default_c

ache.conf;

includ

e includes

/send_to_b

alancer.co

nf;

}

location ~

^/((downl

oads|jogos

|barra)(|/

.*))/$ {

includ

e includes

/default_c

ache.conf;

includ

e includes

/send_to_b

alancer.co

nf;

}

location ~

^/(clicks

inuca|shuf

fle|shuffl

e/pqe)/$ {

includ

e includes

/no_cache.

conf;

includ

e includes

/send_to_b

alancer.co

nf;

}

location ~

^/(liveho

me|thumbte

st|dfptest

)/$ {

includ

e includes

/no_cache.

conf;

includ

e includes

/send_to_b

alancer.co

nf;

}

Page 70: 5 Servidores, 20 milhões de usuários, 80 milhões de visitas e 600 milhões de pageviews

Cache

Cache

Cache

Cache