Zend Server 8 – Distribuição (Deployment)

Boa tarde pessoal!

Neste post da série sobre Zend Server, vamos ver como fazer a distribuição (ou deployment) para um servidor.

Se você usa o Zend Studio, o processo de deployment é bem mais simples pois é feito pelo próprio Zend Studio, mas para quem não tem, o Zend Server vem com uma ferramenta console chamada zdpack destinada a criar pacotes prontos para o deployment.

Mas qual a diferença entre usar o deployment e copiar os arquivos para o diretório manualmente?

O deployment é um processo repetitivo e vamos ser francos, quem nunca esqueceu de copiar um arquivo, modificar um arquivo após a cópia do projeto, alterar a permissão de um diretório? Existem várias ferramentas ótimas para este processo como o phing e Caspriano. Eu particularmente uso o phing e vou escrever um post sobre ele em breve. O zdpack só funciona para upload para o Zend Server.

Preparando o pacote

Para preparar o pacote de deployment, vamos executar o zdpack:

A parte destacada representa os arquivo e diretórios criados.

Na raiz do projeto ele cria um arquivo deployment.xml que contem toda a configuração para o deployment (arquivos, nome, campos de configuração, validações, etc) e um diretório scripts que contem vários scripts que serão executados em cada etapa. Dentro do diretório data ele inclui um arquivo LICENSE.txt com a licença a ser usada e um index.php.

Uma coisa importante é que o diretório “data” do zdpack tem a finalidade de conter todos os arquivos da sua aplicação o que entra em “conflito” com o “data” do Zend Framework. O que faço é editar o deployment.xml e mudo o diretório onde ele busca os arquivos de “data” para “build”. Vamos ver como é a estrutura deste arquivo:

Para o processo não atrapalhar o ZF2, alteramos as linhas 10-12, criamos o diretório build dentro do diretório ZFTutorial e copiamos todos os arquivos do projeto para ele (excluindo os arquivos que o zdpack criou e quaisquer outros que não queremos distribuir, como por exemplo config/autoload/*local*).

Vamos à estrutura geral do arquivo (alguns campos não são criados pelo zdpack, basta acrescentá-los):

  • type: especificamos se é uma aplicação ou biblioteca (library, que poderá ser usada por outras aplicação, como um include_pach).
  • name: Nome da aplicação
  • summary: Um resumo da aplicação
  • description: A descrição completa da aplicação
  • version: Versão da nossa aplicação. É importante usarmos este valor corretamente pois é usado nas atualizações.
  • releasedate: Data de lançamento da versão
  • eula: O arquivo EULA
  • appdir: Diretório onde estão os arquivos da aplicação
  • docroot: Diretório para onde o alias do apache irá apontar. No caso de ZF2 é o public
  • scriptsdir: Diretório onde estão os scripts do zdpack
  • healthcheck: Caminho para o Zend Server testar se a aplicação está ok. Normalmente podemos definir como index.php.
  • updateurl: Url para atualização
  • dependencies: Os requisitos que o servidor deve ter para a aplicação funcionar corretamente. Todos serão checados durante o processo de deployment.
  • parameters: Parâmetros para o processo de deployment
  • variables: Define variáveis de ambiente para os scripts do zdpack

Os scripts do zdpack são executados numa ordem específica e você pode usar para atualizar o banco de dados, criar arquivos de configuração, enviar um email após uma atualização, etc. Dentro de cada script existe um comentário dando maiores explicações e quais variáveis estão disponíveis para ele.

  • Deploy
    • pre_stage.php: Executado logo após ser feito o upload e descompactado no servidor e antes de qualquer outra coisa
    • post_stage.php: Executado após a etapa de stage, todos os arquivos já estão no lugar, mas a aplicação ainda não é acessível via página
    • pre_activate.php: Antes de ativar a aplicação
    • post_activate.php: Final do processo de deployment. Aqui a aplicação já está toda configurada e acessível via página.
  • Rollback (lembro que a versão gratuita não oferece suporte para rollback)
    • pre_rollback.php: Executado antes de iniciar um rollback
    • post_rollback.php: Alguém arrisca? 🙂
  • Remover
    • pre_deactivate.php: Executado no início do processo de desativação da aplicação
    • post_deactivate.php: Executado após o processo, aqui a página já não é mais acessada, mas os arquivos ainda estão no servidor
    • pre_unstage.php: Início do processo de remoção da aplicação
    • post_unstage.php: Término do processo

Criando o pacote

Com tudo em ordem e configurado, podemos validar e criar nosso pacote. Saia do diretório da aplicação e execute:

Com o pacote criado, podemos entrar no Zend Server e fazer o upload do pacote.

Realizando o deployment

Vá na aba “Applications” -> Apps

1

Clique em “Deploy Application” e faça o upload do ZFTutorial.zpk

2

Selecione o nome, servidor e caminho da aplicação

3

Aceite a licença

4

Aqui ele vai fazer a validação dos pré-requisitos da aplicação

5

E pedir os campos definidos no deployment.xml

6

Em seguida, irá mostrar a tela de resumo

7

E irá começar o processo de instalação

8

Se tudo correr bem, ela esta pronta

9

E acessível pelo endereço http://<servidor>/zftutorial sem precisar mexer no apache, criar  Alias, nada, o Zend Server já faz automaticamente para você.

10

Atualizando uma aplicação

Depois de trabalharmos na nossa aplicação mais um pouco, chegou a hora de atualizarmos. O processo de criação do pacote é exatamente o mesmo, mas aumente o número da versão, senão o Zend Server vai achar que se trata da mesma versão e não vai fazer nada.

Ao invés de clicarmos em “Deploy”, vamos na linha da nossa aplicação e clicamos no primeiro botão que é “Update” e só seguir as instruções (Next, Next, Next 🙂 )

Pronto! Atualização feita.

Se olharmos o diretório onde ele salva os arquivos, vamos encontrar nosso diretório e as versões:

 

Referências:

Parte 1 – Visão Geral

Parte 2 – Instalação e Configuração

Parte 3 – Virtual Hosts

Parte 4 – Z-Ray

Parte 5 – Distribuição (Deployment)

Parte 6 – Definir uma aplicação

Parte 7 – Métrica

Parte 8 – Eventos e Code Tracing

Zend Server

Até a próxima!

Leandro Silva

PHP developer since 1997, loves movies, music and dogs.

2 Comentários para: “Zend Server 8 – Distribuição (Deployment)

  1. Pingback: Zend Server 8 – Eventos e Code Tracing – Reader

  2. Olá Leandro Silva,

    Eu trabalho com testes, achei seu post muito interessante, inclusive instalei o zend server para analisar essa ferramenta.
    Teria como você fazer uma explicação de configuração para utilizar o z-ray em uma aplicação de produção?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*