Palestra apresentanda na Python Brasil 9

426 views
367 views

Published on

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.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
426
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Palestra apresentanda na Python Brasil 9

  1. 1. Usando Django para Servir 12 milhões de Usuários Python Brasil 9 1sexta-feira, 4 de outubro de 13
  2. 2. Usando Django para Servir 12 milhões de Usuários Python Brasil 9 20 milhões 1sexta-feira, 4 de outubro de 13
  3. 3. Rômulo Jales 2 Victor Pantoja 2sexta-feira, 4 de outubro de 13
  4. 4. Motivação 3 3sexta-feira, 4 de outubro de 13
  5. 5. Motivação 4 4sexta-feira, 4 de outubro de 13
  6. 6. Motivação 5 5sexta-feira, 4 de outubro de 13
  7. 7. Motivação 6 6sexta-feira, 4 de outubro de 13
  8. 8. Motivação 7 7sexta-feira, 4 de outubro de 13
  9. 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. 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
  11. 11. Tecnologias 10 10sexta-feira, 4 de outubro de 13
  12. 12. 11 11sexta-feira, 4 de outubro de 13
  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. 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
  15. 15. Bottlenecks 14 MySQL» Virtuoso» I/O» 14sexta-feira, 4 de outubro de 13
  16. 16. 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
  17. 17. Pré-geração Necessita que alguém ou algo dispare o processo 16 16sexta-feira, 4 de outubro de 13
  18. 18. 17 CACHE EVERYWHERE CACHE 17sexta-feira, 4 de outubro de 13
  19. 19. Memcached Faça o caching de objetos e não de resultados de queries! 18 18sexta-feira, 4 de outubro de 13
  20. 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. 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
  22. 22. 21sexta-feira, 4 de outubro de 13
  23. 23. 22 32 Bits com PAE (problemas ao servir cache)» 64 Bits» 22sexta-feira, 4 de outubro de 13
  24. 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. 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. 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. 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
  28. 28. 27 Pitomba Spriter pitomba.org 27sexta-feira, 4 de outubro de 13
  29. 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. 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
  31. 31. /DEV 30 http://globodev.tumblr.com/ Conteúdo criado pelos desenvolvedores da globo.com 30sexta-feira, 4 de outubro de 13
  32. 32. 31 31sexta-feira, 4 de outubro de 13
  33. 33. 32 https://github.com/globocom/ IWantToWorkAtGloboCom http://bit.ly/quero-trabalhar-globo-com 32sexta-feira, 4 de outubro de 13
  34. 34. Perguntas!! @romulojales 33 @victorpantoja 33sexta-feira, 4 de outubro de 13

×