Deploy automático
para projetos PHP
Diga adeus ao FTP
Felipe Klerk Signorini
Analista Sênior - NorteMKT
Soluçõ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 delivery
Prepare-se amanhã iremos fazer
deploy.
➔ RollBack = 2 horas fora do ar
➔ Sobreposição de código
Tenho certeza que já tinha resolvido…
➔ LoadBalances/Autoscaling
E quando dá errado ?
Continuos integration
Práticas de automatização de testes unitários e gerenciamento
no versionamento de código.
Continuos Delivery
Práticas para automatizaçao de entrega em ambientes para
validação no negócio.
Continuos Deployment
Automatização de entrega e processos no ambiente de produção.
Continuos X
Backlog 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 isso
Forge/Envoyer
Serviço Saas
AWS CodeDeploy
Funciona somente na
amazon
Deployer PHP
Biblioteca PHP
AWS Code Deploy version: 0.0
os: linux
files:
- 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: application
hooks:
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', 'git@github.com: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
Bye.
felipeklerk@yahoo.com.br
linkedin.com/in/felipe-klerk-signorini
facebook.com/felipesignorini

Deploy automático em projeto PHP - PHPSPIMA 2016

  • 1.
    Deploy automático para projetosPHP Diga adeus ao FTP
  • 2.
    Felipe Klerk Signorini AnalistaSênior - NorteMKT Soluções em arquitetura, nível de infra estrutura e desenvolvimento. DevOps
  • 3.
    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
  • 4.
    Quanto tempo éperdido para apenas entregar aquilo que já foi definido como entregue.
  • 5.
    1. Qual o problemado FTP ➔ Sincronização git e servidor ➔ Downtime ➔ Army delivery Prepare-se amanhã iremos fazer deploy. ➔ RollBack = 2 horas fora do ar ➔ Sobreposição de código Tenho certeza que já tinha resolvido… ➔ LoadBalances/Autoscaling
  • 6.
    E quando dáerrado ?
  • 7.
    Continuos integration Práticas deautomatização de testes unitários e gerenciamento no versionamento de código. Continuos Delivery Práticas para automatizaçao de entrega em ambientes para validação no negócio. Continuos Deployment Automatização de entrega e processos no ambiente de produção.
  • 8.
    Continuos X Backlog CódigoBuild Testes Homologação Deploy Operação Continuos Integration Continuos Delivery Continuos Deployment
  • 9.
    Continuos Integration Continuos Delivery ContinuosDeployment Desenvolvimento Stage Produção Backlog Código Build Testes Homologação Deploy Operação
  • 10.
    Deploy é apenas umadas práticas de cada Continuos X.
  • 11.
    Update or die. Mudançasde paradigma em como controlar e conduzir entregas.
  • 12.
    Desenvolvimento Stage Produção gitpush origin develop Deploy DevDeploy Produção $ dep deployer dev
  • 13.
    Develop Stage UAT - AcceptanceTest Production GIT como controle tag “2.1” tag “1.9” tag “2.0” tag “1.9” Branch - Dev Branch - Master Branch - UAT Branch - Master
  • 14.
    Stage Produção commit “função1” commit “função 2” commit “função 3” commit “função 4” Deploy RollBacks
  • 15.
    Stage Produção commit “função1” commit “função 2” commit “função 3” commit “função 4” Deploy RollBacks
  • 16.
    Stage Produção commit “função1” commit “função 2” commit “função 3” commit “função 4” Deploy RollBacks
  • 17.
    Copiar os arquivosde para Limpar a pasta de cache Reiniciar o php-fpm Enviar um push Para o New Relic Automatização git push origin master
  • 18.
    Como se fazisso Forge/Envoyer Serviço Saas AWS CodeDeploy Funciona somente na amazon Deployer PHP Biblioteca PHP
  • 19.
    AWS Code Deployversion: 0.0 os: linux files: - 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: application hooks: 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
  • 20.
    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', 'git@github.com:org/ativo.git'); - Instalação via Composer - Tarefas paralelas - Escrito em PHP - Gratuito $ dep deploy production
  • 21.
    Forge/Envoyer - Integração como GiTHub e BitBucket - Monitoramento - HealthChecks - GUI
  • 22.