Post on 18-Dec-2014
description
Usando Django paraServir 12 milhões de Usuários
Python Brasil 9
1sexta-feira, 4 de outubro de 13
Usando Django paraServir 12 milhões de Usuários
Python Brasil 9
20 milhões
1sexta-feira, 4 de outubro de 13
Rômulo Jales
2
Victor Pantoja
2sexta-feira, 4 de outubro de 13
Motivação
3
3sexta-feira, 4 de outubro de 13
Motivação
4
4sexta-feira, 4 de outubro de 13
Motivação
5
5sexta-feira, 4 de outubro de 13
Motivação
6
6sexta-feira, 4 de outubro de 13
Motivação
7
7sexta-feira, 4 de outubro de 13
Alguns númerosVisitantes ú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
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
Tecnologias
10
10sexta-feira, 4 de outubro de 13
11
11sexta-feira, 4 de outubro de 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
13
Uso de Middlewares
Cache de View
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
Bottlenecks
14
MySQL»
Virtuoso»
I/O»
14sexta-feira, 4 de outubro de 13
Pré-geraçãoNão deixe o usuário disparar ações críticas do sistema!
15
django-staticgenerator
15sexta-feira, 4 de outubro de 13
Pré-geraçãoNecessita que alguém ou algo dispare o processo
16
16sexta-feira, 4 de outubro de 13
17
CACHE EVERYWHERE
CACHE
17sexta-feira, 4 de outubro de 13
Memcached
Faça o caching de objetos e não de resultados de queries!
18
18sexta-feira, 4 de outubro de 13
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
Ajax vs SSIMelhor 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
21sexta-feira, 4 de outubro de 13
22
32 Bits com PAE (problemas ao servir cache)»
64 Bits»
22sexta-feira, 4 de outubro de 13
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
BeanstalkdAplicaçã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
Minify de CSS e JS»
25
CSS Sprite»
Tempo de expiração adequado»
gzip»
estáticos servidos pelo Varnish em uma farm separada»
Performance Client-Side
caching do browser»
25sexta-feira, 4 de outubro de 13
26
Performance Client-SideConfigure os headers da requisição corretamente!
HTTP/1.1 200 OKAccept-Encoding:gzip,deflate,sdchContent-Type: application/jsonVary: Accept-EncodingCache-Control: max-age=30Expires: Tue, 01 Oct 2013 14:45:24 GMTDate: Tue, 01 Oct 2013 14:44:59 GMTX-Varnish: 1952793053 1952791896
26sexta-feira, 4 de outubro de 13
27
Pitomba Spriter
pitomba.org
27sexta-feira, 4 de outubro de 13
FerramentasApache 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
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
/DEV
30
http://globodev.tumblr.com/
Conteúdo criado pelos desenvolvedores da globo.com
30sexta-feira, 4 de outubro de 13
31
31sexta-feira, 4 de outubro de 13
32
https://github.com/globocom/IWantToWorkAtGloboCom
http://bit.ly/quero-trabalhar-globo-com
32sexta-feira, 4 de outubro de 13
Perguntas!!@romulojales
33
@victorpantoja
33sexta-feira, 4 de outubro de 13