SlideShare una empresa de Scribd logo
1 de 76
2012




       Administração de
       infraestrutura
       Zope/Plone




          Apostila para treinamento presencial
Administração de infraestrutura Zope/Plone




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




                                                                                            2
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 2012




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.




                                                                                           3
Administração de infraestrutura Zope/Plone




Sumário

Table of Contents
SOBRE O TREINAMENTO........................................................................................................ 6

CAPITULO 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.................................................................................................................... 29

CAPITULO 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
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.................................................................................................................. 50

CAPITULO 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
Administração de infraestrutura Zope/Plone




SOBRE O TREINAMENTO




                                                              6
Administração de infraestrutura Zope/Plone




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
para instalar os produtos necessita ter acesso como usuário root e internet.




                                                                                            7
Administração de infraestrutura Zope/Plone




Neste Capítulo você verá

          •   Introdução a:

                 o SGC




                                                                      8
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
Administração de infraestrutura Zope/Plone


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.




                                                                                           10
Administração de infraestrutura Zope/Plone


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.




                                                                                           11
Administração de infraestrutura Zope/Plone




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.



                                                                                        12
Administração de infraestrutura Zope/Plone




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.




                                                                                         13
Administração de infraestrutura Zope/Plone


O Zope é um ambiente bastante amigável e tem características muito importantes que o
fazem 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
Administração de infraestrutura Zope/Plone




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.




                                                                                           15
Administração de infraestrutura Zope/Plone




ARQUITETURA




                                                     16
Administração de infraestrutura Zope/Plone




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




                                                                                            17
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 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




                                                                                           18
Administração de infraestrutura Zope/Plone




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, que serão
              necessários mais adiante):




                                                                                           19
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 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)$




                                                                                             20
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 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




                                                                                              21
Administração de infraestrutura Zope/Plone


Acessar o buildout de instalação do Plone 4:

(virtualPy26)$ cd ~/instancia/plone4

(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




                                                                                            22
Administração de infraestrutura Zope/Plone




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



                                                                                           23
Administração de infraestrutura Zope/Plone


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.

          •   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




                                                                                           24
Administração de infraestrutura Zope/Plone




REVISÃ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
Administração de infraestrutura Zope/Plone


       d. iOS

5) É 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
Administração de infraestrutura Zope/Plone



REVISÃ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
Administração de infraestrutura Zope/Plone


5) É 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
Administração de infraestrutura Zope/Plone



EXERCÍCIOS DO CAPÍTULO 1




Laborató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
Administração de infraestrutura Zope/Plone




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.




                                                                                         30
Administração de infraestrutura Zope/Plone




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




                                                                                      31
Administração de infraestrutura Zope/Plone




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.




                                                                                          32
Administração de infraestrutura Zope/Plone




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 do conteúdo do




                                                                                          33
Administração de infraestrutura Zope/Plone


portal. O administrador do portal deve seguir uma forma melhor distribuída das
permissões.




                                                                                    34
Administração de infraestrutura Zope/Plone


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)




                                                                                      35
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 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.




                                                                                             36
Administração de infraestrutura Zope/Plone




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 ,




                                                                                           37
Administração de infraestrutura Zope/Plone


não vem mais habilitada como em versões anteriores do Plone . Logo , só administradores
do site podem adicionar novos usuários inicialmente.

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.




                                                                                          38
Administração de infraestrutura Zope/Plone




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




                                                                                         39
Administração de infraestrutura Zope/Plone


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
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.




                                                                                          40
Administração de infraestrutura Zope/Plone




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



                                                                                             41
Administração de infraestrutura Zope/Plone


permissões de gerente (um papel global) em '/stuff', não há como previni-lo de ter
permissões de gerente em '/stuff/documents'.




                                                                                      42
Administração de infraestrutura Zope/Plone



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.




                                                                                           43
Administração de infraestrutura Zope/Plone


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 no workflow. Você pode controlar quem tem a
liberdade de alterar as permissões




                                                                                          44
Administração de infraestrutura Zope/Plone


NESTE CAPÍTULO VOCÊ VIU




                                                                 45
Administração de infraestrutura Zope/Plone




REVISÃ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
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 necessidade

5) É 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
Administração de infraestrutura Zope/Plone



REVISÃ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
Administração de infraestrutura Zope/Plone


       d. Você não pode adicionar papéis apenas por necessidade

5) É 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
Administração de infraestrutura Zope/Plone



Laborató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
Administração de infraestrutura Zope/Plone


                 Papel local de acesso à pasta biblioteca

       o Grupo de Editores (grupo-Editores)

                 Papel de Reviewer




4) 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 Editores




6) Acesse o site com cada um dos usuários e verifique o resultado.




                                                                                51
Administração de infraestrutura Zope/Plone




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.




                                                                                          52
Administração de infraestrutura Zope/Plone




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




                                                                                        53
Administração de infraestrutura Zope/Plone




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.




                                                                                          54
Administração de infraestrutura Zope/Plone




                                       55
Administração de infraestrutura Zope/Plone




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.




                                                                                      56
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 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).




                                                                                          57
Administração de infraestrutura Zope/Plone




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.




                                                                                        58
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 BSD

O 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 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 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
Administração de infraestrutura Zope/Plone




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.




                                                                                    60
Administração de infraestrutura Zope/Plone




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.




                                                                                         61
Administração de infraestrutura Zope/Plone


Os três perfis de cache padrão:

           •   Sem cache proxy

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.




                                                                                          62
Administração de infraestrutura Zope/Plone




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 ),



                                                                                          63
Administração de infraestrutura Zope/Plone


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:




                                                                                           64
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
Administração de infraestrutura Zope/Plone




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.




                                                                                         66
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 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.




                                                                                           67
Administração de infraestrutura Zope/Plone




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.




                                                                                         68
Administração de infraestrutura Zope/Plone


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 o conteú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.




                                                                                         69
Administração de infraestrutura Zope/Plone




REVISÃO DO CAPÍTULO 3




                                                               70
Administração de infraestrutura Zope/Plone




EXERCÍ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
Administração de infraestrutura Zope/Plone


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.




                                                                        72
Administração de infraestrutura Zope/Plone




REVISÃ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
Administração de infraestrutura Zope/Plone


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.




                                                                     74
Administração de infraestrutura Zope/Plone




Laborató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
Administração de infraestrutura Zope/Plone




3) Efetuar testes de acesso.




                                                                      76

Más contenido relacionado

Similar a Administracao de infraestrutura_zope_plone (20)

Plone
PlonePlone
Plone
 
Zope
ZopeZope
Zope
 
Ltsp
LtspLtsp
Ltsp
 
Ppt pd
Ppt pdPpt pd
Ppt pd
 
Projetor Proinfo
Projetor ProinfoProjetor Proinfo
Projetor Proinfo
 
Postfix
PostfixPostfix
Postfix
 
Ferm
FermFerm
Ferm
 
Relatório de Estágio da Graduação
Relatório de Estágio da GraduaçãoRelatório de Estágio da Graduação
Relatório de Estágio da Graduação
 
Programacao php moodle
Programacao php moodleProgramacao php moodle
Programacao php moodle
 
Inst configdebian
Inst configdebianInst configdebian
Inst configdebian
 
Nessus
NessusNessus
Nessus
 
Monitoramento
MonitoramentoMonitoramento
Monitoramento
 
De javaparapython
De javaparapythonDe javaparapython
De javaparapython
 
Qemu
QemuQemu
Qemu
 
Java applet
Java appletJava applet
Java applet
 
Inkscape
InkscapeInkscape
Inkscape
 
Mrtg
MrtgMrtg
Mrtg
 
9i fundamentos adm_banco_de_dados_ii
9i fundamentos adm_banco_de_dados_ii9i fundamentos adm_banco_de_dados_ii
9i fundamentos adm_banco_de_dados_ii
 
Postgre sql
Postgre sqlPostgre sql
Postgre sql
 
Ftp
FtpFtp
Ftp
 

Último

A Obsessão por Justa Causa - – A Paixão, o Ciúme, a Traição e a obsessão - TEXTO
A Obsessão por Justa Causa - – A Paixão, o Ciúme, a Traição e a obsessão - TEXTOA Obsessão por Justa Causa - – A Paixão, o Ciúme, a Traição e a obsessão - TEXTO
A Obsessão por Justa Causa - – A Paixão, o Ciúme, a Traição e a obsessão - TEXTO
ADALBERTO COELHO DA SILVA JR
 
Antropologia Missionária 1.pptx O DESAFIO FINAL
Antropologia Missionária 1.pptx O DESAFIO FINALAntropologia Missionária 1.pptx O DESAFIO FINAL
Antropologia Missionária 1.pptx O DESAFIO FINAL
MiltonCesarAquino1
 

Último (17)

O CRISTÃO E O MEIO AMBIENTE: o homem como jardineiro
O CRISTÃO E O MEIO AMBIENTE: o homem como jardineiroO CRISTÃO E O MEIO AMBIENTE: o homem como jardineiro
O CRISTÃO E O MEIO AMBIENTE: o homem como jardineiro
 
Oração Pelo Povo Brasileiro
Oração Pelo Povo BrasileiroOração Pelo Povo Brasileiro
Oração Pelo Povo Brasileiro
 
JOGRAL para o dia das MÃES igreja .pdf
JOGRAL  para o dia das MÃES igreja .pdfJOGRAL  para o dia das MÃES igreja .pdf
JOGRAL para o dia das MÃES igreja .pdf
 
Lição 7 - O Perigo da Murmuração - EBD.pptx
Lição 7 - O Perigo da Murmuração - EBD.pptxLição 7 - O Perigo da Murmuração - EBD.pptx
Lição 7 - O Perigo da Murmuração - EBD.pptx
 
A Obsessão por Justa Causa - – A Paixão, o Ciúme, a Traição e a obsessão - TEXTO
A Obsessão por Justa Causa - – A Paixão, o Ciúme, a Traição e a obsessão - TEXTOA Obsessão por Justa Causa - – A Paixão, o Ciúme, a Traição e a obsessão - TEXTO
A Obsessão por Justa Causa - – A Paixão, o Ciúme, a Traição e a obsessão - TEXTO
 
Bíblia Sagrada - Lamentações - slides powerpoint.pptx
Bíblia Sagrada - Lamentações - slides powerpoint.pptxBíblia Sagrada - Lamentações - slides powerpoint.pptx
Bíblia Sagrada - Lamentações - slides powerpoint.pptx
 
Lição 6 - As nossas Armas Espirituais.pptx
Lição 6 - As nossas Armas Espirituais.pptxLição 6 - As nossas Armas Espirituais.pptx
Lição 6 - As nossas Armas Espirituais.pptx
 
Comentários -João - Hernandes Dias Lopes.pdf
Comentários -João - Hernandes Dias Lopes.pdfComentários -João - Hernandes Dias Lopes.pdf
Comentários -João - Hernandes Dias Lopes.pdf
 
Desiderio Desideravi: formação litúrgica
Desiderio Desideravi: formação litúrgicaDesiderio Desideravi: formação litúrgica
Desiderio Desideravi: formação litúrgica
 
ABRAÃO pai da fé catequese para crianças .pptx
ABRAÃO pai da fé catequese para crianças .pptxABRAÃO pai da fé catequese para crianças .pptx
ABRAÃO pai da fé catequese para crianças .pptx
 
livro de atos dos apóstolos- Cap 22 a 24 - o julgamento de Paulo
livro de atos dos apóstolos- Cap 22 a 24 - o julgamento de Paulolivro de atos dos apóstolos- Cap 22 a 24 - o julgamento de Paulo
livro de atos dos apóstolos- Cap 22 a 24 - o julgamento de Paulo
 
Novo dia de festa o verdadeiro amor tyejaytyo
Novo dia de festa o verdadeiro amor tyejaytyoNovo dia de festa o verdadeiro amor tyejaytyo
Novo dia de festa o verdadeiro amor tyejaytyo
 
Boletim Espiral número 74, de abril de 2024
Boletim Espiral número 74, de abril de 2024Boletim Espiral número 74, de abril de 2024
Boletim Espiral número 74, de abril de 2024
 
FORMAÇÃO LITÚRGICA - MINISTROS EXTRAORDINÁRIOS.pptx
FORMAÇÃO LITÚRGICA - MINISTROS EXTRAORDINÁRIOS.pptxFORMAÇÃO LITÚRGICA - MINISTROS EXTRAORDINÁRIOS.pptx
FORMAÇÃO LITÚRGICA - MINISTROS EXTRAORDINÁRIOS.pptx
 
Aula de Escola Bíblica - 2 Coríntios cap. 11
Aula de Escola Bíblica - 2 Coríntios cap. 11Aula de Escola Bíblica - 2 Coríntios cap. 11
Aula de Escola Bíblica - 2 Coríntios cap. 11
 
Antropologia Missionária 1.pptx O DESAFIO FINAL
Antropologia Missionária 1.pptx O DESAFIO FINALAntropologia Missionária 1.pptx O DESAFIO FINAL
Antropologia Missionária 1.pptx O DESAFIO FINAL
 
Missões News 04/2024 - Informativo Missionário
Missões News 04/2024 - Informativo MissionárioMissões News 04/2024 - Informativo Missionário
Missões News 04/2024 - Informativo Missionário
 

Administracao de infraestrutura_zope_plone

  • 1. 2012 Administração de infraestrutura Zope/Plone Apostila para treinamento presencial
  • 2. Administração de infraestrutura Zope/Plone 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 2
  • 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 2012 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. 3
  • 4. Administração de infraestrutura Zope/Plone Sumário Table of Contents SOBRE O TREINAMENTO........................................................................................................ 6 CAPITULO 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.................................................................................................................... 29 CAPITULO 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. 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.................................................................................................................. 50 CAPITULO 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. Administração de infraestrutura Zope/Plone SOBRE O TREINAMENTO 6
  • 7. Administração de infraestrutura Zope/Plone 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 para instalar os produtos necessita ter acesso como usuário root e internet. 7
  • 8. Administração de infraestrutura Zope/Plone Neste Capítulo você verá • Introdução a: o SGC 8
  • 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. Administração de infraestrutura Zope/Plone 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. 10
  • 11. Administração de infraestrutura Zope/Plone 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. 11
  • 12. Administração de infraestrutura Zope/Plone 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. 12
  • 13. Administração de infraestrutura Zope/Plone 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. 13
  • 14. Administração de infraestrutura Zope/Plone O Zope é um ambiente bastante amigável e tem características muito importantes que o fazem 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. Administração de infraestrutura Zope/Plone 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. 15
  • 16. Administração de infraestrutura Zope/Plone ARQUITETURA 16
  • 17. Administração de infraestrutura Zope/Plone 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 17
  • 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 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 18
  • 19. Administração de infraestrutura Zope/Plone 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, que serão necessários mais adiante): 19
  • 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 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)$ 20
  • 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 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 21
  • 22. Administração de infraestrutura Zope/Plone Acessar o buildout de instalação do Plone 4: (virtualPy26)$ cd ~/instancia/plone4 (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 22
  • 23. Administração de infraestrutura Zope/Plone 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 23
  • 24. Administração de infraestrutura Zope/Plone 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. • 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 24
  • 25. Administração de infraestrutura Zope/Plone REVISÃ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. Administração de infraestrutura Zope/Plone d. iOS 5) É 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. Administração de infraestrutura Zope/Plone REVISÃ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. Administração de infraestrutura Zope/Plone 5) É 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. Administração de infraestrutura Zope/Plone EXERCÍCIOS DO CAPÍTULO 1 Laborató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. Administração de infraestrutura Zope/Plone 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. 30
  • 31. Administração de infraestrutura Zope/Plone 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 31
  • 32. Administração de infraestrutura Zope/Plone 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. 32
  • 33. Administração de infraestrutura Zope/Plone 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 do conteúdo do 33
  • 34. Administração de infraestrutura Zope/Plone portal. O administrador do portal deve seguir uma forma melhor distribuída das permissões. 34
  • 35. Administração de infraestrutura Zope/Plone 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) 35
  • 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 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. 36
  • 37. Administração de infraestrutura Zope/Plone 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 , 37
  • 38. Administração de infraestrutura Zope/Plone não vem mais habilitada como em versões anteriores do Plone . Logo , só administradores do site podem adicionar novos usuários inicialmente. 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. 38
  • 39. Administração de infraestrutura Zope/Plone 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 39
  • 40. Administração de infraestrutura Zope/Plone 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 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. 40
  • 41. Administração de infraestrutura Zope/Plone 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 41
  • 42. Administração de infraestrutura Zope/Plone permissões de gerente (um papel global) em '/stuff', não há como previni-lo de ter permissões de gerente em '/stuff/documents'. 42
  • 43. Administração de infraestrutura Zope/Plone 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. 43
  • 44. Administração de infraestrutura Zope/Plone 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 no workflow. Você pode controlar quem tem a liberdade de alterar as permissões 44
  • 45. Administração de infraestrutura Zope/Plone NESTE CAPÍTULO VOCÊ VIU 45
  • 46. Administração de infraestrutura Zope/Plone REVISÃ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. 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 necessidade 5) É 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. Administração de infraestrutura Zope/Plone REVISÃ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. Administração de infraestrutura Zope/Plone d. Você não pode adicionar papéis apenas por necessidade 5) É 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. Administração de infraestrutura Zope/Plone Laborató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. Administração de infraestrutura Zope/Plone  Papel local de acesso à pasta biblioteca o Grupo de Editores (grupo-Editores)  Papel de Reviewer 4) 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 Editores 6) Acesse o site com cada um dos usuários e verifique o resultado. 51
  • 52. Administração de infraestrutura Zope/Plone 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. 52
  • 53. Administração de infraestrutura Zope/Plone 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 53
  • 54. Administração de infraestrutura Zope/Plone 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. 54
  • 56. Administração de infraestrutura Zope/Plone 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. 56
  • 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 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). 57
  • 58. Administração de infraestrutura Zope/Plone 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. 58
  • 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 BSD O 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 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 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. Administração de infraestrutura Zope/Plone 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. 60
  • 61. Administração de infraestrutura Zope/Plone 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. 61
  • 62. Administração de infraestrutura Zope/Plone Os três perfis de cache padrão: • Sem cache proxy 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. 62
  • 63. Administração de infraestrutura Zope/Plone 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 ), 63
  • 64. Administração de infraestrutura Zope/Plone 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: 64
  • 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. Administração de infraestrutura Zope/Plone 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. 66
  • 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 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. 67
  • 68. Administração de infraestrutura Zope/Plone 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. 68
  • 69. Administração de infraestrutura Zope/Plone 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 o conteú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. 69
  • 70. Administração de infraestrutura Zope/Plone REVISÃO DO CAPÍTULO 3 70
  • 71. Administração de infraestrutura Zope/Plone EXERCÍ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. Administração de infraestrutura Zope/Plone 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. 72
  • 73. Administração de infraestrutura Zope/Plone REVISÃ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. Administração de infraestrutura Zope/Plone 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. 74
  • 75. Administração de infraestrutura Zope/Plone Laborató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. Administração de infraestrutura Zope/Plone 3) Efetuar testes de acesso. 76