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

Post on 27-Jun-2015

416 views 0 download

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

8

Referência

no Brasil

Julho/201292.000.000

visitas

21.000.000uniques

633.000.000pageviews

WebServer App Servers File Servers

WebServer

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

8gb de memória (ddr2 667mhz)

145gb HD SCSI

App Servers

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

4gb de memória (ddr2 800mhz)

250gb HD SCSI

File Servers

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

8gb de memória (ddr2 667mhz)

160gb HD SCSI

2.305 pontos 3.989 pontos

web server

app server

+

file server

+

replication

WebServer

AppServer

master slave’s

Alexandre Binialexandre@clickjogos.com.br@alexandrebini

html

imagens

desacoplar aplicação

evitar desperdício

deploy

22 milhões de pageviews/dia

WebServer

AppServer

GET / Balancer

cache /index.htmlresponse

WebServer

GET /

responseAppServe

r

WebServer

AppServer

Busca

JSON

Paginação

Redirects

Busca

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

redirects

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

4gb 215kde html’s

janitor crawler

janitor crawler

janitor crawler

22 milhões de pageviews/dia

html

imagens

desacoplar aplicação

evitar desperdício

deploy

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

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

Intel Xeon 2.4ghz (quad core)

96gb de memória

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

OptiPNGPNGquant

-20%

$100.000,00 (amazon)

$20.000,00/mês

500.000 GB/mês

(de imagens de 4k)

cache de html

cache de imagens

desacoplar aplicação

evitar desperdício

deploy

Sinatra

Sinatra+

cache de html

cache de imagens

desacoplar aplicação

evitar desperdício

deploy

5ms 1ms

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;}

cache de html

cache de imagens

desacoplar aplicação

evitar desperdício

deploy

WebServer

AppServer

WebServer

AppServer

GET /

responsecache /index.html

WebServer

AppServer

GET /shuffle/

response /warmup-lock.html

WebServer

AppServer

GET /shuffle/

response /warmup-lock.html

GET /contato/

response 200 OK

WebServer

AppServer

GET /shuffle/

response /warmup-lock.html

GET /contato/

response 200 OK

WebServer

AppServer

GET /shuffle/ Balancer

response

OptiPNGPNGquant

Sinatra

# 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;

}

Cache

Cache

Cache

Cache

Alexandre Binialexandre@clickjogos.com.br@alexandrebini