Administracao de infraestrutura_zope_plone

554 visualizações

Publicada em

Publicada em: Espiritual
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
554
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
14
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Administracao de infraestrutura_zope_plone

  1. 1. 2012 Administração de infraestrutura Zope/Plone Apostila para treinamento presencial
  2. 2. Administração de infraestrutura Zope/PloneEste material é de livre uso e divulgação desde que preservada as citações de suas fontes.As autorizações devem ser solicitadas para: contato@produtivati.com.br 2
  3. 3. Administração de infraestrutura Zope/Plone CONTROLEde Treinamento Apostila DE VERSÕES ZOPE /Plone Apostila de treinamento presencial de Zope e Plone – nível 200 Versão Data Autor(es) Alterações 0.1 Apostila Curso Zope/Plone 17/11/2011 deProdutivaTI Criação do documento 0.8 02/01/2012 Produtiva TI Revisão pelo Instrutor 1.0 05/01/2012 Versão 1.1 ProdutivaTI Liberação da versão 1.0 1.1 29/03/2012 Produtiva TI Revisão e ajuste do material Março de 2012Agradecimentos: Lucas Aquino Tania Moreira Douglas Soares de Andrade, autor da palestra Otimizando Portais Plone A comunidade Plone que nos ajudou a produzir este material. 3
  4. 4. Administração de infraestrutura Zope/PloneSumárioTable of ContentsSOBRE O TREINAMENTO........................................................................................................ 6CAPITULO 1.............................................................................................................................7 Introdução.......................................................................................................................... 7 CONCEITOS BÁSICOS DO ZOPE/PLONE.........................................................................10 PYTHON.........................................................................................................................12 ZOPE..............................................................................................................................13 PLONE ...........................................................................................................................15 ARQUITETURA...............................................................................................................16 REQUISITOS PARA INSTALAÇÃO DO PLONE 4...............................................................17 PACOTES NECESSÁRIOS ................................................................................................19 NESTE CAPÍTULO VOCÊ VIU.......................................................................................... 23 REVISÃO DO CAPÍTULO 1..................................................................................................25 REVISÃO DO CAPÍTULO 1 (respostas)...............................................................................27 EXERCÍCIOS DO CAPÍTULO 1............................................................................................. 29 Laboratório 1.................................................................................................................... 29CAPITULO 2...........................................................................................................................30 Introdução........................................................................................................................ 30 INTRODUÇÃO A SEGURANÇA DA INFORMAÇÃO EM ZOPE/PLONE..............................32 GERENCIAMENTO DE USUÁRIOS......................................................................................33 SEGURANÇA.................................................................................................................. 33 PERMISSÕES PADRÃO...................................................................................................35 INTERFACE DE GERENCIAMENTO ZOPE (ZMI).............................................................. 37 4
  5. 5. Administração de infraestrutura Zope/Plone COMO CRIAR UM NOVO USUÁRIO/GRUPO..................................................................... 39 POLÍTICA PARA CRIAÇÃO E MANUTENÇÃO.................................................................. 39 PAPÉIS LOCAIS E COMPARTILHAMENTO..........................................................................41 CONTROLE DE ACESSO POR MEIO DE WORKFLOW......................................................... 43 NESTE CAPÍTULO VOCÊ VIU.......................................................................................... 45 REVISÃO DO CAPÍTULO 2..................................................................................................46 REVISÃO DO CAPÍTULO 2 (respostas)...............................................................................48 Laboratório 02.................................................................................................................. 50CAPITULO 3..........................................................................................................................52 Introdução........................................................................................................................ 52 OTIMIZAÇÃO DE DESEMPENHO....................................................................................... 54 PARÂMETROS QUE PODEM SER AJUSTADOS............................................................... 54 ZEO................................................................................................................................ 56 VARNISH........................................................................................................................58 plone.app.caching - Políticas de cache.............................................................................61 DESCRIÇÃO DAS POLÍTICAS DE CACHE..........................................................................61 QUANDO APLICAR CADA TIPO DE POLÍTICA.................................................................63 BACKUP e RESTORE.......................................................................................................... 66 REPOZO......................................................................................................................... 68 REVISÃO DO CAPÍTULO 3..................................................................................................70 EXERCÍCIOS DO CAPÍTULO 3............................................................................................. 71 REVISÃO DO CAPÍTULO 3 (respostas)...............................................................................73 Laboratório 3.................................................................................................................... 75 5
  6. 6. Administração de infraestrutura Zope/PloneSOBRE O TREINAMENTO 6
  7. 7. Administração de infraestrutura Zope/PloneCAPITULO 1IntroduçãoVamos conceituar todas as ferramentas que serão usadas nesse curso.Plone, um Sistema Gerenciador de Conteúdo (CMS - Content Management System) livre ede código aberto, escrito em Python e que roda utilizando o servidor de aplicações Zope.Seu principal objetivo é facilitar a criação, edição, publicação e distribuição deinformação. Focado no usuário com pouco conhecimento técnico, apresenta umaplataforma intuitiva.Zope, um ambiente para a construção e gerenciamento de aplicações Web com foco noseu conteúdo. Ele interpreta os fragmentos de códigos ZPT e DTML em seus templates egera uma saída HTML compreensível para qualquer navegador WebPython, uma linguagem de programação de alto nível, interpretada, imperativa, orientadaa objetos, de tipagem dinâmica e forte. Atualmente possui um modelo dedesenvolvimento comunitário, aberto e gerenciado pela organização sem fins lucrativosPython Software FoundationAlém de especificações de instalação, pré-requisitos e sistema operacionais. Sabendo quepara instalar os produtos necessita ter acesso como usuário root e internet. 7
  8. 8. Administração de infraestrutura Zope/PloneNeste Capítulo você verá • Introdução a: o SGC 8
  9. 9. Administração de infraestrutura Zope/Plone o Zope o Plone o Python o Arquitetura• Requisitos de instalação do Plone 4 o Sistema Operacional o Hardware o Pacotes necessários o Atualizações 9
  10. 10. Administração de infraestrutura Zope/PloneCONCEITOS BÁSICOS DO ZOPE/PLONESistema de Gestão de Conteúdo (SGC) - do inglês Content Management Systems (CMS) éum sistema gestor de websites, e intranets que integra ferramentas necessárias para gerir(inserir, editar e excluir) conteúdos on line sem a necessidade de programação de código,cujo objetivo é estruturar e facilitar a criação, administração, distribuição, publicação edisponibilidade da informação. Uma boa vantagem em usar o Plone é a grandequantidade de funções presentes através de complementos (galerias de fotos,gerenciadores de enquetes, gerenciadores de formulários) que podem ser agregados aoSGC.Um CMS é semelhante a um framework (um esqueleto) de website pré-estruturado, comrecursos básicos de: usuabilidade, visualização e administração já prontamentedisponíveis. É um sistema que permite a criação, armazenamento e administração deconteúdos de forma dinâmica, através de uma interface de acesso via Internet. 10
  11. 11. Administração de infraestrutura Zope/PloneUm CMS permite que a empresa tenha total autonomia sobre o conteúdo e evolução dasua presença na internet e dispense a assistência de terceiros ou empresas especializadaspara manutenções de rotina. Nem mesmo é preciso um funcionário dedicado(webmaster), pois cada membro da equipe poderá gerir seu próprio conteúdo,diminuindo os custos com recursos humanos. A habilidade necessária para trabalhar comum CMS não vai muito além dos conhecimentos necessários para um usuário de umsimples editor de texto.Com soluções prontas e totalmente customizáveis reduz o tempo de implementação,porque permite que o esforço se concentre em soluções específicas e na produção dolayout. É possível construir um site completo, com diversas funcionalidades, sem anecessidade de desenvolver códigos complexos em linguagem de programação.Outra facilidade é que possui sistema de workflow, segurança e funções pré-configuradase suporte a várias línguas, permitindo que a sua administração seja desmistificada.Com uma comunidade numerosa, recebe em construção e manutenção, a contribuição dedesenvolvedores em todo o mundo.Um aspecto importante, é que mesmo sendo uma ferramenta muito intuitiva, o Ploneainda abre espaço para uma grande customização de sua aparência e estrutura denavegação. Há a possibilidade de personalizar o site através da escolha de cores, imagense posicionamentos de diversos componentes. Ainda, num nível mais avançado, autilização do Plone dá conta da implementação de novas funcionalidades por parte dedesenvolvedores de software, que podem ser agregadas a estrutura já existente. 11
  12. 12. Administração de infraestrutura Zope/PlonePYTHONPython é uma linguagem de programação de alto nível, interpretada, imperativa,orientada a objetos, de tipagem dinâmica e forte. Foi lançada por Guido van Rossum em1991. Atualmente possui um modelo de desenvolvimento comunitário, aberto egerenciado pela organização sem fins lucrativos Python Software Foundation. Apesar devárias partes da linguagem possuírem padrões e especificações formais, a linguagemcomo um todo não é formalmente especificada. O padrão de fato é a implementaçãoCPython.A linguagem foi projetada com a filosofia de enfatizar a importância do esforço doprogramador sobre o esforço computacional. Prioriza a legibilidade do código sobre avelocidade ou expressividade. Combina uma sintaxe concisa e clara com os recursospoderosos de sua biblioteca padrão e por módulos e frameworks desenvolvidos porterceiros. 12
  13. 13. Administração de infraestrutura Zope/PloneZOPEZope é um ambiente para a construção e gerenciamento de aplicações Web com foco noseu conteúdo. Ele interpreta os fragmentos de códigos ZPT e DTML em seus templates egera uma saída HTML compreensível para qualquer navegador Web. Ou seja, as páginasde um servidor Zope são geradas dinamicamente, no momento em que o servidor recebeo pedido do browser, mesclando esses dois componentes.O Zope CMF (Content Management Framework) prevê uma plataforma poderosa ecustomizavel para construção de aplicações de ger ência de conteúdo com o Zope.Os objetos que o Zope publica na Web são escritos em linguagem Python e armazenadosem seu banco de dados, orientado a objetos, o ZODB (Zope Object Database).Dessaforma, tudo o que aparece em um site Zope, como por exemplo, páginas web, imagens,links ou arquivos, são objetos e armazenados por padrão em banco de dados. 13
  14. 14. Administração de infraestrutura Zope/PloneO Zope é um ambiente bastante amigável e tem características muito importantes que ofazem se destacar: • Mapeia e acessa objetos passados na URL do navegador, respeitando as permissões de segurança e de acesso; • Armazena as versões antigas de um objeto, o que permite desfazer alterações, controlar versões de documentos colaborativos e revisões. • O Zope só interpreta códigos escritos em DTML ou ZPT. O que não estiver nesses padrões é repassado para o navegador. Isso permite que estruturas escritas em Javascript, CSS, etc, passam ser utilizadas normalmente. • Pode ser usado em todas as plataformas: Unix, Linux, Mac OS e em todas as versões do Window 14
  15. 15. Administração de infraestrutura Zope/PlonePLONEO Plone é um Sistema Gerenciador de Conteúdo (CMS - Content Management System)livre e de código aberto, escrito em Python e que roda utilizando o servidor de aplicaçõesZope. Seu principal objetivo é facilitar a criação, edição, publicação e distribuição deinformação. Focado no usuário com pouco conhecimento técnico, apresenta umaplataforma intuitiva. 15
  16. 16. Administração de infraestrutura Zope/PloneARQUITETURA 16
  17. 17. Administração de infraestrutura Zope/PloneREQUISITOS PARA INSTALAÇÃO DO PLONE 4O Plone 4 possui uma instalação automática que já inclui tudo o que é necessário paraque ele seja executado. O instalador está acessível para download emhttp://plone.org/products/plone/releases/ e disponível para os seguintes sistemasoperacionais: Linux BSD Windows 17
  18. 18. Administração de infraestrutura Zope/Plone OS XÉ necessário que o servidor onde vai ocorrer a instalação tenha acesso a internet e que ousuário possua credenciais de administrador na máquina, ou ao menos as seguintespermissões: • Acesso ao console de comando • Permissão para executar serviços e processos no servidor • Permissão para habilitar portas no servidorOs requisitos de hardware dependem da quantidade de sites que compõem o portal,previsão de acessos simultâneos e da infraestrutura de segurança, entretanto para umportal com 100 acessos simultâneos é necessário que o servidor possua ao menos: • Processos de 2 núcleos com no mínimo 1.2 GHZ. • 500 GB de espaço em HD. • 2 GB de memória RAM 18
  19. 19. Administração de infraestrutura Zope/PlonePACOTES NECESSÁRIOSSeu ambiente deve estar com o acesso à internet configurado.[Os comandos a seguir foram criados para o Ubuntu. Pequenas adaptações podem sernecessárias para outros ambientes]Para executar os comandos abaixo você precisará ter acesso a privilégios de root. 1. Atualizar a lista de pacotes:$ sudo aptitude update 2. Instalar as bibliotecas padrões para compilação (gcc e outros, que serão necessários mais adiante): 19
  20. 20. Administração de infraestrutura Zope/Plone$ sudo aptitude install build-essential$ sudo apt-get install gcc g++ make$ sudo apt-get install subversion git$ sudo apt-get install zlib1g-dev$ sudo apt-get install python-setuptools$ sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev$ python -vv -c "import _imaging" 3. Instalar virtualenv$ git clone https://github.com/collective/buildout.python OU baixar ZIP no mesmoendereco$ cd buildout.python$ python bootstrap.py$ bin/buildout -vv 4. Criar o ambiente env(virtualenv)$ ~/buildout.python/bin/virtualenv26 ~/virtualPy26 --no-site-packages$ cd ~/virtualPy26/binAtivando o virtualenv:$ source ./activate(virtualPy26)$ 20
  21. 21. Administração de infraestrutura Zope/Plone 5. Criar buildout de instalação.(virtualPy26)$ ./easy_install zopeskel == 2.19(virtualPy26)$ sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib(virtualPy26)$ sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib(virtualPy26)$ sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib(virtualPy26)$ ./pip install -U PILnote :: http://collective-docs.readthedocs.org/en/latest/tutorials/paste.html(virtualPy26)$ ./paster create --list-templates(virtualPy26)$ ./paster create -t plone4_buildout plone4Versão do Plone 4.1.3(virtualPy26)$ mkdir ~/instancias(virtualPy26)$ mv plone4 ~/instancias 6. Instalação do Plone 4Criar um backup do buildout:(virtualPy26)$ mkdir ~/bkp(virtualPy26)$ cp -r ~/instancia/plone4 ~/bkp 21
  22. 22. Administração de infraestrutura Zope/PloneAcessar o buildout de instalação do Plone 4:(virtualPy26)$ cd ~/instancia/plone4(virtualPy26)$ python bootstrap.py(virtualPy26)$ bin/buildout -vvApós processo de baixar e instalar os pacotes, iniciar o servico do Zope:(virtualPy26)$ ~/instancia/plone4/bin/instance fgnote :: Caso não funcione a imagem(virtualPy26)$ wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz(virtualPy26)$ tar -zxvf Imaging-1.1.7.tar.gz(virtualPy26)$ cd Imaging-1.1.7(virtualPy26)$ python setup.py install 22
  23. 23. Administração de infraestrutura Zope/PloneNESTE CAPÍTULO VOCÊ VIU • Introdução a: o Zope e PloneO Plone é um Sistema Gerenciador de Conteúdo (CMS - Content Management System)livre e de código aberto, escrito em Python e que roda utilizando o servidor de aplicaçõesZope. o PythonPython é uma linguagem de programação de alto nível, interpretada, imperativa,orientada a objetos, de tipagem dinâmica e forte. Foi lançada por Guido van Rossum em1991. o Arquitetura 23
  24. 24. Administração de infraestrutura Zope/PloneO Plone é um gerenciador de conteúdo, escrito em Python, que roda sob o servidor deaplicações Zope, utilizando o framework CMF – Content Management Framework. • Requisitos de instalação do Plone 4 o Sistema OperacionalLinux, Windows e MacOS. o Hardware1.2GHz, 2GB RAM e 500GB de HD. o Pacotes necessários e Atualizações • Bibliotecas padrões para compilação • Virtualenv • PIL • Zopeskel 24
  25. 25. Administração de infraestrutura Zope/PloneREVISÃO DO CAPÍTULO 1 1) O Plone é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 2) O Python é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 3) O Zope é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 4) O Plone pode ser instalado em (selecione todas as corretas) a. Windows b. Linux c. Mac OS 25
  26. 26. Administração de infraestrutura Zope/Plone d. iOS5) É correto afirmar que: a. O Plone é uma linguagem de programação de fácil aprendizagem. b. O Python é utilizado para fazer gestão de conteúdo c. O Zope nada mais é do que um framework para desenvolvimento de sistemas d. O Zope tem CMF 26
  27. 27. Administração de infraestrutura Zope/PloneREVISÃO DO CAPÍTULO 1 (respostas) 1) O Plone é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 2) O Python é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 3) O Zope é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 4) O Plone pode ser instalado em (selecione todas as corretas) a. Windows b. Linux c. Mac OS d. iOS 27
  28. 28. Administração de infraestrutura Zope/Plone5) É correto afirmar que: a. O Plone é uma linguagem de programação de fácil aprendizagem. b. O Python é utilizado para fazer gestão de conteúdo c. O Zope nada mais é do que um framework para desenvolvimento de sistemas d. O Zope tem CMF 28
  29. 29. Administração de infraestrutura Zope/PloneEXERCÍCIOS DO CAPÍTULO 1Laboratório 1 1) Criar uma nova instalação da instância do Plone 4, utilizando o virtualenv e o buildout. 2) Altere o acesso da porta padrão 8080 de acesso HTTP para a porta 8484. 3) Adicionar novo Plone Site com o id: portal_dev 29
  30. 30. Administração de infraestrutura Zope/PloneCAPITULO 2IntroduçãoMostraremos algumas maneiras possíveis para melhorar a segurança do seu Plone site,além dos tipos de usuários possíveis, adicionando papéis e permissões. Criando grupos eworkflows.A segurança do Zope/Plone se dá com um bom gerenciamento dos papéis atribuídos,sendo posto de forma correta para não fugir do controle o manuseio dos conteúdos doseu Plone site.O administrador do Plone site deve seguir uma forma melhor distribuída dos seus papéise permissões, também criando grupos que são formas convenientes de administrarpapéis (assim como permissões) para uma grande quantidade de usuáriossimultaneamente.Os papéis padrões são: “Member”, “Manager” e “Reviewer”. Existem também algunspapéis nativos, como “Owner” e “Anonymous” e “Authenticated”.As permissões mais comuns são “View”, “Modify portal content”, “Access contentsinformation” e “List folder contents”.Workflows servem para dois propósitos - representar a evolução de um pedaço deconteúdo, desde a criação, através dos ciclos de revisão, até o estado final, e paracontrolar as permissões para o conteúdo em cada estado. 30
  31. 31. Administração de infraestrutura Zope/PloneNeste Capítulo você verá • Introdução a: o Segurança da Informação em Zope/Plone • Gerenciamento de Usuários: o Permissões Padrão o Criar Usuários o Criar Grupos o Papéis locais e Compartilhamento o Controle de acesso por meio de Workflow 31
  32. 32. Administração de infraestrutura Zope/PloneINTRODUÇÃO A SEGURANÇA DA INFORMAÇÃO EM ZOPE/PLONEO Plone utiliza uma combinação de permissões de baixo nível, papéis, papéis locais efluxos de trabalho (sistema de workflow) para gerenciar as permissões dos objetos.Entender isso ajudará a gerenciar como e por quem seu site Plone é acessado. 32
  33. 33. Administração de infraestrutura Zope/PloneGERENCIAMENTO DE USUÁRIOSSEGURANÇAO Plone utiliza uma combinação de permissões de baixo nível, papéis, papéis locais,grupos e fluxos de trabalho (sistema de workflow) para gerenciar as permissões dosobjetos. Entender isso ajudará a gerenciar como e por quem o seu site Plone é acessado.Permissões são objetos de baixo nível - elas especificam o que um usuário A pode fazerexatamente, mas não B em um determinado contexto. Permissões são usadas comoguardas no acesso a métodos, scripts, templates, transições de workflow e algumas vezesem componentes individuas na página.A segurança do Zope/Plone se da com um bom gerenciamento dos papéis atribuídos,sendo posto de forma correta para não fugir do controle o manuseio do conteúdo do 33
  34. 34. Administração de infraestrutura Zope/Ploneportal. O administrador do portal deve seguir uma forma melhor distribuída daspermissões. 34
  35. 35. Administração de infraestrutura Zope/PlonePERMISSÕES PADRÃOPermissões são atribuídas a papéis de usuários (user roles), não a usuáriosindividualmente. Logo, costuma-se dizer que, na pasta X, qualquer usuário comRandomRole tem permissão para modificar o conteúdo do portal. Os papéis padrõessão: • Anonymous (anônimo) • Autehticated (autenticado) • Contributor (Colaborador) • Editor • Manager (Administrador) • Member (Membro) 35
  36. 36. Administração de infraestrutura Zope/Plone • Owner (Dono) • Reader (Leitor) • Reviwer (Revisor)Algumas deles são nativos, como Owner , Anonymous e Authenticated.O papel ANONYMOUS é atribuído a todo usuário que não está autenticado.A maioria dos membros de um portal possui o papel de MEMBER, mas isso não égarantido.OWNER somente se aplica quando o atual usuário é o dono de um determinadoconteúdo.As permissões mais comuns são: • View • Modify portal content • Access contents information • List folder contentsConhecidas como as "CMF Core permissions", localizadas no arquivoProducts.CMFCore.permissions.py’ em variáveis como View e ModifyPortalContent.Em geral, a maioria dos tipos de conteúdo usam essas permissões para acessar emodificar dados. 36
  37. 37. Administração de infraestrutura Zope/PloneINTERFACE DE GERENCIAMENTO ZOPE (ZMI)Na Interface de Gerenciamento do Zope (ZMI), quase todos os objetos possuem uma abaSecurity, nela podemos verificar uma longa listagem de permissões atribuídas a papéis.A maioria delas está marcada com Acquire permission settings, significando que aspermissões concedidas a estes papéis são as mesmas do objeto pai. Definições desegurança no Zope são aditivas, logo se você mantiver a opção Acquire marcada eadicionar outros papéis, você obterá os papéis configurados para os níveis superiores(objeto pai) somados aos papéis configurados neste nível. Você pode parar essa aquisiçãohereditária de regras desmarcando a opção Acquire.Na maioria dos casos, você não irá modificar permissões dessa forma, exceto aoconfigurar padrões globais para permissões diferentes das permissões centrais acima. Oauto-registro , ou seja , a permissão para que os próprios usuários se registrem no site , 37
  38. 38. Administração de infraestrutura Zope/Plonenão vem mais habilitada como em versões anteriores do Plone . Logo , só administradoresdo site podem adicionar novos usuários inicialmente.Você pode livremente adicionar papéis conforme sua necessidade. Como membrospodem possuir mais de um papel simultaneamente, você provavelmente só precisa sepreocupar com um subconjunto de permissões quando se trata de atribui-las para umnovo papel. Use o formulário na parte inferior da guia Security na raiz do portal paraadicionar e remover papéis.Usuários podem ser associados a papéis manualmente usando a pasta de usuáriosacl_users / portal_role_manager na raiz de sua instância Plone. Entretanto, é maiscomum e indicado atribuir papéis a grupos e então adicionar usuários nos grupos, comodescrito na próxima seção. 38
  39. 39. Administração de infraestrutura Zope/PloneCOMO CRIAR UM NOVO USUÁRIO/GRUPOPOLÍTICA PARA CRIAÇÃO E MANUTENÇÃOO Plone adiciona o conceito de um grupo de usuários ao modelo básico de segurança doZope. Grupos são formas convenientes de administrar papéis (assim como permissões)para uma grande quantidade de usuários simultaneamente.Usuários podem estar em grupos - gerenciados por meio da tela de administração deusuários e grupos nas Configurações do Site. Papéis podem ser atribuídos a grupos deacordo com a necessidade - todos os usuários neste grupo receberão o papel atribuído aogrupo.É bastante incomum que somente um usuário receba determinado papel. É mais provávelque grupos de usuários possuam os mesmos papéis no portal - e mesmo quando existe 39
  40. 40. Administração de infraestrutura Zope/Ploneapenas um usuário (por exemplo, apenas um gestor do site), é valido criar um grupo paraatender a possibilidade de haver mais usuários no futuro. Como os usuário podem estarem vários grupos ao mesmo tempo, você pdoe ter um controle preciso sobre aspermissões e classificações de usuários que utilizam esse mecanismo.Por padrão o Plone vem com dois grupos administrators e reviewers e na criação de umnovo usuário já vem a opção de adicioná-los nestes grupos.No capítulo anterior mostramos como criar novos papéis no portal. Utilizando aferramenta de administração de usuários e grupos nas Configurações do Site, você podefacilmente associar papéis a grupos – simplesmente marque as caixas relevantes e salve.Para associar usuários ao grupo, clique no grupo pesquise, marque os usuários relevantese clique no botão adicionar. Uma vez dentro de um grupo, o usuário ganhará todos ospapéis atribuídos para aquele grupo além de quaisquer papéis atribuídos apenas paraaquele usuário. 40
  41. 41. Administração de infraestrutura Zope/PlonePAPÉIS LOCAIS E COMPARTILHAMENTOFrequentemente você necessitará dar permissões específicas a um usuário ou grupo emuma área peculiar do seu site, mas não em todo ele.A aba Compartilhamento em um conteúdo padrão do Plone é o que dá a você diferentespermissões em diferentes áreas. Se ela não é exibida, você pode localizá-la adicionando@@sharing ao final da URL.No formulário de papéis locais, você pode pesquisar por outros usuários ou grupos eassociar-lhes papéis, além de poder isolar as permissões locais desmarcando a herançade níveis superiores .Atualmente os papéis locais podem ser adicionados em um nível mais baixo na árvore deaquisição, mas não poderão ser retirados. Significa que, se você dá a um usuário 41
  42. 42. Administração de infraestrutura Zope/Plonepermissões de gerente (um papel global) em /stuff, não há como previni-lo de terpermissões de gerente em /stuff/documents. 42
  43. 43. Administração de infraestrutura Zope/PloneCONTROLE DE ACESSO POR MEIO DE WORKFLOWNa maioria dos casos, workflows, geridos através da ferramenta portal_workflow, são aforma correta de gerenciamento de permissões em seu conteúdo.Estados do Workflow são exibidos em objetos contidos no menu drop-down – “Estado”no canto superior-direito, na aba visão de um conteúdo que você possua permissão paraeditar. A lista deste menu são as transições que você pode utilizar entre os estados doworkflow. Por exemplo, para mover de private (estado padrão) para o published vocêutiliza a transição publish. Todo tipo de conteúdo ou não possui workflow (raro) ou possuiexatamente um associado a ele. Isso é configurado através da ferramentaportal_workflow. A aba de conteúdo desta ferramenta na ZMI exibe os workflowsinstalados atualmente. Você pode adicionar ou modificar workflows através dessa GUI.Lembre-se de configurar o estado padrão, transições e permitir transições entre osestados. 43
  44. 44. Administração de infraestrutura Zope/PloneO mecanismo do workflow irá gerenciar certo número de permissões e configurá-lascorretamente quando o estado de um objeto é mudado.É importante atualizar as configurações de segurança clicando em Update securitysettings na base da aba Workflows dentro de portal_workflow na ZMI.Desta forma, workflows servem para dois propósitos - representar a evolução de umpedaço de conteúdo, desde a criação, através dos ciclos de revisão, até o estado final, epara controlar as permissões para o conteúdo em cada estado. Se você tem necessidadesparticulares, você deve criar um novo, configurar os estados e transições necessárias,fazer o workflow gerenciar um certo conjunto de permissões e configurar o mapeamentode papéis-permissões para cada estado no workflow. Você pode controlar quem tem aliberdade de alterar as permissões 44
  45. 45. Administração de infraestrutura Zope/PloneNESTE CAPÍTULO VOCÊ VIU 45
  46. 46. Administração de infraestrutura Zope/PloneREVISÃO DO CAPÍTULO 2 1) É uma das maneiras de manter a Segurança do Zope/Plone: a. Manter poucos usuários b. Não permitir criação de grupos c. Bom gerenciamento dos papéis atribuídos, sendo posto de forma correta para não fugir do controle o manuseio dos conteúdos. 2) São "papéis" padrão: a. Member; Manager b. View; Modify c. Member; View d. Anonymous; Modify 3) Quando criamos um novo usuário, por padrão qual papel ele recebe: a. Member b. View c. Anonymous d. Administrador 4) É correto afirmar que: a. Quando dentro de um grupo, o usuário ganhará todos os papéis atribuídos para aquele grupo além de quaisquer papéis atribuídos apenas para aquele usuário. b. Não conseguimos administrar papéis por Grupos 46
  47. 47. Administração de infraestrutura Zope/Plone c. As permissões mais comuns são View, Anonymous d. Você não pode adicionar papéis apenas por necessidade5) É incorreto afirmar que: a. Grupos são formas convenientes de administrar papéis b. workflows, geridos através da ferramenta portal_workflow, são a forma correta de gerenciamento de permissões em seu conteúdo. c. É bastante incomum que somente um usuário receba determinado papel d. Todo tipo de conteúdo ou não possui workflow (raro) ou possui um ou mais associado(s) a ele. 47
  48. 48. Administração de infraestrutura Zope/PloneREVISÃO DO CAPÍTULO 2 (respostas) 1) É uma das maneiras de manter a Segurança do Zope/Plone: a. Manter poucos usuários b. Não permitir criação de grupos c. Bom gerenciamento dos papéis atribuídos, sendo posto de forma correta para não fugir do controle o manuseio dos conteúdos 2) São "papéis" padrão: a. Member; Manager b. View; Modify c. Member; View d. Anonymous; Modify 3) Quando criamos um novo usuário, por padrão qual papel ele recebe: a. Member b. View c. Anonymous d. Administrador 4) É correto afirmar que: a. Quando dentro de um grupo, o usuário ganhará todos os papéis atribuídos para aquele grupo além de quaisquer papéis atribuídos apenas para aquele usuário. b. Não conseguimos administrar papéis por Grupos c. As permissões mais comuns são View, Anonymous 48
  49. 49. Administração de infraestrutura Zope/Plone d. Você não pode adicionar papéis apenas por necessidade5) É incorreto afirmar que: a. Grupos são formas convenientes de administrar papéis b. workflows, geridos através da ferramenta portal_workflow, são a forma correta de gerenciamento de permissões em seu conteúdo. c. É bastante incomum que somente um usuário receba determinado papel d. Todo tipo de conteúdo ou não possui workflow (raro) ou possui um ou mais associado(s) a ele. 49
  50. 50. Administração de infraestrutura Zope/PloneLaboratório 02 1) Acessar o Plone Site: portal_dev 2) Adicionar item, do tipo Pasta: o Título: Biblioteca 3) Criar os seguintes grupos: o Grupo de Gestores de conteúdos (grupo-gestores)  Papel de Colaborador o Grupo da Biblioteca (grupo-biblioteca) 50
  51. 51. Administração de infraestrutura Zope/Plone  Papel local de acesso à pasta biblioteca o Grupo de Editores (grupo-Editores)  Papel de Reviewer4) Atribua os papéis e permissões corretos a cada grupo, de acordo com sua destinação.5) Crie os usuários e os inclua nos respectivos grupos: o João – não o inclua em nenhum grupo o José e Maria – Grupo de Gestores de conteúdos o Catatau e Zé Colmeia – Grupo da Biblioteca o William e Fatima - Grupo de Editores6) Acesse o site com cada um dos usuários e verifique o resultado. 51
  52. 52. Administração de infraestrutura Zope/PloneCAPITULO 3IntroduçãoVamos mostrar como otimizar o desempenho do seu Plone site, utilizando um servidor decache (Varnish). Neste capítulo também explicaremos o que são Políticas de cache.O conteúdo deste treinamento tem como premissa que as otimizações relativas ahardware, como arquitetura de disco, paginação de memória, entre outras, sistemaoperacional, banco de dados e rede foram realizadas e estão operando em seu estadoótimo. Apenas questões relativas ao desempenho do Plone serão tratadas neste capítulo. 52
  53. 53. Administração de infraestrutura Zope/PloneNeste Capítulo você verá • Otimização de desempenho: o Parâmetros ajustáveis o Varnish • Políticas de Cache: o Descrição das políticas de Cache o Quando aplicar cada tipo de política • Procedimento de backup 53
  54. 54. Administração de infraestrutura Zope/PloneOTIMIZAÇÃO DE DESEMPENHOPARÂMETROS QUE PODEM SER AJUSTADOSInstâncias da solução instaladas no “Front-End”, devem utilizar um servidor de cache. Osservidores ZOPE podem ser escalados horizontalmente através da inclusão de umbalanceamento de cargas e o acesso aos arquivos organizado, com maior desempenho eredundância com o uso de um servidor destinado a este fim. 54
  55. 55. Administração de infraestrutura Zope/Plone 55
  56. 56. Administração de infraestrutura Zope/PloneZEO • Arquivos e imagens no ZODB: configurar o BLOB (Binary Large Objects) padrão no Plone 4, para armazenar os arquivos e as imagens no sistema de arquivos do servidor ou em um ponto de rede. • 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 índices. Cuidado com a “mega ultra power” resolução de um problema. Não reinvente a roda, utilize a forma de resolver um problema e/ou código do próprio Zope/Plone. • Otimizar a infraestrutura de rede e dos servidores, em especial os subsistemas de disco para aqueles sistemas com uso intensivo de dados dinâmicos. 56
  57. 57. Administração de infraestrutura Zope/Plone • Zope: utilizar um core do processador por instância. Para utilizar melhor a capacidade do processador é necessário utilizar um servidor ZEO (Zope Enterprise Objects) com várias instâncias e deixar o kernel determinar pra onde cada processo vai. • Desabilitar o profiler (debug) quando o portal for para produção.O ZEO (Zope Enterprise Objects)é um sistema de balanceamento de carga utilizado peloZOPE. O servidor ZEO é um servidor de armazenamento que permite a múltiplasinstâncias do ZOPE conectarem a uma única base de dados, por padrão, o ZODB.(ZopeObject Data Base). 57
  58. 58. Administração de infraestrutura Zope/PloneVARNISHÉ uma solução open source, distribuída sob a licença BSD. Ele é um acelerador HTTPprojetado para websites com conteúdo dinâmico com alto volume de informações.Ele serve como: • Ferramenta de apoio e gerenciamento do sistema de cache. • Ganho de performance para resposta do siteO Varnish foi desenvolvido para servir como proxy reverso para sistemas degerenciamento de conteúdo lentos. • Foco 100% em performance. 58
  59. 59. Administração de infraestrutura Zope/Plone • Capacidade de trabalhar em 32 ou 64 bits aproveitando ao máximo cada operação do processador • Roda em Linux e BSDO desempenho pode ser acelerado com o Vanish: • A fim de evitar chamadas para gravação em disco desnecessárias, todo o gerenciamento de log é feito em memória. • Controle sobre cada resposta às requisições. Podemos sobrescrever o TTL dos pacotes, adicionar ou remover cabeçalho removercookies, reescrever urls e invalidar objetos no cache. Suporte a balanceamento de carga inclusive com checagem da saúde dos servidores. • Controle sobre o que deverá ser cacheado. Implementa parcialmente ESI, a qual permite se definir, no código da aplicação, como deverá funcionar o cache para as diversas partes de uma página Web. Com isso é possível definir propriedades de cache diferentes para partes diferentes de uma mesma página. • Ferramentas de apoio e gerenciamento do sistema de cache. Interface telnet para gerenciamento da aplicação CLI (Command Line Interface). Ferramentas de gerenciamento de administração em modo texto (console) VarnishHist, VarnishLog, VarnishCsa, VarnishStat, VarnishTest, VarnishSizes e Varnishtop • Log centralizado em memória. Para evitar chamadas de gravação em disco desnecessárias, todo o gerenciamento do log é feito em memória. VarnishLog e VarnishCsa para uma análise mais profunda. Possibilidades de armazenagem de logs no padrão Apache por exemplo. 59
  60. 60. Administração de infraestrutura Zope/PloneNOTA:Para instalações do Plone em servidores Windows (IIS) pode-se utilizar o Enfold Proxy,uma vez que o Varnish não opera nestas soluções. 60
  61. 61. Administração de infraestrutura Zope/Ploneplone.app.caching - Políticas de cacheDESCRIÇÃO DAS POLÍTICAS DE CACHEPolíticas de cache são, geralmente um compromisso entre velocidade e atualização doconteúdo da resposta. Caches mais agressivos, muitas vezes , vem à custa de aumento dorisco de respostas obsoletas. Caches mais lentos trazem respostas mais precisas,sacrificando a velocidade.Personalização do cache também pode ser necessária se produtos de terceiros que estãoinstalados requerem tratamento especial. Examine os cabeçalhos de resposta HTTP paradeterminar se o produto de terceiros requer tratamento especial. Um Caso mais simples,provavelmente, pode ser resolvido adicionando o tipo de conteúdo ou modelo para omapeamento apropriado. Casos mais complicados podem exigir operações de cachepersonalizado. 61
  62. 62. Administração de infraestrutura Zope/PloneOs três perfis de cache padrão: • Sem cache proxyDefinições úteis para configurações sem um proxy cache. • Com o cache de proxy Definições úteis para configurações com um proxy cache, como Squid ou verniz. A única diferença do "sem cache proxy" perfil de algumas configurações para habilitar o cache de proxy de arquivos, imagens no espaço de conteúdo e feeds de conteúdo. • Com proxy cache (e dividir-view caching) Um perfil de exemplo para uma configuração de proxy cache com split-view caching habilitado. Este exemplo requer uma configuração de proxy especial. 62
  63. 63. Administração de infraestrutura Zope/PloneQUANDO APLICAR CADA TIPO DE POLÍTICA • Caching forte ( plone.app.caching.strongCaching )Cache no browser e proxy (default: 24 horas). Utilize apenas recursos estáveis, que nuncamudam sem mudar sua URL, ou recursos para os quais staleness temporária não é crítica.Nos perfis de cache sem-cache-proxy e com o cache proxy, esta operação é mapeadapara o rulesets plone.resource e plone.stableResource, o que provoca os seguintescabeçalhos para ser em adicionados à resposta:Last-Modified: <last-modified-date>Cache-Control: max-age = <segundos>, proxy-revalidação, pública • Cache moderado ( plone.app.caching.moderateCaching ), 63
  64. 64. Administração de infraestrutura Zope/PloneCache no browser, mas expirar imediatamente (o mesmo que caching fraco), e cache deproxy (default: 24 horas). Use um proxy reverso purgable caching para melhoresresultados. Se o proxy não pode ser removidos de forma confiável, então as respostasobsoletas podem ser vistas até a entrada em cache expirar. Se o proxy não pode serconfigurado para caching disallow em outros proxies intermediários que possam existirentre os proxies locais e do navegador.No perfil de cache com o cache proxy, esta operação é mapeada para orulesetsplone.content.feed e plone.content.file, o que provoca os seguintes cabeçalhospara serem adicionados à resposta:[Plone.content.feed]ETag: <etag-valueControl: max-age = 0, s-maxage = <segundos>, deve-revalidar[Plone.content.file]Last-Modified: <last-modified-date>Cache-Control: max-age = 0, s-maxage = <segundos>, deve-revaliar • Caching fraco ( plone.app.caching.weakCaching )Se a última modificação do cabeçalho é insuficiente para garantir a atualização, ativar averificação ETag listando cada componente ETag que deve ser usado para construir ocabeçalho ETag. Para cache de respostas públicas na memória Zope, defina o cache deRAM parâmetro para True.No perfil de cache sem cache-proxy, esta operação é mapeada para orulesetsplone.content.itemView, plone.content.folderView, plone.content.feedeplone.content.file , o que provoca os seguintes cabeçalhos a serem adicionados com aresposta: 64
  65. 65. Administração de infraestrutura Zope/Plone[Plone.content.itemView, plone.content.folderView, plone.content.feed]ETag: <etag-value>Cache-Control: max-age = 0, deve-revalidar, privado[Plone.content.file]Last-Modified: <last-modified-date>Cache-Control: max-age = 0, deve-revalidar, privado • Nenhum cache ( plone.app.caching.noCaching ) • Cadeia ( plone.caching.operations.chain ) 65
  66. 66. Administração de infraestrutura Zope/PloneBACKUP e RESTOREO que fazer backup? 1) Conteúdo – normalmente armazenado no arquivo de dados Data.fs no diretório var da instância ZOPE. Se você estiver usando o armazenamento de BLOB (padrão no Plone 4 para imagens e arquivos), você terá que fazer backup também dos objetos binários. Eles são armazenados por padrão na pasta var/blobstorage. 2) Customizações realizadas nos arquivos do sistema operacional. 3) Todos os produtos instalados. 66
  67. 67. Administração de infraestrutura Zope/Plone 4) Métodos externos (External Methods) no diretório Extensions. 5) Arquivos de configuração do ZOPE – buildout 6) Arquivos Traduzidos (.po) 7) Os produtos em desenvolvimento no diretório/src instância do Zope.Você não precisa necessariamente fazer backup dos produtos, você pode restaurar apartir de arquivos na Internet (tais como Plones SVN). No entanto, quando você precisarrestaurar a partir de um backup, serão exigidas as mesmas versões dos produtos que sãousados em seus sites. Fazer o backup dos produtos é à prova de falhas e não depende dearquivos externos. 67
  68. 68. Administração de infraestrutura Zope/PloneREPOZOUtilização do Zope repozo.py script é a forma recomendada de backup pela comunidade.Desta forma você pode executar um processo de backup seguro e automatizado,enquanto o Plone estiver sendo executado, sem efeitos colaterais em seus dados. Égeralmente considerada a melhor prática para fazer backup de Zope/Ploneem umambiente de produção.Repozo pode ser usado para criar um backup integral do banco de dados. Como o Plonearmazena seus dados em um único arquivo binário grande, criar um backup completodiário pode consumir muitos recursos de disco e rede. Nesse caso, você também podeusar Repozo para criar um hot backup incremental do banco de dados. O repozo.py scriptpode ser encontrado no diretório bin de sua instalação de software Zope. Ele contém umadocstring, informativa sobre suas opções de linha de comando. 68
  69. 69. Administração de infraestrutura Zope/PloneCollective.recipe.backup é uma boa maneira para configurar e gerenciar repozodiretamente do seu arquivo buildout. Inclui opções para fazer backup tanto do seuarquivo Data.fs quanto do armazenamento do Blob do Plone 4.Shutdown do Zope para backup do banco de dadosA maneira mais fácil segura para o backup do banco de dados, é parar (shutdown) o Zope,copiar o arquivos Data.fs e reiniciar o Zope. Isto é simples e seguro, mas tem adesvantagem de que seus sites não estarão operacionais durante o processo de backup.Pack do banco de dados e faça backup da cópia pré-packOutra forma segura de se fazer backup do Data.fs, sem derrubar seus sites é realizar opack do banco de dados no Zope Management Interface (ZMI): Painel de Controle>Gerenciamento de Banco de Dados> Principal> Pack. Isso deixa um arquivo Data.fs.oldcom o conteúdo anterior do banco de dados. Como o Plone não escreve mais nestearquivo após o empacotamento é seguro fazer a cópia do Data.fs.old. É importante teratenção para que não se faça backup do Data.fs, ao invés da versão empacotadaData.fs.old.Empacotar o banco de dados significa reduzir seu tamanho, eliminando versõesarquivadas de objetos armazenados, com mais de uma determinada idade. Após oempacotamento, você vai deixar de ser capaz de reverter as transações para estasversões antigas. 69
  70. 70. Administração de infraestrutura Zope/PloneREVISÃO DO CAPÍTULO 3 70
  71. 71. Administração de infraestrutura Zope/PloneEXERCÍCIOS DO CAPÍTULO 3 1) Qual desses servidores de cache é a melhor escolha para o Plone no Linux BSD: a. Squid b. Varnish c. Apache2 d. Proxy 2) Marque a incorreta sobre o Varnish: a. Não roda no Windows. b. É uma ferramentas de apoio e gerenciamento do sistema de cache. c. Log centralizado em memória. d. Suporta SSL. 3) Utiliza apenas recursos estáveis, que nunca mudam sem mudar sua URL: a. Cache moderado b. Caching forte c. Caching fraco d. Nenhum cache 4) É correto afirmar que : a. Políticas de cache são, muitas vezes um compromisso entre velocidade e falta de segurança. 71
  72. 72. Administração de infraestrutura Zope/Ploneb. No ZODB, utilizar o Blob para armazenar os arquivos e as imagens no sistema de arquivos do servidor ou em um ponto de rede.c. Habilitar o profiler quando o portal for para produçãod. Varnish open source, distribuído sob a licença BSD, um acelerador HTTP projetado para sites web estáticos. 72
  73. 73. Administração de infraestrutura Zope/PloneREVISÃO DO CAPÍTULO 3 (respostas) 1) Qual desses servidores de cache é a melhor escolha para o Plone no Linux BSD: a. Squid b. Varnish c. Apache2 d. Proxy 1) Marque a incorreta sobre o Varnish: a. Não roda no Windows. b. É uma ferramentas de apoio e gerenciamento do sistema de cache. c. Log centralizado em memória. d. Suporta SSL. 2) Utiliza apenas recursos estáveis, que nunca mudam sem mudar sua URL: a. Cache moderado b. Caching forte c. Caching fraco d. Nenhum cache 3) É correto afirmar: a. Políticas de cache são, muitas vezes um compromisso entre velocidade e falta de segurança. 73
  74. 74. Administração de infraestrutura Zope/Ploneb. No ZODB, utilizar o produto FileSystemStorage para armazenar os arquivos no sistema de arquivos do servidor ou em um ponto de rede.c. Habilitar o profiler quando o portal for para produçãod. Varnish open source, distribuído sob a licença BSD, é um acelerador HTTP projetado para sites web estáticos. 74
  75. 75. Administração de infraestrutura Zope/PloneLaboratório 3 1) Criar uma nova instalação da instância do Plone 4: a. Utilizando virtualenv; b. Utilizando o buildout; c. Modo ZEO Cluster; d. Instalar Varnish Cache; e. Instalar Pound; 2) Definir políticas de cache utilizando o plone.app.caching; 75
  76. 76. Administração de infraestrutura Zope/Plone3) Efetuar testes de acesso. 76

×