O documento discute estratégias para automatizar o processo de implantação de aplicações PHP, incluindo simplificar configurações, gerenciar versões de software de forma elegante usando ferramentas padrão e colocar o processo de implantação fora do código do aplicativo. Automatizar implantações pode melhorar a confiabilidade, mas nenhum sistema é perfeito e a comunidade pode ajudar quando problemas surgem.
17. Você conhece seu software?
● Configurações
Deployment & PHP ProPHP
2013 / Abril
18. Você conhece seu software?
● Configurações
– As que não variam
Deployment & PHP ProPHP
2013 / Abril
19. Você conhece seu software?
● Configurações
– As que não variam
● Exemplo: diretórios de módulos, views...
Deployment & PHP ProPHP
2013 / Abril
20. 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 ProPHP
2013 / Abril
21. 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 ProPHP
2013 / Abril
22. 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 ProPHP
2013 / Abril
24. Você conhece seu ambiente?
● Instâncias
Deployment & PHP ProPHP
2013 / Abril
25. Você conhece seu ambiente?
● Instâncias
– Uma, várias...
● Se são várias, possui cluster manager?
Deployment & PHP ProPHP
2013 / Abril
26. Você conhece seu ambiente?
● Instâncias
– Uma, várias...
● Se são várias, possui cluster manager?
● Administração
Deployment & PHP ProPHP
2013 / Abril
27. 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 ProPHP
2013 / Abril
35. Como é o seu deploy?
Deployment & PHP ProPHP
2013 / Abril
36. Como é o seu deploy?
● Geração de pacote/release
Deployment & PHP ProPHP
2013 / Abril
37. Como é o seu deploy?
● Geração de pacote/release
– Conceito não existe?
Deployment & PHP ProPHP
2013 / Abril
38. Como é o seu deploy?
● Geração de pacote/release
– Conceito não existe?
– Geração é uma ação manual?
Deployment & PHP ProPHP
2013 / Abril
39. Como é o seu deploy?
● Geração de pacote/release
– Conceito não existe?
– Geração é uma ação manual?
● Ajustes do software
Deployment & PHP ProPHP
2013 / Abril
40. 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 ProPHP
2013 / Abril
41. 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 ProPHP
2013 / Abril
42. 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 ProPHP
2013 / Abril
43. 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 ProPHP
2013 / Abril
44. 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 ProPHP
2013 / Abril
49. Dicas para Simplificação
● Construa releases utilizáveis
● Deixe configurável somente o necessário
Deployment & PHP ProPHP
2013 / Abril
50. Dicas para Simplificação
● Construa releases utilizáveis
● Deixe configurável somente o necessário
● Exija menos customização do ambiente
Deployment & PHP ProPHP
2013 / Abril
51. 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 ProPHP
2013 / Abril
55. Dicas para Automatização
● Simplifique o deploy
● Gerencie releases elegantemente
Deployment & PHP ProPHP
2013 / Abril
56. Dicas para Automatização
● Simplifique o deploy
● Gerencie releases elegantemente
– Evite diversificar as configurações entre elas
Deployment & PHP ProPHP
2013 / Abril
57. 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 ProPHP
2013 / Abril
58. 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 ProPHP
2013 / Abril
59. 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 ProPHP
2013 / Abril
60. 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 ProPHP
2013 / Abril
69. para refletir...
● Não existe automatização infalível
Deployment & PHP ProPHP
2013 / Abril
70. para refletir...
● Não existe automatização infalível
● Seguir padrões é saudável
Deployment & PHP ProPHP
2013 / Abril
71. 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 ProPHP
2013 / Abril
72. 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 ProPHP
2013 / Abril
73. 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 ProPHP
2013 / Abril
74. 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
Deployment & PHP ProPHP
2013 / Abril
75. Obrigado!
Renan de Lima
renandelima@gmail.com
http://github.com/renanbr
Deployment & PHP ProPHP
2013 / Abril