otimizando portais plone: dicas de desempenho

Download Otimizando Portais Plone: Dicas de Desempenho

Post on 09-Jul-2015

1.181 views

Category:

Technology

0 download

Embed Size (px)

DESCRIPTION

Palestra realizada na pyconbrasil 2008

TRANSCRIPT

  • Otimizando Portais Plone: Dicas de Desempenho

    Douglas Soares de AndradePyCon 4 - Setembro/2008

  • Esta apresentao est sendo disponibilizada pela licena GNU/FDL e lhe d todos os direitos para cpia e utilizao de todo o contedo, desde que voc mantenha os crditos ao autor original.

    Licena de Uso

  • Problemas e Mitos

    Zope/Plone no funcionam para grandes Portais

    Zope no utiliza recursos de mquinas multiprocessadas

    Quem ouviu falar de Python ?! Zope/Plone ?!

    Principal: Aplicaes Zope/Plone no so iguais (no sentido de gerenciamento e manuteno) a aplicaes PHP !!!!!!

  • Problemas (Casa do Horrores)

  • Problema 01: Instncias no Front

    Instncias Zope/Plone sendo acessadas diretamente (instncias Rambo)

  • Soluo 01: Instncias no Front

    Utilizar um servidor de cache (squid/varnish) to importante no mundo Zope quanto o

    controle de verso no mundo do desenvolvimento

    Aumento exponencial da performance

  • Problema 02: Alta disponibilidade

    Vrias pessoas afirmam que NO possvel desenvolver solues de alta disponibilidade com o Zope

    Ops, problemas de hardware. Portal fora ?

  • Soluo 02: Alta disponibilidade

    At pouco tempo, no era possvel (Sem utilizar ferramentas opensource e gratuitas)

    Felizmente isso mudou com o RelStorage (palestra do Rogrio)

    O que isso tem a ver com performance ?

  • Problema 03: Arquivos no ZODB

    Arquivos enormes sendo armazenados diretamente no ZODB

  • Soluo 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)

  • Problema 04: Cdigos

    Cdigos que utilizam getObject para pegar informaes simples que esto disponveis nos indices do catlogo

    Pense no problema anterior (arquivos de 50mb, 100mb) sendo acessados via getObject para pegar apenas o ttulo do Objeto

  • Soluo 04: Cdigos

    Utilizar getObject apenas em ltimo caso Em todos os outros casos, utilize as

    informaes que j esto disponveis no catlogo ou crie novos indices (imagens)

    Sempre ter cuidado com a mega ultra power resoluo de um problema

  • Problema 05: Infraestrutura no otimizada

    Alguns administradores costumam criar ambientes com as configuraes de fbrica e no se preocupam com a performance por causa do mito:

    Zope lento mesmo ! No adianta mexer em nada (Castas)

  • Soluo 05: Infraestrutura no otimizada

    Otimizao prematura a causa de todo o mal !

    preciso analisar cuidadosamente a arquitetura e todos os componentes que devero ser utilizados

    Exemplo: Squid

    Cache Peers Storage (UFS) Tamanho de objetos a serem cacheados

  • Problema 06: Servers Multiprocessados

    Zope com apenas uma instncia no utiliza diversos cores

    100% em um core e 0% nos outros 15 O cliente no quer saber do GIL do python e

    sim de uma soluo...

  • Soluo 06: Servers Multiprocessados

    que existe ! Utilize um servidor ZEO com vrias

    instncias (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)

  • Problema 07: Profilers Esquecidos

    Legal ! Voc utilizou um profiler para determinar onde estava o problema de performance

    S que... Ele ficou l =)

  • Soluo 07: Profilers Esquecidos

    Tatuar no brao: Eu desabilito o meu profiler =)

    Sempre lembre de desabilitar o profiler quando o portal for para produo

  • Problema 08: O quase off-topic

    Toma-que--teu

  • Soluo 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 soluo estabilize)

    Por fim: Novamente, Zope no PHP !!

  • Outras Dicas Valiosas

    Essa veio do Youtube, mas cai como uma luva: Cada um no seu quadrado !

    Utilize Varnish (O server de cache) =)

  • Outras Dicas Valiosas

    O diagrama do Quadrado =)

  • E se nada resolver ?!

    Utilize deploy esttico Utilize nginx Frozer (Weimar) Chute (no testado wget -m)

  • Agradecimentos

  • Agradecimentos

  • Fala que eu te escuto =)

  • Email : douglas@archlinux.org douglas.andrade@3pw.com.br

    MSN : douglas@tuxfamily.orgJabber : dsandrade@jabber.orgGtalk : dsandrade@gmail.com

    Muito Obrigado =)

    Contato

    Iniciando Portais em PloneAgendaSlide 3Slide 4O que Python?O que Zope?Slide 7Slide 8Slide 9Slide 10Slide 11O que Plone?Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Para falar comigo ...Slide 27