SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Usando Django para
Servir 12 milhões de Usuários
Python Brasil 9
1sexta-feira, 4 de outubro de 13
Usando Django para
Servir 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ú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
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 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
Bottlenecks
14
MySQL»
Virtuoso»
I/O»
14sexta-feira, 4 de outubro de 13
Pré-geração
Não deixe o usuário disparar ações críticas do
sistema!
15
django-staticgenerator
15sexta-feira, 4 de outubro de 13
Pré-geração
Necessita 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 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
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
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
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
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
27
Pitomba Spriter
pitomba.org
27sexta-feira, 4 de outubro de 13
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
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

Weitere ähnliche Inhalte

Andere mochten auch

Base de datos entidad relacion
Base de datos entidad relacionBase de datos entidad relacion
Base de datos entidad relacionJuan Miguel
 
Lehendakariaren hitzaldia - Euskal Zuzenbide Zibilari buruzko jardunaldien in...
Lehendakariaren hitzaldia - Euskal Zuzenbide Zibilari buruzko jardunaldien in...Lehendakariaren hitzaldia - Euskal Zuzenbide Zibilari buruzko jardunaldien in...
Lehendakariaren hitzaldia - Euskal Zuzenbide Zibilari buruzko jardunaldien in...Irekia - EJGV
 
Global economic developments and their impact on Asia
Global economic developments and their impact on AsiaGlobal economic developments and their impact on Asia
Global economic developments and their impact on AsiaMunich Re
 
Credits and titles presentation
Credits and titles presentationCredits and titles presentation
Credits and titles presentationMediagroup8
 
Здоровьесбережение
ЗдоровьесбережениеЗдоровьесбережение
Здоровьесбережениеbaklanova
 
Biodata pribadi ku
Biodata pribadi kuBiodata pribadi ku
Biodata pribadi kumegaayusurya
 

Andere mochten auch (10)

Base de datos entidad relacion
Base de datos entidad relacionBase de datos entidad relacion
Base de datos entidad relacion
 
Lehendakariaren hitzaldia - Euskal Zuzenbide Zibilari buruzko jardunaldien in...
Lehendakariaren hitzaldia - Euskal Zuzenbide Zibilari buruzko jardunaldien in...Lehendakariaren hitzaldia - Euskal Zuzenbide Zibilari buruzko jardunaldien in...
Lehendakariaren hitzaldia - Euskal Zuzenbide Zibilari buruzko jardunaldien in...
 
CV_Mandeep CPA 3-11
CV_Mandeep CPA 3-11CV_Mandeep CPA 3-11
CV_Mandeep CPA 3-11
 
Global economic developments and their impact on Asia
Global economic developments and their impact on AsiaGlobal economic developments and their impact on Asia
Global economic developments and their impact on Asia
 
Credits and titles presentation
Credits and titles presentationCredits and titles presentation
Credits and titles presentation
 
An Effective Advertising Campaign
An Effective Advertising CampaignAn Effective Advertising Campaign
An Effective Advertising Campaign
 
Media Plan
Media PlanMedia Plan
Media Plan
 
Lampiran 2 hal 86
Lampiran 2 hal 86Lampiran 2 hal 86
Lampiran 2 hal 86
 
Здоровьесбережение
ЗдоровьесбережениеЗдоровьесбережение
Здоровьесбережение
 
Biodata pribadi ku
Biodata pribadi kuBiodata pribadi ku
Biodata pribadi ku
 

Ähnlich wie Django 12M Users Scalability

Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Miguel Gallardo
 
Secot banco de dados no sql de código aberto
Secot   banco de dados no sql de código abertoSecot   banco de dados no sql de código aberto
Secot banco de dados no sql de código abertoSuissa
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasWaldemar Neto
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET CoreGiovanni Bassi
 
Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)guestf4f70f
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus DadosAlvaro Viebrantz
 
Apresentação no Meetup da Elastic em Florianopolis
Apresentação no Meetup da Elastic em FlorianopolisApresentação no Meetup da Elastic em Florianopolis
Apresentação no Meetup da Elastic em Florianopolisluis antonio Nunes
 
Seus logs nas costas largas da AWS
Seus logs nas costas largas da AWSSeus logs nas costas largas da AWS
Seus logs nas costas largas da AWSMarcelo Palladino
 
Producao Segura de Containers com Kubernetes e CoreOS - QCONSP 2017
Producao Segura de Containers com Kubernetes e CoreOS - QCONSP 2017Producao Segura de Containers com Kubernetes e CoreOS - QCONSP 2017
Producao Segura de Containers com Kubernetes e CoreOS - QCONSP 2017Ricardo Katz
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Renato Groff
 
4º Fórum GDI Novembro 2018 - Integração LabTablet e Dendro com EUDAT B2SHARE ...
4º Fórum GDI Novembro 2018 - Integração LabTablet e Dendro com EUDAT B2SHARE ...4º Fórum GDI Novembro 2018 - Integração LabTablet e Dendro com EUDAT B2SHARE ...
4º Fórum GDI Novembro 2018 - Integração LabTablet e Dendro com EUDAT B2SHARE ...João Rocha da Silva
 

Ähnlich wie Django 12M Users Scalability (15)

Talk at QConSP
Talk at QConSPTalk at QConSP
Talk at QConSP
 
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
 
Secot banco de dados no sql de código aberto
Secot   banco de dados no sql de código abertoSecot   banco de dados no sql de código aberto
Secot banco de dados no sql de código aberto
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET Core
 
Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)
 
NoSQL e Python
NoSQL e PythonNoSQL e Python
NoSQL e Python
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus Dados
 
Desenvolvimento web produtivo
Desenvolvimento web produtivoDesenvolvimento web produtivo
Desenvolvimento web produtivo
 
Big Data
Big DataBig Data
Big Data
 
Apresentação no Meetup da Elastic em Florianopolis
Apresentação no Meetup da Elastic em FlorianopolisApresentação no Meetup da Elastic em Florianopolis
Apresentação no Meetup da Elastic em Florianopolis
 
Seus logs nas costas largas da AWS
Seus logs nas costas largas da AWSSeus logs nas costas largas da AWS
Seus logs nas costas largas da AWS
 
Producao Segura de Containers com Kubernetes e CoreOS - QCONSP 2017
Producao Segura de Containers com Kubernetes e CoreOS - QCONSP 2017Producao Segura de Containers com Kubernetes e CoreOS - QCONSP 2017
Producao Segura de Containers com Kubernetes e CoreOS - QCONSP 2017
 
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
Docker + Azure: opções disponíveis e utilização de containers na nuvem - Azur...
 
4º Fórum GDI Novembro 2018 - Integração LabTablet e Dendro com EUDAT B2SHARE ...
4º Fórum GDI Novembro 2018 - Integração LabTablet e Dendro com EUDAT B2SHARE ...4º Fórum GDI Novembro 2018 - Integração LabTablet e Dendro com EUDAT B2SHARE ...
4º Fórum GDI Novembro 2018 - Integração LabTablet e Dendro com EUDAT B2SHARE ...
 

Django 12M Users Scalability