Site da UFSM: Django a 700 requisições por segundo

669 views
559 views

Published on

Essa apresentação mostra como foi possível desenvolver o site da UFSM e ser capaz de atingir 700 requisições por segundo, sem muito esforço. Foram utilizadas tecnologias open source como o framework django e o nginx

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

No Downloads
Views
Total views
669
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Site da UFSM: Django a 700 requisições por segundo

  1. 1. Site da UFSM: o mundo 700 requisições por segundo Henrique Gabriel Gularte Pereira henrique@ufsm.br
  2. 2. Quem sou eu? Atualmente: Analista de TI na UFSM Professor na UNIFRA Desenvolvedor e evangelista Python na UFSM Anterior: Fundador de Startup Desenvolvedor PHP Formação: Mestrado em Computação pela UFSM Graduação em Sistemas De Informação pela UNIFRA
  3. 3. UFSM
  4. 4. UFSM ~ 28.000 alunos ~ 4.500 funcionários (1.800 docentes) 7 Pró-Reitorias 13 Centros de Ensino
  5. 5. UFSM Cursos 137 graduação 132 pós-graduação 51 básico, médio e pós- médio 4.757 alunos diplomados em 2012 Foto: Claudio Vaz / Agência RBS
  6. 6. Site da UFSM
  7. 7. Site da UFSM
  8. 8. Site da UFSM
  9. 9. Site da UFSM
  10. 10. Site da UFSM
  11. 11. Site da UFSM - Sistemas • Notícias • Editais • Licitações • Conteúdos Estáticos • Ônibus • Classificados • Links • Ramais
  12. 12. Estatísticas • 22 milhões de visualizações (Dez/2011-Dez/2013) • 915 mil visualizações por mês • 30 mil visualizações por dia • 1200 visualizações por hora • 53 visualizações por minuto
  13. 13. Cenário inicial na TI da UFSM CPD - Centro de Processamento De Dados 37 analistas de TI Projetos de desenvolvimento de Software: Delphi Java PHP
  14. 14. Cenário da TI na UFSM Gartner: Média Geral: 5,4% Setor Governo: 6,6% Setor Educação: 4,8% Dados: Fernando Pires Barbosa (UFSM) / Fórum RNP http://migre.me/gdhqK
  15. 15. Site da UFSM - Problemas • Site fora do ar constantemente • Tecnologia defasada • Base de 2004 • PHP3, Flash • Difícil Manutenção • Inexistência de um CMS • Fragmentado • Um pedaço em cada servidor
  16. 16. Horários de Ônibus
  17. 17. Editais
  18. 18. Licitações
  19. 19. Notícias
  20. 20. Banner
  21. 21. Virando o jogo Conquistando espaço em uma universidade com Python e Django http://bit.ly/1rXEngH
  22. 22. Processo • Desenvolvimento Iterativo • Modernização Tecnológica • Facilidade de Gestão • Conteúdos • Dados • Integração Social • Acessibilidade
  23. 23. Comissão • 1 analista de TI • 1 gerente de projeto • 1 designer • 1 representante da reitoria • 1 representante da assessoria de com. • 1 representante do curso de comunicação • 1 representante do curso de relações públicas
  24. 24. Projeto • Agenda • Páginas Estáticas • Editais • Links • Horários de Ônibus • Notícias • Ramais
  25. 25. Timeline • Definição das Ideias • 3 semanas ( 5/02 – 19/02 ) • De ideia a MVP: • 3 semanas ( 20/02 – 12/03 ) • De MVP a produção: • 1 semana ( 12/03 – 17/03 )
  26. 26. Resultado
  27. 27. Resultado
  28. 28. Resultado
  29. 29. Tecnologias • Programação • Python • Django • HTML5 + CSS3 + Javascript • Bootstrap • Entrega • Servidor de Cache • Memcached • Servidor de Aplicação • uwsgi + nginx
  30. 30. Técnicas • Testes Automatizados de Código – Unittest • 80% de coverage • 120 testes automatizados em 8 “apps” • Minificação de arquivos – django-compressor • Otimização de Imagens – django-easy_thumbnails – Thumbor
  31. 31. Técnicas • Cache de geração de página – Página principal gerada a cada 5 minutos • Memcached + @cache_page – Páginas internas geradas a cada 3 minutos • Memcached + @cache_page • Cache de arquivos estáticos – Nginx • Monitoramento de Erros – Sentry
  32. 32. Deployment • Máquina Virtual • 1 core dedicado ( xeon 2.8) • 8 GB de RAM • 128 instâncias do uwsgi • Tempo de vida de 15 minutos • 192 instâncias do nginx • uwsgi_proxy_pass
  33. 33. Benchmarking • Consumo médio de memória: 4.5GB • ab –n 10000 –c 300 http://site.ufsm.br • 700 requisições por segundo na / • 75% das requisições respondidas em 0.1ms • 98% das requisições respondidas em 0.3ms
  34. 34. 10/3 – 17/3 – UFSM Antigo
  35. 35. 17/3 – 24/3 – UFSM Novo
  36. 36. 17/3 – 24/3 – UFSM Novo Segunda-Feira 24/03/2014 51.000 visualizações
  37. 37. Visualizações superiores a 50k/dia 54.225 - 19/12/2011 - Divulgação do Ponto de Corte Vestibular 2011 55.362 - 28/12/2011 - Divulgação dos Aprovados no Vestibular 2011 68.892 - 10/8/2012 - Reunião do CEPE - Greve: Adiamento do 2º Semestre 64.228 - 17/9/2012 - Reunião do CEPE - Final da Greve 52.577 - 15/10/2012 - Início do 2º semestre de 2012 73.393 - 03/01/2013 - Divulgação dos Aprovados no Vestibular 2012 94.856 - 27/01/2013 - Kiss - Dia 0 115.038 - 28/01/2013 - Kiss - Dia 1 57.865 - 29/01/2013 - Kiss - Dia 2 57.604 - 25/02/2013 - Matrícula 1º 56.527 - 01/04/2013 Início das Aulas do 1º Semestre 57.843 - 04/07/2013 - Resultados - Eleição para Reitor 24/03/2014 51.000 visualizações Dia Normal 13º em nº de visualizações
  38. 38. Em desenvolvimento • Cardápio do RU • Sistema de Licitações • Sistema de Concursos • Mudanças Visuais • Sistema de Busca • django-haystack + elasticsearch
  39. 39. Conclusões • Django Cache Framework • django-admin • django-redactor • django-easy_thumbnails • nginx + uwsgi
  40. 40. Obrigado! • Henrique Gabriel Gularte Pereira • henrique@ufsm.br

×