Deploy automático em projeto PHP - PHPSPIMA 2016

22
Deploy automático para projetos PHP Diga adeus ao FTP

Transcript of Deploy automático em projeto PHP - PHPSPIMA 2016

Page 1: Deploy automático em projeto PHP - PHPSPIMA 2016

Deploy automático para projetos PHP

Diga adeus ao FTP

Page 2: Deploy automático em projeto PHP - PHPSPIMA 2016

Felipe Klerk SignoriniAnalista Sênior - NorteMKTSoluções em arquitetura, nível de infra estrutura e desenvolvimento.DevOps

Page 3: Deploy automático em projeto PHP - PHPSPIMA 2016

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

Page 4: Deploy automático em projeto PHP - PHPSPIMA 2016

Quanto tempo é perdido para apenas entregar aquilo que já foi definido como entregue.

Page 5: Deploy automático em projeto PHP - PHPSPIMA 2016

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

Page 6: Deploy automático em projeto PHP - PHPSPIMA 2016

E quando dá errado ?

Page 7: Deploy automático em projeto PHP - PHPSPIMA 2016

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.

Felipe Signorini
refazer a explicação de cada ponto
Page 8: Deploy automático em projeto PHP - PHPSPIMA 2016

Continuos XBacklog Código Build Testes Homologação Deploy Operação

Continuos Integration

Continuos Delivery

Continuos Deployment

Page 9: Deploy automático em projeto PHP - PHPSPIMA 2016

Continuos Integration

Continuos Delivery

Continuos Deployment

Desenvolvimento Stage Produção

Backlog Código Build Testes Homologação Deploy Operação

Page 10: Deploy automático em projeto PHP - PHPSPIMA 2016

Deploy é apenas uma das práticas de cada Continuos X.

Page 11: Deploy automático em projeto PHP - PHPSPIMA 2016

Update or die.Mudanças de paradigma em como controlar e conduzir entregas.

Page 12: Deploy automático em projeto PHP - PHPSPIMA 2016

Desenvolvimento Stage Produção

git push origin develop

Deploy DevDeploy Produção

$ dep deployer dev

Page 13: Deploy automático em projeto PHP - PHPSPIMA 2016

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

Page 14: Deploy automático em projeto PHP - PHPSPIMA 2016

Stage Produção

commit “função 1”

commit “função 2”

commit “função 3”

commit “função 4” Deploy

RollBacks

Page 15: Deploy automático em projeto PHP - PHPSPIMA 2016

Stage Produção

commit “função 1”

commit “função 2”

commit “função 3”

commit “função 4”

Deploy

RollBacks

Page 16: Deploy automático em projeto PHP - PHPSPIMA 2016

Stage Produção

commit “função 1”

commit “função 2”

commit “função 3”

commit “função 4”

Deploy

RollBacks

Page 17: Deploy automático em projeto PHP - PHPSPIMA 2016

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

Page 18: Deploy automático em projeto PHP - PHPSPIMA 2016

Como se faz issoForge/EnvoyerServiço Saas

AWS CodeDeployFunciona somente na amazon

Deployer PHPBiblioteca PHP

Page 19: Deploy automático em projeto PHP - PHPSPIMA 2016

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

Page 20: Deploy automático em projeto PHP - PHPSPIMA 2016

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

Page 21: Deploy automático em projeto PHP - PHPSPIMA 2016

Forge/Envoyer

- Integração com o GiTHub e BitBucket

- Monitoramento

- HealthChecks

- GUI