Palestra apresentada na Python Brasil 9, realizada em Brasília.
A palestra fala sobre os problemas enfrentados e como foram solucionados. Falamos das tecnolgias que utilizamos, como o gunicorn, memcached, semântica (virtuoso) e nginx e como essas tecnologias se encaixam.
9. Alguns números
Visitantes únicos: 20,7 milhões por mês
8
Visitas: 215 milhões por mês
8 milhões de visitas por dia!
8sexta-feira, 4 de outubro de 13
10. Alguns números
9
- matérias republicadas: 2020
- confrontos republicados: 1023
- homes republicadas: 3367
- galerias republicadas: 92
- enquetes republicadas: 57
- CSS regerados: 708
9sexta-feira, 4 de outubro de 13
13. 12
Framework WEB MVC
Propicia uso de melhores práticas de Eng SW
Mas Django não escala...
12sexta-feira, 4 de outubro de 13
14. 13
Uso de Middlewares
Cache deView
Mas Django não escala...
@cache_control(max_age=300)
def top_atletas(request, periodo, quantidade, formato):
dados = MateriaSemanticaController().top_atletas(periodo,
quantidade)
return render_to_json(dados, formato, 'top_atletas')
13sexta-feira, 4 de outubro de 13
19. Memcached
Faça o caching de objetos e não de
resultados de queries!
18
18sexta-feira, 4 de outubro de 13
20. Memcached
19
Diminui a quantidade de memória utilizada: podemos ter várias listas de ids
de objetos mas apenas uma entrada para cada objeto
»
Aumenta a performance do sistema: não é necessário expurgar todo o
cache de uma lista na alteração de um objeto. Basta expurgar o objeto.
»
19sexta-feira, 4 de outubro de 13
21. Ajax vs SSI
Melhor para a indexação daquele conteúdo (SEO)»
20
Diferentes tempos de cache para componentes em uma mesma página»
Melhora a performance client-side»
Diminui o número de requisições ao servidor»
20sexta-feira, 4 de outubro de 13
23. 22
32 Bits com PAE (problemas ao servir cache)»
64 Bits»
22sexta-feira, 4 de outubro de 13
24. Baixo consumo de recursos da máquina»
23
simples configuração»
alta performance»
free e open source»
módulos essenciais: purge, ssi e proxy cache»
23sexta-feira, 4 de outubro de 13
25. Beanstalkd
Aplicação de gerenciamento de filas que utiliza o paradigma pubsub»
24
Solução para processamento assíncrono e offline»
24sexta-feira, 4 de outubro de 13
26. Minify de CSS e JS»
25
CSS Sprite»
Tempo de expiração adequado»
gzip»
estáticos servidos peloVarnish em uma farm separada»
Performance Client-Side
caching do browser»
25sexta-feira, 4 de outubro de 13
27. 26
Performance Client-Side
Configure os headers da requisição corretamente!
HTTP/1.1 200 OK
Accept-Encoding:gzip,deflate,sdch
Content-Type: application/json
Vary:Accept-Encoding
Cache-Control: max-age=30
Expires:Tue, 01 Oct 2013 14:45:24 GMT
Date:Tue, 01 Oct 2013 14:44:59 GMT
X-Varnish: 1952793053 1952791896
26sexta-feira, 4 de outubro de 13
29. Ferramentas
Apache HTTP server benchmarking tool»
28
Monit: ferramenta open source para gerencia e monitoramento de
processos, programas, arquivos, diretórios, serviços etc
»
WebPageTest: webpagetest.org»
28sexta-feira, 4 de outubro de 13
30. Palavra Final
29
Escalabilidade não é uma
questão de linguagem ou
framework mas de arquitetura
da aplicação!!
29sexta-feira, 4 de outubro de 13