71

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

Embed Size (px)

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."

Citation preview

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