Deploy automático em projeto PHP - PHPSPIMA 2016
-
Upload
felipe-klerk-signorini -
Category
Devices & Hardware
-
view
55 -
download
0
Transcript of Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático para projetos PHP
Diga adeus ao FTP
Felipe Klerk SignoriniAnalista Sênior - NorteMKTSoluções em arquitetura, nível de infra estrutura e desenvolvimento.DevOps
O que é deploy“Jogar código para o servidor”
Instalar o software em um ambiente.
- Transferência de arquivos
- Instalação manual
- Configuração de serviços
Quanto tempo é perdido para apenas entregar aquilo que já foi definido como entregue.
1. Qual o problema do FTP
➔ Sincronização git e servidor
➔ Downtime
➔ Army deliveryPrepare-se amanhã iremos fazer deploy.
➔ RollBack = 2 horas fora do ar
➔ Sobreposição de códigoTenho certeza que já tinha resolvido…
➔ LoadBalances/Autoscaling
E quando dá errado ?
Continuos integrationPráticas de automatização de testes unitários e
gerenciamento no versionamento de código.
Continuos DeliveryPráticas para automatizaçao de entrega em ambientes
para validação no negócio.
Continuos DeploymentAutomatização de entrega e processos no ambiente de
produção.
Continuos XBacklog Código Build Testes Homologação Deploy Operação
Continuos Integration
Continuos Delivery
Continuos Deployment
Continuos Integration
Continuos Delivery
Continuos Deployment
Desenvolvimento Stage Produção
Backlog Código Build Testes Homologação Deploy Operação
Deploy é apenas uma das práticas de cada Continuos X.
Update or die.Mudanças de paradigma em como controlar e conduzir entregas.
Desenvolvimento Stage Produção
git push origin develop
Deploy DevDeploy Produção
$ dep deployer dev
Develop
Stage
UAT - Acceptance Test
Production
GIT como controle
tag “2.1”
tag “1.9”
tag “2.0”
tag “1.9”
Branch - Dev
Branch - Master
Branch - UAT
Branch - Master
Stage Produção
commit “função 1”
commit “função 2”
commit “função 3”
commit “função 4” Deploy
RollBacks
Stage Produção
commit “função 1”
commit “função 2”
commit “função 3”
commit “função 4”
Deploy
RollBacks
Stage Produção
commit “função 1”
commit “função 2”
commit “função 3”
commit “função 4”
Deploy
RollBacks
Copiar os arquivos de para
Limpar a pasta de cache
Reiniciar o php-fpm
Enviar um push Para o New Relic
Automatização
git push origin master
Como se faz issoForge/EnvoyerServiço Saas
AWS CodeDeployFunciona somente na amazon
Deployer PHPBiblioteca PHP
AWS Code Deploy version: 0.0os: linuxfiles: - source: / destination: /var/www/ativo.com/public_html - source: codedeploy/configs/config.php destination: /var/www/ativo.com/permissions: - object: /var/www/ativo.com/public_html owner: application group: applicationhooks: BeforeInstall: - location: codedeploy/scripts/app_dependencies timeout: 300 runas: root ApplicationStart: - location: codedeploy/scripts/app_start timeout: 300 runas: root
- Integração fácil em ambiente AWS
- Integração Github e BitBucket
- Rápida instalação e implementação
- Monitoramento
- Controle de acesso
- HealthChecks
PHP Deployer require 'recipe/symfony.php';
// Configuração do servidor server('prod', ‘ec2’, 22) ->user('ec2-user') ->forwardAgent() // por chave ->stage('production') ->env('deploy_path', '/var/www/ativo.com/');
set('repository', '[email protected]:org/ativo.git');
- Instalação via Composer
- Tarefas paralelas
- Escrito em PHP
- Gratuito
$ dep deploy production
Forge/Envoyer
- Integração com o GiTHub e BitBucket
- Monitoramento
- HealthChecks
- GUI
linkedin.com/in/felipe-klerk-signorini
facebook.com/felipesignorini