Otimizando Portais Plone: Dicas de Desempenho

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Otimizando Portais Plone: Dicas de Desempenho - Presentation Transcript

    1. Otimizando Portais Plone: Dicas de Desempenho Douglas Soares de Andrade PyCon 4 - Setembro/2008
    2. Licença de Uso Esta apresentação está sendo disponibilizada pela licença GNU/FDL e lhe dá todos os direitos para cópia e utilização de todo o conteúdo, desde que você mantenha os créditos ao autor original.
    3. Problemas e Mitos • Zope/Plone não funcionam para grandes Portais • Zope não utiliza recursos de máquinas multiprocessadas • Quem ouviu falar de Python ?! Zope/Plone ?! • Principal: Aplicações Zope/Plone não são iguais (no sentido de gerenciamento e manutenção) a aplicações PHP !!!!!!
    4. Problemas (Casa do Horrores)
    5. Problema 01: Instâncias no “Front” • Instâncias Zope/Plone sendo acessadas diretamente (instâncias “Rambo”)
    6. Solução 01: Instâncias no “Front” • Utilizar um servidor de cache (squid/varnish) – É tão importante no mundo Zope quanto o controle de versão no mundo do desenvolvimento • Aumento exponencial da performance
    7. Problema 02: Alta disponibilidade • Várias pessoas afirmam que NÃO é possível desenvolver soluções de alta disponibilidade com o Zope • Ops, problemas de hardware. Portal fora ?
    8. Solução 02: Alta disponibilidade • Até pouco tempo, não era possível (Sem utilizar ferramentas opensource e gratuitas) • Felizmente isso mudou com o RelStorage (palestra do Rogério) • O que isso tem a ver com performance ?
    9. Problema 03: Arquivos no ZODB • Arquivos enormes sendo armazenados diretamente no ZODB
    10. Solução 03: Arquivos no ZODB • Utilizar o produto FileSystemStorage para armazenar os arquivos no sistema de arquivos do servidor ou em um ponto de rede (cuidado com pontos de falha)
    11. Problema 04: Códigos • Códigos que utilizam getObject para pegar informações simples que estão disponíveis nos indices do catálogo • Pense no problema anterior (arquivos de 50mb, 100mb) sendo acessados via getObject para pegar apenas o título do Objeto
    12. Solução 04: Códigos • Utilizar getObject apenas em último caso • Em todos os outros casos, utilize as informações que já estão disponíveis no catálogo ou crie novos indices (imagens) • Sempre ter cuidado com a mega ultra power resolução de um problema
    13. Problema 05: Infraestrutura não otimizada • Alguns administradores costumam criar ambientes com as configurações “de fábrica” e não se preocupam com a performance por causa do mito: – Zope é lento mesmo ! Não adianta mexer em nada (Castas)
    14. Solução 05: Infraestrutura não otimizada • Otimização prematura é a causa de todo o mal ! • É preciso analisar cuidadosamente a arquitetura e todos os componentes que deverão ser utilizados • Exemplo: – Squid • Cache Peers • Storage (UFS) • Tamanho de objetos a serem cacheados
    15. Problema 06: Servers Multiprocessados • Zope com apenas uma instância não utiliza diversos cores • 100% em um core e 0% nos outros 15 • O cliente não quer saber do GIL do python e sim de uma solução...
    16. Solução 06: Servers Multiprocessados • … que existe ! • Utilize um servidor ZEO com várias instâncias (cuidado com isso !) e deixe o kernel determinar pra onde cada processo vai • Eu quero determinar pra qual core o meu processo vai – taskset (afinidade)
    17. Problema 07: Profilers Esquecidos • Legal ! Você utilizou um profiler para determinar onde estava o problema de performance • Só que... Ele ficou lá =)
    18. Solução 07: Profilers Esquecidos • Tatuar no braço: “Eu desabilito o meu profiler “ =) • Sempre lembre de desabilitar o profiler quando o portal for para produção
    19. Problema 08: O quase off-topic • Toma-que-é-teu
    20. Solução 08: O quase off-topic • Preparar a equipe para administrar Zope/Plone • O Zope é carente – Ele precisa de carinho e acompanhamento constante (na verdade, apenas até que a solução estabilize) • Por fim: Novamente, Zope não é PHP !!
    21. Outras Dicas Valiosas • Essa veio do Youtube, mas cai como uma luva: Cada um no seu quadrado ! • Utilize Varnish (“O” server de cache) =)
    22. Outras Dicas Valiosas • O diagrama do “Quadrado” =)
    23. E se nada resolver ?! • Utilize deploy estático – Utilize nginx – Frozer (Weimar) – Chute (não testado – “wget -m”)
    24. Agradecimentos
    25. Agradecimentos
    26. Fala que eu te escuto =)
    27. Contato Email : douglas@archlinux.org douglas.andrade@3pw.com.br MSN : douglas@tuxfamily.org Jabber : dsandrade@jabber.org Gtalk : dsandrade@gmail.com Muito Obrigado =)

    + dsandradedsandrade, 2 years ago

    custom

    352 views, 1 favs, 0 embeds more stats

    Palestra realizada na pyconbrasil 2008

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 352
      • 352 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 7
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories