Deployment & PHP
-
Upload
renan-de-lima -
Category
Technology
-
view
665 -
download
3
Transcript of Deployment & PHP
Deployment & PHPo caminho para a automatização
Renan de LimaProPHP - Abril / 2013
Deployment & PHP ProPHP2013 / Abril
Agenda
● Definições● Conceitos● Recomendações
Deployment & PHP ProPHP2013 / Abril
O que é
Deployment & PHP ProPHP2013 / Abril
O que é
Disponibilizar software para utilização!
Deployment & PHP ProPHP2013 / Abril
O que não é
Deployment & PHP ProPHP2013 / Abril
O que não é
● Validação
Deployment & PHP ProPHP2013 / Abril
O que não é
● Validação● Teste
Deployment & PHP ProPHP2013 / Abril
O que não é
● Validação● Teste● Empacotamento
Deployment & PHP ProPHP2013 / Abril
Pré-requisitos
Deployment & PHP ProPHP2013 / Abril
Pré-requisitos
● Software
Deployment & PHP ProPHP2013 / Abril
Pré-requisitos
● Software– git, svn, zip, phar, composer, pear, pyrus...
Deployment & PHP ProPHP2013 / Abril
Pré-requisitos
● Software– git, svn, zip, phar, composer, pear, pyrus...
● Conhecer o software
Deployment & PHP ProPHP2013 / Abril
Pré-requisitos
● Software– git, svn, zip, phar, composer, pear, pyrus...
● Conhecer o software– Configurações necessárias
Deployment & PHP ProPHP2013 / Abril
Pré-requisitos
● Software– git, svn, zip, phar, composer, pear, pyrus...
● Conhecer o software– Configurações necessárias
● Conhecer o ambiente destino
Deployment & PHP ProPHP2013 / Abril
Pré-requisitos
● Software– git, svn, zip, phar, composer, pear, pyrus...
● Conhecer o software– Configurações necessárias
● Conhecer o ambiente destino– Quantos são, onde estão, permissões...
Deployment & PHP ProPHP2013 / Abril
Você conhece seu software?
Deployment & PHP ProPHP2013 / Abril
Você conhece seu software?
● Configurações
Deployment & PHP ProPHP2013 / Abril
Você conhece seu software?
● Configurações– As que não variam
Deployment & PHP ProPHP2013 / Abril
Você conhece seu software?
● Configurações– As que não variam
● Exemplo: diretórios de módulos, views...
Deployment & PHP ProPHP2013 / Abril
Você conhece seu software?
● Configurações– As que não variam
● Exemplo: diretórios de módulos, views...
– As que variam conforme o ambiente
Deployment & PHP ProPHP2013 / Abril
Você conhece seu software?
● Configurações– As que não variam
● Exemplo: diretórios de módulos, views...
– As que variam conforme o ambiente● Exemplo: credenciais de banco, cache...
Deployment & PHP ProPHP2013 / Abril
Você conhece seu software?
● Configurações– As que não variam
● Exemplo: diretórios de módulos, views...
– As que variam conforme o ambiente● Exemplo: credenciais de banco, cache...● Precisam ser parametrizadas no deploy!
Deployment & PHP ProPHP2013 / Abril
Você conhece seu ambiente?
Deployment & PHP ProPHP2013 / Abril
Você conhece seu ambiente?
● Instâncias
Deployment & PHP ProPHP2013 / Abril
Você conhece seu ambiente?
● Instâncias– Uma, várias...
● Se são várias, possui cluster manager?
Deployment & PHP ProPHP2013 / Abril
Você conhece seu ambiente?
● Instâncias– Uma, várias...
● Se são várias, possui cluster manager?
● Administração
Deployment & PHP ProPHP2013 / Abril
Você conhece seu ambiente?
● Instâncias– Uma, várias...
● Se são várias, possui cluster manager?
● Administração– Que permissões você possui no servidor?
● Escrita/leitura, execução de binários, acesso à internet...
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
?
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
ajustes
1 - Captura
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
ajustes
2 - Configuração
1 - Captura
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
ajustes
2 - Configuração
3 - Envio
1 - Captura
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
ajustes
2 - Configuração
3 - Envio
4 - Intervenções
1 - Captura
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
● Geração de pacote/release
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
● Geração de pacote/release– Conceito não existe?
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
● Geração de pacote/release– Conceito não existe?– Geração é uma ação manual?
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
● Geração de pacote/release– Conceito não existe?– Geração é uma ação manual?
● Ajustes do software
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
● Geração de pacote/release– Conceito não existe?– Geração é uma ação manual?
● Ajustes do software– Há verificações manuais no código fonte?
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
● Geração de pacote/release– Conceito não existe?– Geração é uma ação manual?
● Ajustes do software– Há verificações manuais no código fonte?– Há exagero de configurações?
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
● Geração de pacote/release– Conceito não existe?– Geração é uma ação manual?
● Ajustes do software– Há verificações manuais no código fonte?– Há exagero de configurações?
● Envio do código fonte para o servidor
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
● Geração de pacote/release– Conceito não existe?– Geração é uma ação manual?
● Ajustes do software– Há verificações manuais no código fonte?– Há exagero na quantidade de configurações?
● Envio do código fonte para o servidor– É um ser humano quem faz o envio dos arquivos?
Deployment & PHP ProPHP2013 / Abril
Como é o seu deploy?
● Geração de pacote– Conceito de pacote não existe?– Geração do pacote é uma ação manual?
● Ajustes do software– Há verificações manuais no código fonte?– Há exagero na quantidade de configurações?
● Envio do código fonte para o servidor– É um ser humano quem faz o envio dos arquivos?
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
ajustes
2 - Configuração
3 - Envio
4 - Intervenções
1 - Captura
Deployment & PHP ProPHP2013 / Abril
Simplifique!
errar é humano
Deployment & PHP ProPHP2013 / Abril
Dicas para Simplificação
Deployment & PHP ProPHP2013 / Abril
Dicas para Simplificação
● Construa releases utilizáveis
Deployment & PHP ProPHP2013 / Abril
Dicas para Simplificação
● Construa releases utilizáveis● Deixe configurável somente o necessário
Deployment & PHP ProPHP2013 / Abril
Dicas para Simplificação
● Construa releases utilizáveis● Deixe configurável somente o necessário● Exija menos customização do ambiente
Deployment & PHP ProPHP2013 / Abril
Dicas para Simplificação
● Construa releases utilizáveis● Deixe configurável somente o necessário● Exija menos customização do ambiente
– Extensões, bibliotecas...– php.ini, variáveis de ambiente...– Binários, executáveis...
Deployment & PHP ProPHP2013 / Abril
Automatize!
errar é humano
Deployment & PHP ProPHP2013 / Abril
Dicas para Automatização
Deployment & PHP ProPHP2013 / Abril
Dicas para Automatização
● Simplifique o deploy
Deployment & PHP ProPHP2013 / Abril
Dicas para Automatização
● Simplifique o deploy● Gerencie releases elegantemente
Deployment & PHP ProPHP2013 / Abril
Dicas para Automatização
● Simplifique o deploy● Gerencie releases elegantemente
– Evite diversificar as configurações entre elas
Deployment & PHP ProPHP2013 / Abril
Dicas para Automatização
● Simplifique o deploy● Gerencie releases elegantemente
– Evite diversificar as configurações entre elas– Disponibilize-os em protocolos padrões
Deployment & PHP ProPHP2013 / Abril
Dicas para Automatização
● Simplifique o deploy● Gerencie releases elegantemente
– Evite diversificar as configurações entre elas– Disponibilize-os em protocolos padrões
● Controle de versão, gerenciador de pacotes ...
Deployment & PHP ProPHP2013 / Abril
Dicas para Automatização
● Simplifique o deploy● Gerencie releases elegantemente
– Evite diversificar as configurações entre elas– Disponibilize-os em protocolos padrões
● Controle de versão, gerenciador de pacotes ...
● Deploy deve estar fora do software
Deployment & PHP ProPHP2013 / Abril
Dicas para Automatização
● Simplifique o deploy● Gerencie releases elegantemente
– Evite diversificar as configurações entre elas– Disponibilize-os em protocolos padrões
● Controle de versão, gerenciador de pacotes ...
● Deploy deve estar fora do software– O ambiente pode mudar
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
ajustes
2 - Configuração
3 - Envio
4 - Intervenções
1 - Captura
Deployment & PHP ProPHP2013 / Abril
Meta
a rotina automática deve ser capaz de manipular todos os release em qualquer ambiente
Deployment & PHP ProPHP2013 / Abril
Visão Geral
Software
Ambiente
ajustes
2 - Configuração
3 - Envio
4 - Intervenções
1 - Captura
Deployment & PHP ProPHP2013 / Abril
Features Básicas
● Deploy● Redeploy● Rollback● Remove
Deployment & PHP ProPHP2013 / Abril
Ferramentas
● Shell script● Capistrano● PHP Cloud● Zend Deployment● OpenShift● FortRabbit● ...
Deployment & PHP ProPHP2013 / Abril
As escolhas são suas...
Deployment & PHP ProPHP2013 / Abril
... as consequências também!
Deployment & PHP ProPHP2013 / Abril
para refletir...
Deployment & PHP ProPHP2013 / Abril
para refletir...
● Não existe automatização infalível
Deployment & PHP ProPHP2013 / Abril
para refletir...
● Não existe automatização infalível● Seguir padrões é saudável
Deployment & PHP ProPHP2013 / Abril
para refletir...
● Não existe automatização infalível● Seguir padrões é saudável
– Em situações problemáticas, na maioria das vezes, você não está sozinho. A comunidade pode te ajudar
Deployment & PHP ProPHP2013 / Abril
para refletir...
● Não existe automatização infalível● Seguir padrões é saudável
– Em situações problemáticas, na maioria das vezes, você não está sozinho. A comunidade pode te ajudar
● Deixe seu orgulho de lado
Deployment & PHP ProPHP2013 / Abril
para refletir...
● Não existe automatização infalível● Seguir padrões é saudável
– Em situações problemáticas, na maioria das vezes, você não está sozinho. A comunidade pode te ajudar
● Deixe seu orgulho de lado– Você pode ter tomado uma má decisão
Deployment & PHP ProPHP2013 / Abril
para refletir...
● Não existe automatização infalível● Seguir padrões é saudável
– Em situações problemáticas, na maioria das vezes, você não está sozinho. A comunidade pode te ajudar
● Deixe seu orgulho de lado– Você pode ter tomado uma má decisão– Proponha melhorias