75
Deployment & PHP o caminho para a automatização Renan de Lima ProPHP - Abril / 2013

Deployment & PHP

Embed Size (px)

Citation preview

Page 1: Deployment & PHP

Deployment & PHPo caminho para a automatização

Renan de LimaProPHP - Abril / 2013

Page 2: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Agenda

● Definições● Conceitos● Recomendações

Page 3: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

O que é

Page 4: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

O que é

Disponibilizar software para utilização!

Page 5: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

O que não é

Page 6: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

O que não é

● Validação

Page 7: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

O que não é

● Validação● Teste

Page 8: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

O que não é

● Validação● Teste● Empacotamento

Page 9: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Pré-requisitos

Page 10: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Pré-requisitos

● Software

Page 11: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Pré-requisitos

● Software– git, svn, zip, phar, composer, pear, pyrus...

Page 12: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Pré-requisitos

● Software– git, svn, zip, phar, composer, pear, pyrus...

● Conhecer o software

Page 13: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Pré-requisitos

● Software– git, svn, zip, phar, composer, pear, pyrus...

● Conhecer o software– Configurações necessárias

Page 14: Deployment & PHP

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

Page 15: Deployment & PHP

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

Page 16: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Você conhece seu software?

Page 17: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Você conhece seu software?

● Configurações

Page 18: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Você conhece seu software?

● Configurações– As que não variam

Page 19: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Você conhece seu software?

● Configurações– As que não variam

● Exemplo: diretórios de módulos, views...

Page 20: Deployment & PHP

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

Page 21: Deployment & PHP

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

Page 22: Deployment & PHP

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!

Page 23: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Você conhece seu ambiente?

Page 24: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Você conhece seu ambiente?

● Instâncias

Page 25: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Você conhece seu ambiente?

● Instâncias– Uma, várias...

● Se são várias, possui cluster manager?

Page 26: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Você conhece seu ambiente?

● Instâncias– Uma, várias...

● Se são várias, possui cluster manager?

● Administração

Page 27: Deployment & PHP

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

Page 28: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

Page 29: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

Page 30: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

?

Page 31: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

ajustes

1 - Captura

Page 32: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

ajustes

2 - Configuração

1 - Captura

Page 33: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

ajustes

2 - Configuração

3 - Envio

1 - Captura

Page 34: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

ajustes

2 - Configuração

3 - Envio

4 - Intervenções

1 - Captura

Page 35: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Como é o seu deploy?

Page 36: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Como é o seu deploy?

● Geração de pacote/release

Page 37: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Como é o seu deploy?

● Geração de pacote/release– Conceito não existe?

Page 38: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Como é o seu deploy?

● Geração de pacote/release– Conceito não existe?– Geração é uma ação manual?

Page 39: Deployment & PHP

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

Page 40: Deployment & PHP

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?

Page 41: Deployment & PHP

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?

Page 42: Deployment & PHP

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

Page 43: Deployment & PHP

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?

Page 44: Deployment & PHP

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?

Page 45: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

ajustes

2 - Configuração

3 - Envio

4 - Intervenções

1 - Captura

Page 46: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Simplifique!

errar é humano

Page 47: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Dicas para Simplificação

Page 48: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Dicas para Simplificação

● Construa releases utilizáveis

Page 49: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Dicas para Simplificação

● Construa releases utilizáveis● Deixe configurável somente o necessário

Page 50: Deployment & PHP

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

Page 51: Deployment & PHP

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

Page 52: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Automatize!

errar é humano

Page 53: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Dicas para Automatização

Page 54: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Dicas para Automatização

● Simplifique o deploy

Page 55: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Dicas para Automatização

● Simplifique o deploy● Gerencie releases elegantemente

Page 56: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Dicas para Automatização

● Simplifique o deploy● Gerencie releases elegantemente

– Evite diversificar as configurações entre elas

Page 57: Deployment & PHP

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

Page 58: Deployment & PHP

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

Page 59: Deployment & PHP

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

Page 60: Deployment & PHP

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

Page 61: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

ajustes

2 - Configuração

3 - Envio

4 - Intervenções

1 - Captura

Page 62: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Meta

a rotina automática deve ser capaz de manipular todos os release em qualquer ambiente

Page 63: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Visão Geral

Software

Ambiente

ajustes

2 - Configuração

3 - Envio

4 - Intervenções

1 - Captura

Page 64: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Features Básicas

● Deploy● Redeploy● Rollback● Remove

Page 65: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Ferramentas

● Shell script● Capistrano● PHP Cloud● Zend Deployment● OpenShift● FortRabbit● ...

Page 66: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

As escolhas são suas...

Page 67: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

... as consequências também!

Page 68: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

para refletir...

Page 69: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

para refletir...

● Não existe automatização infalível

Page 70: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

para refletir...

● Não existe automatização infalível● Seguir padrões é saudável

Page 71: Deployment & PHP

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

Page 72: Deployment & PHP

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

Page 73: Deployment & PHP

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

Page 74: Deployment & PHP

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

Page 75: Deployment & PHP

Deployment & PHP ProPHP2013 / Abril

Obrigado!

Renan de Lima

[email protected]://github.com/renanbr