SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Site da UFSM:
o mundo 700 requisições
por segundo
Henrique Gabriel Gularte Pereira
henrique@ufsm.br
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
UFSM
UFSM
~ 28.000 alunos
~ 4.500
funcionários (1.800
docentes)
7 Pró-Reitorias
13 Centros de
Ensino
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
Site da UFSM
Site da UFSM
Site da UFSM
Site da UFSM
Site da UFSM
Site da UFSM - Sistemas
• Notícias
• Editais
• Licitações
• Conteúdos Estáticos
• Ônibus
• Classificados
• Links
• Ramais
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
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
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
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
Horários de Ônibus
Editais
Licitações
Notícias
Banner
Virando o jogo
Conquistando espaço
em uma universidade
com Python e Django
http://bit.ly/1rXEngH
Processo
• Desenvolvimento Iterativo
• Modernização Tecnológica
• Facilidade de Gestão
• Conteúdos
• Dados
• Integração Social
• Acessibilidade
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
Projeto
• Agenda
• Páginas Estáticas
• Editais
• Links
• Horários de Ônibus
• Notícias
• Ramais
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 )
Resultado
Resultado
Resultado
Tecnologias
• Programação
• Python
• Django
• HTML5 + CSS3 + Javascript
• Bootstrap
• Entrega
• Servidor de Cache
• Memcached
• Servidor de Aplicação
• uwsgi + nginx
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
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
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
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
10/3 – 17/3 – UFSM Antigo
17/3 – 24/3 – UFSM Novo
17/3 – 24/3 – UFSM Novo
Segunda-Feira
24/03/2014
51.000 visualizações
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
Em desenvolvimento
• Cardápio do RU
• Sistema de Licitações
• Sistema de Concursos
• Mudanças Visuais
• Sistema de Busca
• django-haystack + elasticsearch
Conclusões
• Django Cache Framework
• django-admin
• django-redactor
• django-easy_thumbnails
• nginx + uwsgi
Obrigado!
• Henrique Gabriel Gularte Pereira
• henrique@ufsm.br

Mais conteúdo relacionado

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

Aula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIAula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIFilipo Mór
 
Artefato PETIC dcomp v3
Artefato PETIC dcomp v3Artefato PETIC dcomp v3
Artefato PETIC dcomp v3Diego Maynard
 
Apresentação sigeted
Apresentação sigetedApresentação sigeted
Apresentação sigetedJelson Santos
 
Novos ambientes de aprendizagem: PLE, MOOCs e Mobile Learning (#w4naa)
Novos ambientes de aprendizagem: PLE, MOOCs e Mobile Learning (#w4naa)Novos ambientes de aprendizagem: PLE, MOOCs e Mobile Learning (#w4naa)
Novos ambientes de aprendizagem: PLE, MOOCs e Mobile Learning (#w4naa)Paula Silva
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosThiago Pereira
 
Apresentação - SUAP - CNAT 13/05/2016
Apresentação - SUAP - CNAT 13/05/2016Apresentação - SUAP - CNAT 13/05/2016
Apresentação - SUAP - CNAT 13/05/2016Allyson Barros
 
Palestra html5 e CSS3
Palestra html5 e CSS3Palestra html5 e CSS3
Palestra html5 e CSS3CELULA CURSOS
 
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...Ivan Paulovich
 
e-Business Collaboration
e-Business Collaboratione-Business Collaboration
e-Business Collaborationvasco marques
 
Serviços de rede: uma visão de futuro
Serviços de rede: uma visão  de futuroServiços de rede: uma visão  de futuro
Serviços de rede: uma visão de futuroDiego Kreutz
 
Joomla!Day Brasil 2008 - USP - Paulino Michelazzo
Joomla!Day Brasil 2008 - USP - Paulino MichelazzoJoomla!Day Brasil 2008 - USP - Paulino Michelazzo
Joomla!Day Brasil 2008 - USP - Paulino MichelazzoJoomla!Day Brasil
 
ABERTURA E GESTÃO DE DADOS DE INVESTIGAÇÃO - Estratégias Institucionais e Ser...
ABERTURA E GESTÃO DE DADOS DE INVESTIGAÇÃO - Estratégias Institucionais e Ser...ABERTURA E GESTÃO DE DADOS DE INVESTIGAÇÃO - Estratégias Institucionais e Ser...
ABERTURA E GESTÃO DE DADOS DE INVESTIGAÇÃO - Estratégias Institucionais e Ser...Pedro Príncipe
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastpichiliani
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentasluanrjesus
 
Reconstrução do Portal Institucional da UFVJM
Reconstrução do Portal Institucional da UFVJMReconstrução do Portal Institucional da UFVJM
Reconstrução do Portal Institucional da UFVJMElias Alves
 
Palestra internacionalização erica saito_15-10-13
Palestra internacionalização erica saito_15-10-13Palestra internacionalização erica saito_15-10-13
Palestra internacionalização erica saito_15-10-13Universidade de São Paulo
 
Apresentação do Projeto PRIME SCRUM. trabalho final do curso de Análise e Des...
Apresentação do Projeto PRIME SCRUM. trabalho final do curso de Análise e Des...Apresentação do Projeto PRIME SCRUM. trabalho final do curso de Análise e Des...
Apresentação do Projeto PRIME SCRUM. trabalho final do curso de Análise e Des...Thiago Barros, PSM
 

Semelhante a Site da UFSM: Django a 700 requisições por segundo (20)

Aula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIAula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTI
 
Artefato PETIC dcomp v3
Artefato PETIC dcomp v3Artefato PETIC dcomp v3
Artefato PETIC dcomp v3
 
Apresentação sigeted
Apresentação sigetedApresentação sigeted
Apresentação sigeted
 
Novos ambientes de aprendizagem: PLE, MOOCs e Mobile Learning (#w4naa)
Novos ambientes de aprendizagem: PLE, MOOCs e Mobile Learning (#w4naa)Novos ambientes de aprendizagem: PLE, MOOCs e Mobile Learning (#w4naa)
Novos ambientes de aprendizagem: PLE, MOOCs e Mobile Learning (#w4naa)
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
 
Apresentação - SUAP - CNAT 13/05/2016
Apresentação - SUAP - CNAT 13/05/2016Apresentação - SUAP - CNAT 13/05/2016
Apresentação - SUAP - CNAT 13/05/2016
 
Palestra html5 e CSS3
Palestra html5 e CSS3Palestra html5 e CSS3
Palestra html5 e CSS3
 
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
 
e-Business Collaboration
e-Business Collaboratione-Business Collaboration
e-Business Collaboration
 
Serviços de rede: uma visão de futuro
Serviços de rede: uma visão  de futuroServiços de rede: uma visão  de futuro
Serviços de rede: uma visão de futuro
 
Joomla!Day Brasil 2008 - USP - Paulino Michelazzo
Joomla!Day Brasil 2008 - USP - Paulino MichelazzoJoomla!Day Brasil 2008 - USP - Paulino Michelazzo
Joomla!Day Brasil 2008 - USP - Paulino Michelazzo
 
José luiz ribeiro
José luiz ribeiroJosé luiz ribeiro
José luiz ribeiro
 
ABERTURA E GESTÃO DE DADOS DE INVESTIGAÇÃO - Estratégias Institucionais e Ser...
ABERTURA E GESTÃO DE DADOS DE INVESTIGAÇÃO - Estratégias Institucionais e Ser...ABERTURA E GESTÃO DE DADOS DE INVESTIGAÇÃO - Estratégias Institucionais e Ser...
ABERTURA E GESTÃO DE DADOS DE INVESTIGAÇÃO - Estratégias Institucionais e Ser...
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCast
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentas
 
Reconstrução do Portal Institucional da UFVJM
Reconstrução do Portal Institucional da UFVJMReconstrução do Portal Institucional da UFVJM
Reconstrução do Portal Institucional da UFVJM
 
Palestra internacionalização erica saito_15-10-13
Palestra internacionalização erica saito_15-10-13Palestra internacionalização erica saito_15-10-13
Palestra internacionalização erica saito_15-10-13
 
Apresentacao artigo final
Apresentacao artigo finalApresentacao artigo final
Apresentacao artigo final
 
Apresentação do Projeto PRIME SCRUM. trabalho final do curso de Análise e Des...
Apresentação do Projeto PRIME SCRUM. trabalho final do curso de Análise e Des...Apresentação do Projeto PRIME SCRUM. trabalho final do curso de Análise e Des...
Apresentação do Projeto PRIME SCRUM. trabalho final do curso de Análise e Des...
 
Célula Acadêmica ILES/ULBRA.NET
Célula Acadêmica ILES/ULBRA.NETCélula Acadêmica ILES/ULBRA.NET
Célula Acadêmica ILES/ULBRA.NET
 

Mais de Henrique Gabriel Gularte Pereira

Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Henrique Gabriel Gularte Pereira
 
Como não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conheciaComo não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conheciaHenrique Gabriel Gularte Pereira
 

Mais de Henrique Gabriel Gularte Pereira (20)

EBAC Django
EBAC DjangoEBAC Django
EBAC Django
 
BogoSort 2015
BogoSort 2015BogoSort 2015
BogoSort 2015
 
Mythbusters - Front in SM
Mythbusters - Front in SMMythbusters - Front in SM
Mythbusters - Front in SM
 
O Estado do Python
O Estado do PythonO Estado do Python
O Estado do Python
 
Não é uma palestra sobre Python
Não é uma palestra sobre PythonNão é uma palestra sobre Python
Não é uma palestra sobre Python
 
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
Uma Arquitetura para a Utilização de Computação nas Nuvens nos Ambientes de C...
 
Introdução ao Python com Django
Introdução ao Python com DjangoIntrodução ao Python com Django
Introdução ao Python com Django
 
DevOps com Python
DevOps com PythonDevOps com Python
DevOps com Python
 
Como programar como o coelho assassino de caerbannog
Como programar como o coelho assassino de caerbannogComo programar como o coelho assassino de caerbannog
Como programar como o coelho assassino de caerbannog
 
Como não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conheciaComo não programar em python ou Python Tricks que você ainda não conhecia
Como não programar em python ou Python Tricks que você ainda não conhecia
 
Bogosort [CfC]
Bogosort [CfC]Bogosort [CfC]
Bogosort [CfC]
 
Welcome to the Django
Welcome to the DjangoWelcome to the Django
Welcome to the Django
 
BogoSort 2.0
BogoSort 2.0BogoSort 2.0
BogoSort 2.0
 
Antigo_Scrum
Antigo_ScrumAntigo_Scrum
Antigo_Scrum
 
Análise do BogoSort
Análise do BogoSortAnálise do BogoSort
Análise do BogoSort
 
Usando o WICD com localizacao fisica de dispositivos
Usando o WICD com localizacao fisica de dispositivosUsando o WICD com localizacao fisica de dispositivos
Usando o WICD com localizacao fisica de dispositivos
 
O Software Livre no Mundo do MicroBlogging
O Software Livre no Mundo do MicroBloggingO Software Livre no Mundo do MicroBlogging
O Software Livre no Mundo do MicroBlogging
 
Estabelecimento e Encerramento de Conexão
Estabelecimento e Encerramento de ConexãoEstabelecimento e Encerramento de Conexão
Estabelecimento e Encerramento de Conexão
 
Olá Python!
Olá Python!Olá Python!
Olá Python!
 
Python no Z6
Python no Z6Python no Z6
Python no Z6
 

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

  • 1. Site da UFSM: o mundo 700 requisições por segundo Henrique Gabriel Gularte Pereira henrique@ufsm.br
  • 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
  • 4. UFSM ~ 28.000 alunos ~ 4.500 funcionários (1.800 docentes) 7 Pró-Reitorias 13 Centros de Ensino
  • 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
  • 11. Site da UFSM - Sistemas • Notícias • Editais • Licitações • Conteúdos Estáticos • Ônibus • Classificados • Links • Ramais
  • 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. 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. 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. 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
  • 21. Virando o jogo Conquistando espaço em uma universidade com Python e Django http://bit.ly/1rXEngH
  • 22. Processo • Desenvolvimento Iterativo • Modernização Tecnológica • Facilidade de Gestão • Conteúdos • Dados • Integração Social • Acessibilidade
  • 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. Projeto • Agenda • Páginas Estáticas • Editais • Links • Horários de Ônibus • Notícias • Ramais
  • 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 )
  • 29. Tecnologias • Programação • Python • Django • HTML5 + CSS3 + Javascript • Bootstrap • Entrega • Servidor de Cache • Memcached • Servidor de Aplicação • uwsgi + nginx
  • 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. 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. 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. 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. 10/3 – 17/3 – UFSM Antigo
  • 35. 17/3 – 24/3 – UFSM Novo
  • 36. 17/3 – 24/3 – UFSM Novo Segunda-Feira 24/03/2014 51.000 visualizações
  • 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. Em desenvolvimento • Cardápio do RU • Sistema de Licitações • Sistema de Concursos • Mudanças Visuais • Sistema de Busca • django-haystack + elasticsearch
  • 39. Conclusões • Django Cache Framework • django-admin • django-redactor • django-easy_thumbnails • nginx + uwsgi
  • 40. Obrigado! • Henrique Gabriel Gularte Pereira • henrique@ufsm.br