Plataforma Zope/Plone na Procuradoria Geral da República: desafios e soluções              Lucas Brasilino         <lucas....
AgendaCenário anteriorPrecisando e decidindo migrar...Cenário em 2005 e 2006Desafios e dificuldadesReestruturaçãoEstrutura...
Cenário AnteriorInicialmente, atualizações de páginas WEBfeitas por técnicos de suporte (1995 a 2002);  Quem cuidava de in...
Precisando mudar...Fatos:  Área de tecnologia não conhece o negócio, mas  domina as ferramentas de publicação;  Área de co...
Decidindo migrar...Diretrizes para um portal do MPF  Desenvolver um canal de comunicação para  atender demandas da socieda...
Decidindo migrar...As secretarias de Comunicação Social e deTecnologia da Informação da PGR realizaramuma série de reuniõe...
Decidindo migrar...Avaliação das ferramentas disponíveis nomercado apontou para o Plone/Zope Custo / benefício, segurança ...
Equipe de profissionaisSECOM: 5 profissionais dedicados exclusivamentepara cuidar das questões web. Compreendendo:     1 d...
Cenário em 2005              Apache 2.0 (mod_proxy)                   ZOPE/Plone                     Data.fs
Cenário em 2006   DNSround-robin                   NCS             Apache 2.0 (mod_proxy)                                 ...
Cenário em 2006DNS: resolução para 2 IPs:  Round-robinZope 2.9.3 / Plone 2.5:  Instalado em /usr/local  Usando python 2.4....
Cenário em 2006: DesafiosAleatoriamente o processo do Zope ia a 100%de utilização de CPU  Eventualmente descobria-se que a...
Cenário em 2006: DesafiosBackup não realizado da forma indicada:  cpBaixa performance
DificuldadesEncontrar uma documentação concisa e bemorganizada.  Wiki: bastante esparso  The Zope book: boa documentação, ...
ReestruturaçãoReorganização e reinstalação:  A partir dos fontes e separadamente  Códigos binários ou interpretados:    Us...
ReestruturaçãoReorganização e reinstalação:  Plone 2.5.3-final  Dados (Data.fs):    /usr/webdata/var
Recuperação do Data.fsO tamanho do Data.fs estava em torno de ~5GB.A Wikipage ZODB/FileStorageBackupdocumenta utilitários ...
Recuperação do Data.fsfsrecover.py recuperou e packeou.  O Data.fs foi reduzido a ~3.5 GbSpinning Zope solucionado.Melhora...
Dividir para ConquistarServidor ZEO em outra máquina  Desinstalação do OCFS2    Perda da redundância    Ganho em estabilid...
Dividir para Conquistar                   Apache 2.0 (mod_proxy)        NCS             ZOPE/Plone                    ZEO ...
Dividir para ConquistarDivisão dos Plone sites em vários Data.fs:  Conselhos  Informa  Intranets  Memorial  Outros (PGR, P...
Uso de memóriaAumento do nº de objetos em memória        <zodb_db main>           mount-point /           cache-size 20000...
Uso de memóriaOcupa em média 1.6Gb de RAM.Empiricamente não ultrapassa 2Gb  Erro out of memory  # ulimit -v    unlimitedAu...
Web CachesUm dos métodos mais eficientes no aumentode performance de aplicações Web  HTTP acceleratorRetém um objeto web d...
Web Caches1º experimento: Apache mod_expires  Adiciona e/ou substitui o HTTP Header Expires  Define quando o objeto torna-...
Web Caches2º experimento: Apache mod_wodan  Ignora qualquer header e define uma  cacheabilidade de todos os objetos de uma...
Web Caches3º experimento: Apache mod_cache  A princípio segue os headers que definem a  cacheabilidade de um objeto  Imple...
Web Caches4º experimento: Proxy/Cache Squid  Adaptado para funcionar como um HTTP  accelerator  Segue fielmente o definido...
Política de backup e packingImplementados com scripts shell usandoferramentas ZEO e gerando logsPacking realizado todo sáb...
Alguns dadosTamanho total dos ZEO Data files: ~8.3GBNúmero de Plone Sites: 24Sites mais acessados (março):  PGR: 12.789.30...
Estrutura Atual                  Squid 2.6STABLE18                     ZOPE/Plone                            ZEO          ...
RecursosServidor IBM xSeries 346 (Intel Xeon 3.6 GHz /6 GB)Servidor Dell Power Edge 2950 (Intel Xeon 3GHz / 16 GB)Servidor...
Exemplo: Portal da PGR
Exemplo: Portal de notícias
Futuros trabalhosWeb Caches:  Avaliar round-robin x SLB  Avaliar o varnishSistemas de arquivos:  Avaliar novas versões do ...
Futuros trabalhosAlta disponibilidade:  Certificação da alta disponibilidade via Storage  DS4500 com RDAC (em andamento)  ...
Obrigado !        Dúvidas ?http://www.pgr.mpf.gov.br         Lucas Brasilino    <lucas.brasilino@gmail.com>     Mauro Cesa...
Próximos SlideShares
Carregando em…5
×

Plataforma Zope Plone na PGR

962 visualizações

Publicada em

Talk at FISL 9 (year 2008) about Plone/Zope infrastructure development at Procuradoria Geral da República - PGR. In 2010 the infrastructure was completely redone, so it now does not reflect what is exposed on this presentation, In Brazilian Portuguese.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
962
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Plataforma Zope Plone na PGR

  1. 1. Plataforma Zope/Plone na Procuradoria Geral da República: desafios e soluções Lucas Brasilino <lucas.brasilino@gmail.com> Mauro Cesar Sobrinho <mauro@pgr.mpf.gov.br>
  2. 2. AgendaCenário anteriorPrecisando e decidindo migrar...Cenário em 2005 e 2006Desafios e dificuldadesReestruturaçãoEstrutura atual e exemplosTrabalhos futuros
  3. 3. Cenário AnteriorInicialmente, atualizações de páginas WEBfeitas por técnicos de suporte (1995 a 2002); Quem cuidava de infra-estrutura, também atualizava as páginas...Criação de Grupo WEB ligado a área dedesenvolvimento (2002 a 2005); Separação de infra-estrutura e gestão de conteúdoTransferência do Grupo WEB para a área deComunicação (2005 até hoje);
  4. 4. Precisando mudar...Fatos: Área de tecnologia não conhece o negócio, mas domina as ferramentas de publicação; Área de comunicação conhece o negócio, mas não domina as ferramentas de publicação.Objetivo: Tornar simples a rotina de publicação Web !Solução: Adotar uma ferramenta de CMS !!
  5. 5. Decidindo migrar...Diretrizes para um portal do MPF Desenvolver um canal de comunicação para atender demandas da sociedade; Fortalecer uma identidade institucional para o MPF; Otimizar a navegação e localização de conteúdos; Unificar informações sobre a instituição; Atender critérios de acessibilidade, navegabilidade e homogeneidade.
  6. 6. Decidindo migrar...As secretarias de Comunicação Social e deTecnologia da Informação da PGR realizaramuma série de reuniões com objetivo deestabelecer uma parceria para gerenciar oPortal do MPF. Área de atuação: SECOM ficou responsável pela identidade visual e gerenciamento de conteúdo STI ficou responsável pela infra-estrutura tecnológica
  7. 7. Decidindo migrar...Avaliação das ferramentas disponíveis nomercado apontou para o Plone/Zope Custo / benefício, segurança e maturidade do produto; Suporte a múltiplos idiomas; Modular, expandindo suas funções; Software Livre; Integração a Diretório (LDAP); Base instalada, inclusive no Brasil.
  8. 8. Equipe de profissionaisSECOM: 5 profissionais dedicados exclusivamentepara cuidar das questões web. Compreendendo: 1 desenvolvedor 2 webdesigners 1 gestor de conteúdo 1 estagiárioSTI: 3 profissionais não dedicados que atendem àsdemandas existentes, compreendendo: 1 desenvolvedor 2 suporte à infra-estrutura
  9. 9. Cenário em 2005 Apache 2.0 (mod_proxy) ZOPE/Plone Data.fs
  10. 10. Cenário em 2006 DNSround-robin NCS Apache 2.0 (mod_proxy) ZOPE/Plone ZEO Data.fs OCFS2
  11. 11. Cenário em 2006DNS: resolução para 2 IPs: Round-robinZope 2.9.3 / Plone 2.5: Instalado em /usr/local Usando python 2.4.3 (/usr/local/bin)ZEO com um único Data.fs
  12. 12. Cenário em 2006: DesafiosAleatoriamente o processo do Zope ia a 100%de utilização de CPU Eventualmente descobria-se que algum objeto ao ser acessado fazia o Zope perder-se (algo como um loop infinito ou deadlock). Hoje sabemos que este problema é categorizado como Spinning Zope.Frequentes travamentos causados pelo OCFS2
  13. 13. Cenário em 2006: DesafiosBackup não realizado da forma indicada: cpBaixa performance
  14. 14. DificuldadesEncontrar uma documentação concisa e bemorganizada. Wiki: bastante esparso The Zope book: boa documentação, porém não tão user friendly.Mea culpa: talvez devesse ter assinadoalgumas listas de discussões.
  15. 15. ReestruturaçãoReorganização e reinstalação: A partir dos fontes e separadamente Códigos binários ou interpretados: Usando como PREFIX (top dir) /usr/webinfra Python 2.4.4: ./configure --with-prefix=/usr/webinfra Imaging (PIL), python-ldap, MySQL-python Zope 2.9.8: ./configure --with-prefix=/usr/webinfra --with-python=/usr/webinfra/bin/python
  16. 16. ReestruturaçãoReorganização e reinstalação: Plone 2.5.3-final Dados (Data.fs): /usr/webdata/var
  17. 17. Recuperação do Data.fsO tamanho do Data.fs estava em torno de ~5GB.A Wikipage ZODB/FileStorageBackupdocumenta utilitários como: repozo.py fstest.py fsrecover.py (em $PREFIX/lib/python/ZODB/)fstest.py apontou inconsistências.
  18. 18. Recuperação do Data.fsfsrecover.py recuperou e packeou. O Data.fs foi reduzido a ~3.5 GbSpinning Zope solucionado.Melhora (leve) na performance.
  19. 19. Dividir para ConquistarServidor ZEO em outra máquina Desinstalação do OCFS2 Perda da redundância Ganho em estabilidade
  20. 20. Dividir para Conquistar Apache 2.0 (mod_proxy) NCS ZOPE/Plone ZEO ZEO Data Files
  21. 21. Dividir para ConquistarDivisão dos Plone sites em vários Data.fs: Conselhos Informa Intranets Memorial Outros (PGR, PGE, Câmaras)
  22. 22. Uso de memóriaAumento do nº de objetos em memória <zodb_db main> mount-point / cache-size 20000 <zeoclient>....</zeoclient> </zodb_db> <zodb_db memorial> mount-point /memorialfs cache-size 10000 <zeoclient>....</zeoclient> </zodb_db> <zodb_db intranets> mount-point /intranets cache-size 10000 <zeoclient>....</zeoclient> </zodb_db>
  23. 23. Uso de memóriaOcupa em média 1.6Gb de RAM.Empiricamente não ultrapassa 2Gb Erro out of memory # ulimit -v unlimitedAumento considerável de performance
  24. 24. Web CachesUm dos métodos mais eficientes no aumentode performance de aplicações Web HTTP acceleratorRetém um objeto web durante um dado tempoMinimiza requisições ao ZopeMecanismos básicos Freshness, Validation, Invalidation
  25. 25. Web Caches1º experimento: Apache mod_expires Adiciona e/ou substitui o HTTP Header Expires Define quando o objeto torna-se velho Ignora mudanças no Plone Efeito colateral: o usuário vê um objeto antigo
  26. 26. Web Caches2º experimento: Apache mod_wodan Ignora qualquer header e define uma cacheabilidade de todos os objetos de uma página Versão estável para Apache 1.3 Versão RC para Apache 2.x Projeto aparentemente abandonado Resultados similares ao anterior
  27. 27. Web Caches3º experimento: Apache mod_cache A princípio segue os headers que definem a cacheabilidade de um objeto Implementação problemática no Apache 2.0 Média integração com o Plone (via CacheFu) Se for definido um tempo de expiração pequeno, os resultados são razoáveis Ainda gera muitas requisições ao Zope
  28. 28. Web Caches4º experimento: Proxy/Cache Squid Adaptado para funcionar como um HTTP accelerator Segue fielmente o definido nos HTTP headers Performático Ótima integração com o Plone (via CacheFu) Melhor resultado atingido
  29. 29. Política de backup e packingImplementados com scripts shell usandoferramentas ZEO e gerando logsPacking realizado todo sábadoBackups de terça à sábado Terça: completo Outros dias: incremental
  30. 30. Alguns dadosTamanho total dos ZEO Data files: ~8.3GBNúmero de Plone Sites: 24Sites mais acessados (março): PGR: 12.789.307 hits (972.309 páginas) Intranet: 8.865.709 hits (598.890 páginas) Notícias: 2.415.813 hits (411.642 páginas) PFDC: 1.167.363 hits (100.276 páginas)
  31. 31. Estrutura Atual Squid 2.6STABLE18 ZOPE/Plone ZEO Apache 2.0 (mod_proxy) ZOPE/Plone (para edição) ZEO Data Files
  32. 32. RecursosServidor IBM xSeries 346 (Intel Xeon 3.6 GHz /6 GB)Servidor Dell Power Edge 2950 (Intel Xeon 3GHz / 16 GB)Servidor IBM System x3400 (Intel Xeon 1.8GHz / 6 GB)Ambiente SAN: Storage IBM DS4500
  33. 33. Exemplo: Portal da PGR
  34. 34. Exemplo: Portal de notícias
  35. 35. Futuros trabalhosWeb Caches: Avaliar round-robin x SLB Avaliar o varnishSistemas de arquivos: Avaliar novas versões do OCFS2 (em andamento) Atualmente é usado o ext3 Compartilhar /usr/webinfra entre servidores Zope
  36. 36. Futuros trabalhosAlta disponibilidade: Certificação da alta disponibilidade via Storage DS4500 com RDAC (em andamento) Redistribuir alguns sites Reativar o Novell Cluster Services (NCS) Disponibilização de infra-estrutura para outras ProcuradoriasPerformance: Contínua avaliação da carga nos servidores
  37. 37. Obrigado ! Dúvidas ?http://www.pgr.mpf.gov.br Lucas Brasilino <lucas.brasilino@gmail.com> Mauro Cesar Sobrinho <mauro@pgr.mpf.gov.br>

×