Deploy automático em projeto PHP - PHPSPIMA 2016

Post on 21-Apr-2017

60 views 0 download

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.

Felipe Signorini
refazer a explicação de cada ponto

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', '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