Baixe o app para aproveitar ainda mais
Prévia do material em texto
Administração de infraestrutura Zope/Plone Apostila para treinamento presencial 2012 Administração de infraestrutura Zope/Plone 1 Este 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 Apostila de Treinamento ZOPE /Plone Apostila de treinamento presencial de Zope e Plone – nível 200 Apostila Curso de Zope/Plone Versão 1.1 Março de 2012 Palavras chave: Zope, Python, Plone, curso, treinamento, instalação Administração de infraestrutura Zope/Plone 2 CONTROLE DE VERSÕES Versão Data Autor(es) Alterações 0.1 17/11/2011 ProdutivaTI Criação do documento 0.8 02/01/2012 Produtiva TI Revisão pelo Instrutor 1.0 05/01/2012 ProdutivaTI Liberação da versão 1.0 1.1 29/03/2012 Produtiva TI Revisão e ajuste do material Agradecimentos: Lucas Aquino Tania Moreira Douglas Soares de Andrade, autor da palestra Otimizando Portais Plone A comunidade Plone que nos ajudou a produzir este material. Administração de infraestrutura Zope/Plone 3 Sumário SOBRE O TREINAMENTO ........................................................................................................ 5 CAPITULO 1 ............................................................................................................................ 6 Introdução .......................................................................................................................... 6 CONCEITOS BÁSICOS DO ZOPE/PLONE .......................................................................... 8 PYTHON ........................................................................................................................ 10 ZOPE .............................................................................................................................. 11 PLONE ........................................................................................................................... 13 ARQUITETURA .............................................................................................................. 14 REQUISITOS PARA INSTALAÇÃO DO PLONE 4 .............................................................. 15 PACOTES NECESSÁRIOS ................................................................................................ 17 NESTE CAPÍTULO VOCÊ VIU .......................................................................................... 21 REVISÃO DO CAPÍTULO 1 ................................................................................................. 23 REVISÃO DO CAPÍTULO 1 (respostas) .............................................................................. 24 EXERCÍCIOS DO CAPÍTULO 1 ............................................................................................. 25 Laboratório 1 .................................................................................................................... 25 CAPITULO 2 .......................................................................................................................... 26 Introdução ........................................................................................................................ 26 INTRODUÇÃO A SEGURANÇA DA INFORMAÇÃO EM ZOPE/PLONE ............................. 28 GERENCIAMENTO DE USUÁRIOS ..................................................................................... 29 SEGURANÇA .................................................................................................................. 29 PERMISSÕES PADRÃO................................................................................................... 31 INTERFACE DE GERENCIAMENTO ZOPE (ZMI) .............................................................. 33 COMO CRIAR UM NOVO USUÁRIO/GRUPO ..................................................................... 35 POLÍTICA PARA CRIAÇÃO E MANUTENÇÃO .................................................................. 35 Administração de infraestrutura Zope/Plone 4 PAPÉIS LOCAIS E COMPARTILHAMENTO ......................................................................... 37 CONTROLE DE ACESSO POR MEIO DE WORKFLOW ......................................................... 38 NESTE CAPÍTULO VOCÊ VIU .......................................................................................... 40 REVISÃO DO CAPÍTULO 2 ................................................................................................. 41 REVISÃO DO CAPÍTULO 2 (respostas) .............................................................................. 42 Laboratório 02 .................................................................................................................. 43 CAPITULO 3 .......................................................................................................................... 45 Introdução ........................................................................................................................ 45 OTIMIZAÇÃO DE DESEMPENHO ....................................................................................... 47 PARÂMETROS QUE PODEM SER AJUSTADOS ............................................................... 47 ZEO ................................................................................................................................ 49 VARNISH ....................................................................................................................... 51 plone.app.caching - Políticas de cache ............................................................................ 53 DESCRIÇÃO DAS POLÍTICAS DE CACHE ......................................................................... 53 QUANDO APLICAR CADA TIPO DE POLÍTICA................................................................. 55 BACKUP e RESTORE .......................................................................................................... 58 REPOZO ......................................................................................................................... 60 REVISÃO DO CAPÍTULO 3 ................................................................................................. 62 EXERCÍCIOS DO CAPÍTULO 3 ............................................................................................. 63 REVISÃO DO CAPÍTULO 3 (respostas) .............................................................................. 64 Laboratório 3 .................................................................................................................... 65 Administração de infraestrutura Zope/Plone 5 SOBRE O TREINAMENTO Administração de infraestrutura Zope/Plone 6 CAPITULO 1 Introdução Vamos conceituar todas as ferramentas que serão usadas nesse curso. 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ções Zope. Seu principal objetivo é facilitar a criação, edição, publicação e distribuição de informação. Focado no usuário com pouco conhecimento técnico, apresenta uma plataforma intuitiva. Zope, um ambiente para a construção e gerenciamento de aplicações Web com foco no seu conteúdo. Ele interpreta os fragmentos de códigos ZPT e DTML em seus templates e gera uma saída HTML compreensível para qualquer navegador Web Python, uma linguagem de programação de alto nível, interpretada, imperativa, orientada a objetos, de tipagem dinâmica e forte. Atualmente possui um modelo de desenvolvimento comunitário, aberto e gerenciado pela organização sem fins lucrativos Python Software Foundation Além de especificações de instalação, pré-requisitos e sistema operacionais. Sabendo que parainstalar os produtos necessita ter acesso como usuário root e internet. Administração de infraestrutura Zope/Plone 7 Neste Capítulo você verá Introdução a: o SGC 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 Administração de infraestrutura Zope/Plone 8 CONCEITOS BÁSICOS DO ZOPE/PLONE Sistema 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 e disponibilidade da informação. Uma boa vantagem em usar o Plone é a grande quantidade de funções presentes através de complementos (galerias de fotos, gerenciadores de enquetes, gerenciadores de formulários) que podem ser agregados ao SGC. Um CMS é semelhante a um framework (um esqueleto) de website pré-estruturado, com recursos básicos de: usuabilidade, visualização e administração já prontamente disponíveis. É um sistema que permite a criação, armazenamento e administração de conteúdos de forma dinâmica, através de uma interface de acesso via Internet. Administração de infraestrutura Zope/Plone 9 Um CMS permite que a empresa tenha total autonomia sobre o conteúdo e evolução da sua presença na internet e dispense a assistência de terceiros ou empresas especializadas para 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 com um CMS não vai muito além dos conhecimentos necessários para um usuário de um simples 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 do layout. É possível construir um site completo, com diversas funcionalidades, sem a necessidade de desenvolver códigos complexos em linguagem de programação. Outra facilidade é que possui sistema de workflow, segurança e funções pré-configuradas e 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 de desenvolvedores em todo o mundo. Um aspecto importante, é que mesmo sendo uma ferramenta muito intuitiva, o Plone ainda abre espaço para uma grande customização de sua aparência e estrutura de navegação. Há a possibilidade de personalizar o site através da escolha de cores, imagens e posicionamentos de diversos componentes. Ainda, num nível mais avançado, a utilização do Plone dá conta da implementação de novas funcionalidades por parte de desenvolvedores de software, que podem ser agregadas a estrutura já existente. Administração de infraestrutura Zope/Plone 10 PYTHON Python é 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 em 1991. Atualmente possui um modelo de desenvolvimento comunitário, aberto e gerenciado pela organização sem fins lucrativos Python Software Foundation. Apesar de várias partes da linguagem possuírem padrões e especificações formais, a linguagem como um todo não é formalmente especificada. O padrão de fato é a implementação CPython. A linguagem foi projetada com a filosofia de enfatizar a importância do esforço do programador sobre o esforço computacional. Prioriza a legibilidade do código sobre a velocidade ou expressividade. Combina uma sintaxe concisa e clara com os recursos poderosos de sua biblioteca padrão e por módulos e frameworks desenvolvidos por terceiros. Administração de infraestrutura Zope/Plone 11 ZOPE Zope é um ambiente para a construção e gerenciamento de aplicações Web com foco no seu conteúdo. Ele interpreta os fragmentos de códigos ZPT e DTML em seus templates e gera uma saída HTML compreensível para qualquer navegador Web. Ou seja, as páginas de um servidor Zope são geradas dinamicamente, no momento em que o servidor recebe o pedido do browser, mesclando esses dois componentes. O Zope CMF (Content Management Framework) prevê uma plataforma poderosa e customizavel 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 armazenados em seu banco de dados, orientado a objetos, o ZODB (Zope Object Database).Dessa forma, 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. O Zope é um ambiente bastante amigável e tem características muito importantes que o fazem se destacar: Administração de infraestrutura Zope/Plone 12 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 Administração de infraestrutura Zope/Plone 13 PLONE O 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ções Zope. Seu principal objetivo é facilitar a criação, edição, publicação e distribuição de informação. Focado no usuário com pouco conhecimento técnico, apresenta uma plataforma intuitiva. Administração de infraestrutura Zope/Plone 14 ARQUITETURA Administração de infraestrutura Zope/Plone 15 REQUISITOS PARA INSTALAÇÃO DO PLONE 4 O Plone 4 possui uma instalação automática que já inclui tudo o que é necessário para que ele seja executado. O instalador está acessível para download em http://plone.org/products/plone/releases/ e disponível para os seguintes sistemas operacionais: Linux BSD Windows https://mail.itamaraty.gov.br/owa/redir.aspx?C=5f28bb22108f44bab77e20c81379d72c&URL=http%3a%2f%2fplone.org%2fproducts%2fplone%2freleases%2f Administração de infraestrutura Zope/Plone 16 OS X É necessário que o servidor onde vai ocorrer a instalação tenha acesso a internet e que o usuário possua credenciais de administrador na máquina, ou ao menos as seguintes permissões: Acesso ao console de comando Permissão para executar serviços e processos no servidor Permissão para habilitar portas no servidor Os 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 um portal 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 Administração de infraestrutura Zope/Plone 17 PACOTES NECESSÁRIOS Seu ambiente deve estar com o acesso à internet configurado. [Os comandos a seguir foram criados para o Ubuntu. Pequenas adaptações podem ser necessá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, queserão necessários mais adiante): $ sudo aptitude install build-essential $ sudo apt-get install gcc g++ make Administração de infraestrutura Zope/Plone 18 $ 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 mesmo endereco $ 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/bin Ativando o virtualenv: $ source ./activate (virtualPy26)$ 5. Criar buildout de instalação. (virtualPy26)$ ./easy_install zopeskel == 2.19 Administração de infraestrutura Zope/Plone 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 PIL note :: http://collective-docs.readthedocs.org/en/latest/tutorials/paste.html (virtualPy26)$ ./paster create --list-templates (virtualPy26)$ ./paster create -t plone4_buildout plone4 Versão do Plone 4.1.3 (virtualPy26)$ mkdir ~/instancias (virtualPy26)$ mv plone4 ~/instancias 6. Instalação do Plone 4 Criar um backup do buildout: (virtualPy26)$ mkdir ~/bkp (virtualPy26)$ cp -r ~/instancia/plone4 ~/bkp Acessar o buildout de instalação do Plone 4: (virtualPy26)$ cd ~/instancia/plone4 Administração de infraestrutura Zope/Plone 20 (virtualPy26)$ python bootstrap.py (virtualPy26)$ bin/buildout -vv Após processo de baixar e instalar os pacotes, iniciar o servico do Zope: (virtualPy26)$ ~/instancia/plone4/bin/instance fg note :: 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 Administração de infraestrutura Zope/Plone 21 NESTE CAPÍTULO VOCÊ VIU Introdução a: o Zope e Plone O 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ções Zope. o Python Python é 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 em 1991. o Arquitetura O Plone é um gerenciador de conteúdo, escrito em Python, que roda sob o servidor de aplicações Zope, utilizando o framework CMF – Content Management Framework. Administração de infraestrutura Zope/Plone 22 Requisitos de instalação do Plone 4 o Sistema Operacional Linux, Windows e MacOS. o Hardware 1.2GHz, 2GB RAM e 500GB de HD. o Pacotes necessários e Atualizações Bibliotecas padrões para compilação Virtualenv PIL Zopeskel Administração de infraestrutura Zope/Plone 23 REVISÃO DO CAPÍTULO 1 01) O Plone é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 02) O Python é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 03) O Zope é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 04) O Plone pode ser instalado em (selecione todas as corretas) a. Windows b. Linux c. Mac OS d. iOS 05) É 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 Administração de infraestrutura Zope/Plone 24 REVISÃO DO CAPÍTULO 1 (respostas) 01) O Plone é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 02) O Python é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 03) O Zope é: a. Linguagem de programação b. Software proprietário para desenvolvimento de sites c. CMS d. Servidor de Aplicações 04) O Plone pode ser instalado em (selecione todas as corretas) a. Windows b. Linux c. Mac OS d. iOS 05) É 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 Administração de infraestrutura Zope/Plone 25 EXERCÍCIOS DO CAPÍTULO 1 Laboratório 1 01) Criar uma nova instalação da instância do Plone 4, utilizando o virtualenv e o buildout. 02) Altere o acesso da porta padrão 8080 de acesso HTTP para a porta 8484. 03) Adicionar novo Plone Site com o id: portal_dev Administração de infraestrutura Zope/Plone 26 CAPITULO 2 Introdução Mostraremos 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 e workflows. 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 do seu Plone site. O administrador do Plone site deve seguir uma forma melhor distribuída dos seus papéis e permissões, também criando grupos que são formas convenientes de administrar papéis (assim como permissões) para uma grande quantidade de usuários simultaneamente. Os papéis padrões são: “Member”, “Manager” e “Reviewer”. Existem também alguns papéis nativos, como “Owner” e “Anonymous” e “Authenticated”. As permissões mais comuns são “View”, “Modify portal content”, “Access contents information” e “List folder contents”. Workflows servem para dois propósitos - representar a evolução de um pedaço de conteúdo, desde a criação, através dos ciclos de revisão, até o estado final, e para controlar as permissões para o conteúdo em cada estado. Administração de infraestrutura Zope/Plone 27 Neste 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 Administração de infraestrutura Zope/Plone 28 INTRODUÇÃO A SEGURANÇA DA INFORMAÇÃO EM ZOPE/PLONE O Plone utiliza uma combinação de permissões de baixo nível, papéis, papéis locais e fluxos 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. Administração de infraestrutura Zope/Plone 29 GERENCIAMENTO DE USUÁRIOS SEGURANÇA O 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 dos objetos. 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 fazer exatamente, mas não B em um determinado contexto. Permissões são usadas como guardas no acesso a métodos, scripts, templates, transições de workflow e algumas vezes em 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 doconteúdo do Administração de infraestrutura Zope/Plone 30 portal. O administrador do portal deve seguir uma forma melhor distribuída das permissões. Administração de infraestrutura Zope/Plone 31 PERMISSÕES PADRÃO Permissões são atribuídas a papéis de usuários (user roles), não a usuários individualmente. Logo, costuma-se dizer que, na pasta X, qualquer usuário com 'RandomRole' tem permissão para modificar o conteúdo do portal. Os papéis padrões são: Anonymous (anônimo) Autehticated (autenticado) Contributor (Colaborador) Editor Manager (Administrador) Member (Membro) Owner (Dono) Reader (Leitor) Reviwer (Revisor) Administração de infraestrutura Zope/Plone 32 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 determinado conteúdo. As permissões mais comuns são: View Modify portal content Access contents information List folder contents Conhecidas como as "CMF Core permissions", localizadas no arquivo 'Products.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 e modificar dados. Administração de infraestrutura Zope/Plone 33 INTERFACE DE GERENCIAMENTO ZOPE (ZMI) Na Interface de Gerenciamento do Zope (ZMI), quase todos os objetos possuem uma aba 'Security', 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 as permissões concedidas a estes papéis são as mesmas do objeto pai. Definições de segurança no Zope são aditivas, logo se você mantiver a opção 'Acquire' marcada e adicionar 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ção hereditária de regras desmarcando a opção 'Acquire'. Na maioria dos casos, você não irá modificar permissões dessa forma, exceto ao configurar padrões globais para permissões diferentes das permissões centrais acima. O auto-registro , ou seja , a permissão para que os próprios usuários se registrem no site , não vem mais habilitada como em versões anteriores do Plone . Logo , só administradores do site podem adicionar novos usuários inicialmente. Administração de infraestrutura Zope/Plone 34 Você pode livremente adicionar papéis conforme sua necessidade. Como membros podem possuir mais de um papel simultaneamente, você provavelmente só precisa se preocupar com um subconjunto de permissões quando se trata de atribui-las para um novo papel. Use o formulário na parte inferior da guia 'Security' na raiz do portal para adicionar e remover papéis. Usuários podem ser associados a papéis manualmente usando a pasta de usuários 'acl_users' / 'portal_role_manager' na raiz de sua instância Plone. Entretanto, é mais comum e indicado atribuir papéis a grupos e então adicionar usuários nos grupos, como descrito na próxima seção. Administração de infraestrutura Zope/Plone 35 COMO CRIAR UM NOVO USUÁRIO/GRUPO POLÍTICA PARA CRIAÇÃO E MANUTENÇÃO O Plone adiciona o conceito de um grupo de usuários ao modelo básico de segurança do Zope. 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 de usuários e grupos nas Configurações do Site. Papéis podem ser atribuídos a grupos de acordo com a necessidade - todos os usuários neste grupo receberão o papel atribuído ao grupo. É bastante incomum que somente um usuário receba determinado papel. É mais provável que grupos de usuários possuam os mesmos papéis no portal - e mesmo quando existe apenas um usuário (por exemplo, apenas um gestor do site), é valido criar um grupo para atender a possibilidade de haver mais usuários no futuro. Como os usuário podem estar Administração de infraestrutura Zope/Plone 36 em vários grupos ao mesmo tempo, você pdoe ter um controle preciso sobre as permissõ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 um novo 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 a ferramenta de administração de usuários e grupos nas Configurações do Site, você pode facilmente 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 relevantes e clique no botão adicionar. Uma vez 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. Administração de infraestrutura Zope/Plone 37 PAPÉIS LOCAIS E COMPARTILHAMENTO Frequentemente você necessitará dar permissões específicas a um usuário ou grupo em uma á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ê diferentes permissõ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 e associar-lhes papéis, além de poder isolar as permissões locais desmarcando a herança de níveis superiores . Atualmente os papéis locais podem ser adicionados em um nível mais baixo na árvore de aquisição, mas não poderão ser retirados. Significa que, se você dá a um usuário permissões de gerente (um papel global) em '/stuff', não há como previni-lo de ter permissões de gerente em '/stuff/documents'. Administração de infraestrutura Zope/Plone 38 CONTROLE DE ACESSO POR MEIO DE WORKFLOW Na maioria dos casos, workflows, geridos através da ferramenta portal_workflow, são a forma 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 para editar. A lista deste menu são as transições que você pode utilizar entre os estados do workflow. 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 possui exatamente um associado a ele. Isso é configurado através da ferramenta portal_workflow. A aba de conteúdo desta ferramenta na ZMI exibe os workflows instalados 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 os estados. Administração de infraestrutura Zope/Plone 39 O mecanismo do workflow irá gerenciar certo número de permissões e configurá-las corretamente quando o estado de um objeto é mudado. É importante atualizar as configurações de segurança clicando em Update security settings na base da aba Workflows dentro de portal_workflow na ZMI. Desta forma, workflows servem para dois propósitos - representar a evolução de um pedaço de conteúdo, desde a criação, através dos ciclos de revisão, até o estado final, e para controlar as permissões para o conteúdo em cada estado. Se você tem necessidades particulares, 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 mapeamento de papéis-permissões para cada estado noworkflow. Você pode controlar quem tem a liberdade de alterar as permissões Administração de infraestrutura Zope/Plone 40 NESTE CAPÍTULO VOCÊ VIU Administração de infraestrutura Zope/Plone 41 REVISÃO DO CAPÍTULO 2 01) É 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. 02) São "papéis" padrão: a. 'Member'; 'Manager' b. 'View'; 'Modify' c. 'Member'; 'View' d. 'Anonymous'; 'Modify' 03) Quando criamos um novo usuário, por padrão qual papel ele recebe: a. Member b. View c. Anonymous d. Administrador 04) É 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' d. Você não pode adicionar papéis apenas por necessidade 05) É 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. Administração de infraestrutura Zope/Plone 42 REVISÃO DO CAPÍTULO 2 (respostas) 01) É 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 02) São "papéis" padrão: a. 'Member'; 'Manager' b. 'View'; 'Modify' c. 'Member'; 'View' d. 'Anonymous'; 'Modify' 03) Quando criamos um novo usuário, por padrão qual papel ele recebe: a. Member b. View c. Anonymous d. Administrador 04) É 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' d. Você não pode adicionar papéis apenas por necessidade 05) É 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. Administração de infraestrutura Zope/Plone 43 Laboratório 02 01) Acessar o Plone Site: portal_dev 02) Adicionar item, do tipo Pasta: o Título: Biblioteca 03) Criar os seguintes grupos: o Grupo de Gestores de conteúdos (grupo-gestores) Papel de Colaborador o Grupo da Biblioteca (grupo-biblioteca) Papel local de acesso à pasta biblioteca o Grupo de Editores (grupo-Editores) Papel de Reviewer Administração de infraestrutura Zope/Plone 44 04) Atribua os papéis e permissões corretos a cada grupo, de acordo com sua destinação. 05) 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 Editores 06) Acesse o site com cada um dos usuários e verifique o resultado. Administração de infraestrutura Zope/Plone 45 CAPITULO 3 Introdução Vamos mostrar como otimizar o desempenho do seu Plone site, utilizando um servidor de cache (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 a hardware, como arquitetura de disco, paginação de memória, entre outras, sistema operacional, 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. Administração de infraestrutura Zope/Plone 46 Neste 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 Administração de infraestrutura Zope/Plone 47 OTIMIZAÇÃO DE DESEMPENHO PARÂMETROS QUE PODEM SER AJUSTADOS Instâncias da solução instaladas no “Front-End”, devem utilizar um servidor de cache. Os servidores ZOPE podem ser escalados horizontalmente através da inclusão de um balanceamento de cargas e o acesso aos arquivos organizado, com maior desempenho e redundância com o uso de um servidor destinado a este fim. Administração de infraestrutura Zope/Plone 48 SERVIDOR DE CACHE - SQUID - VANISH BALANCEAMENTO DE CARGA - Pound - Hardware ZOPE Servidor ZEO Administração de infraestrutura Zope/Plone 49 ZEO 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. 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. Administração de infraestrutura Zope/Plone 50 O ZEO (Zope Enterprise Objects)é um sistema de balanceamento de carga utilizado pelo ZOPE. O servidor ZEO é um servidor de armazenamento que permite a múltiplas instâncias do ZOPE conectarem a uma única base de dados, por padrão, o ZODB.(Zope Object Data Base). Administração de infraestrutura Zope/Plone 51 VARNISH É uma solução open source, distribuída sob a licença BSD. Ele é um acelerador HTTP projetado 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 site O Varnish foi desenvolvido para servir como proxy reverso para sistemas de gerenciamento de conteúdo lentos. Foco 100% em performance. Capacidade de trabalhar em 32 ou 64 bits aproveitando ao máximo cada operação do processador Roda em Linux e BSD O desempenho pode ser acelerado com o Vanish: Administração de infraestrutura Zope/Plone 52 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 remover cookies, 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 propriedadesde 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. NOTA: 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. Administração de infraestrutura Zope/Plone 53 plone.app.caching - Políticas de cache DESCRIÇÃO DAS POLÍTICAS DE CACHE Políticas de cache são, geralmente um compromisso entre velocidade e atualização do conteúdo da resposta. Caches mais agressivos, muitas vezes , vem à custa de aumento do risco 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ão instalados requerem tratamento especial. Examine os cabeçalhos de resposta HTTP para determinar 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 o mapeamento apropriado. Casos mais complicados podem exigir operações de cache personalizado. Os três perfis de cache padrão: Sem cache proxy Administração de infraestrutura Zope/Plone 54 Definiçõ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. Administração de infraestrutura Zope/Plone 55 QUANDO 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 nunca mudam 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 é mapeada para o rulesets plone.resource e plone.stableResource, o que provoca os seguintes cabeç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 ), Administração de infraestrutura Zope/Plone 56 Cache no browser, mas expirar imediatamente (o mesmo que caching fraco), e cache de proxy (default: 24 horas). Use um proxy reverso purgable caching para melhores resultados. Se o proxy não pode ser removidos de forma confiável, então as respostas obsoletas podem ser vistas até a entrada em cache expirar. Se o proxy não pode ser configurado para caching disallow em outros proxies intermediários que possam existir entre os proxies locais e do navegador. No perfil de cache com o cache proxy, esta operação é mapeada para o rulesetsplone.content.feed e plone.content.file, o que provoca os seguintes cabeçalhos para serem adicionados à resposta: [Plone.content.feed] ETag: <etag-value Control: 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 a verificação ETag listando cada componente ETag que deve ser usado para construir o cabeçalho ETag. Para cache de respostas públicas na memória Zope, defina o cache de RAM parâmetro para True. No perfil de cache sem cache-proxy, esta operação é mapeada para o rulesetsplone.content.itemView, plone.content.folderView, plone.content.feed eplone.content.file , o que provoca os seguintes cabeçalhos a serem adicionados com a resposta: Administração de infraestrutura Zope/Plone 57 [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 ) Administração de infraestrutura Zope/Plone 58 BACKUP e RESTORE O 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. 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. Administração de infraestrutura Zope/Plone 59 Você não precisa necessariamente fazer backup dos produtos, você pode restaurar a partir de arquivos na Internet (tais como Plone's SVN). No entanto, quando você precisar restaurar a partir de um backup, serão exigidas as mesmas versões dos produtos que são usados em seus sites. Fazer o backup dos produtos é à prova de falhas e não depende de arquivos externos. Administração de infraestrutura Zope/Plone 60 REPOZO Utilizaçã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 um ambiente de produção. Repozo pode ser usado para criar um backup integral do banco de dados. Como o Plone armazena seus dados em um único arquivo binário grande, criar um backup completo diário pode consumir muitos recursos de disco e rede. Nesse caso, você também pode usar Repozo para criar um hot backup incremental do banco de dados. O repozo.py script pode ser encontrado no diretório bin de sua instalação de software Zope. Ele contém uma docstring, informativa sobre suas opções de linha de comando. Administração de infraestrutura Zope/Plone 61 Collective.recipe.backup é uma boa maneira para configurar e gerenciar repozo diretamente do seu arquivo buildout. Inclui opções para fazer backup tanto do seu arquivo Data.fs quanto do armazenamento do Blob do Plone 4. Shutdown do Zope para backup do banco de dados A 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 a desvantagem 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é-pack Outra forma segura de se fazer backup do Data.fs, sem derrubar seus sites é realizar o pack 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.old com oconteúdo anterior do banco de dados. Como o Plone não escreve mais neste arquivo após o empacotamento é seguro fazer a cópia do Data.fs.old. É importante ter atenção para que não se faça backup do Data.fs, ao invés da versão empacotada Data.fs.old. Empacotar o banco de dados significa reduzir seu tamanho, eliminando versões arquivadas de objetos armazenados, com mais de uma determinada idade. Após o empacotamento, você vai deixar de ser capaz de reverter as transações para estas versões antigas. http://pypi.python.org/pypi/collective.recipe.backup Administração de infraestrutura Zope/Plone 62 REVISÃO DO CAPÍTULO 3 Administração de infraestrutura Zope/Plone 63 EXERCÍCIOS DO CAPÍTULO 3 01) Qual desses servidores de cache é a melhor escolha para o Plone no Linux BSD: a. Squid b. Varnish c. Apache2 d. Proxy 02) 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. 03) Utiliza apenas recursos estáveis, que nunca mudam sem mudar sua URL: a. Cache moderado b. Caching forte c. Caching fraco d. Nenhum cache 04) É correto afirmar que : a. Políticas de cache são, muitas vezes um compromisso entre velocidade e falta de segurança. b. 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ção d. Varnish open source, distribuído sob a licença BSD, um acelerador HTTP projetado para sites web estáticos. Administração de infraestrutura Zope/Plone 64 REVISÃO DO CAPÍTULO 3 (respostas) 01) Qual desses servidores de cache é a melhor escolha para o Plone no Linux BSD: a. Squid b. Varnish c. Apache2 d. Proxy 01) 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. 02) Utiliza apenas recursos estáveis, que nunca mudam sem mudar sua URL: a. Cache moderado b. Caching forte c. Caching fraco d. Nenhum cache 03) É correto afirmar: a. Políticas de cache são, muitas vezes um compromisso entre velocidade e falta de segurança. b. 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ção d. Varnish open source, distribuído sob a licença BSD, é um acelerador HTTP projetado para sites web estáticos. Administração de infraestrutura Zope/Plone 65 Laboratório 3 01) 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; 02) Definir políticas de cache utilizando o plone.app.caching; 03) Efetuar testes de acesso.
Compartilhar