View
5.104
Download
1
Category
Preview:
Citation preview
Cartola FC 2010
@marcelnicolaymarcel.nicolay@gmail.commarcelnicolay.com
performance escalabilidade sqlalchemy python nginx memcached varnishload-test arquitetura deploytornado mysql beanstalkd testes qualidade
- CartolaFC o fantasy game oficial do campeonato brasileiro.- Existe desde 2005- Falar como o jogo funciona
O desafio!
- 4 desenvolvedores- 5 meses de projeto- refazer uma aplicao que estava no ar desde 2005- possibilitar o crescimento at 3 vezes
1.500.000 usurios cadastrados
15.000 conexes simultneas, mdia de 2.000 mil
900 requisies por segundo, mdia de 100 r/s
4 servidores mysql, 2 masters e 2 slaves
12 GB de dados em cache
9 Intel Quad-Core Xeon 2.5 GH
63 servidores de aplicao, 7 por mquina
O Status
A soluo
- leve- rpida- segura- deploy automatizado- escalvel- baixo custo- 100% softwar livre- Desenvolvimento rpido e fcil- Fcil manunteno
Arquitetura
NGINXTORNADOTORNADOTORNADOTORNADOTORNADOTORNADOBEANSTALKMEMCACHED
BANCO
box
- 1 web server rodando- balenceamento de carga entre as 7 instncias dos servidores de aplicao- capaz de processar 250 requisies por segundo
Estrutura de banco
Escrita
MASTER
SLAVE
Leitura
- 4 mquinas- 2 master, com replicao, um fica de backup em caso de falha- 2 slaves, cada um apontando para um master diferente- vip de escrita- vip de leitura- vip de pr-cache
Cache em memria - 12GB
box
aplicao
box
aplicao
- cada box possui uma instncia de memcache rodando, com 2GB- o client do memcached, aplica um hash na chave para descobrir em qual instncia o dado est- o dado pode estar local ou em outra instncia- os dado cacheado pode ser um objeto ou uma referncia para outro objeto
Nginx
Baixo consumo de recursos
Simples configurao
Alta performance
Free e Open Source
Mdulos essenciaisLoad Balancer
Proxy Cache
SSI dinmico
Nginx - Mercado
Servidor% maio 2010
Apache54.68%
Microsoft25.27%
nginx6.55%
Google6.00%
lighttpd0.91%
http://news.netcraft.com/archives/2010/05/14/may_2010_web_server_survey.html
Tornado
Leve
Simples
Alta performance
Open Source
Non-blocking I/O
Baixo consumo de recursos
Tornado - benchmark
Aplicao
TORNADOTEMPLATEMODELCONTROLEREPOSITRIOCACHE
BANCO
outes
Perfomance no Cliente
Minify de css/javascript
CSS Sprite
Tempo de expirao
Versionamento de arquivos
gzip
Servir os estticos em uma farm separada
Escalabilidade
Uma aplicao escalvel, uma aplicao preparada para crescer. - Unidade operacional, box. Cada unidade capaz de rodar a aplicao de forma isolada e independente.- Deploy automatizado.- Escalabilidade horizontal. Cada nova unidade, representa um aumento proporcional na capacidade de processamento
- Cada box capaz de processar 250 requisies por segundo
Atualizao de rodada
Atualizar mais de 10milhes de registros
Processamento em memria, com multiprocesso e multithreading
Insero de registros em bloco
Pr-cache dos dados
Curiosidades
55 mil times escalados em 5minutos
Redis x Memcached
Persistir dados no browser com jquery-jStore
Limpeza de cache em fila, com Beanstalkd
Perguntas?
Recommended