SlideShare uma empresa Scribd logo
1 de 53
Existe vida além do FTP
GUSTAVO PEREIRA @ PHPCONFERENCE BRASIL 2015
Precisamos falar sobre...
Alternativas ao uso totalmente manual do
FTP como ‘método de deploy’
Sem falar mal de...
Tecnologia, metodologia ou
ferramenta!
Quem é 'esse cara ai' que está falando?
•Gustavo Pereira
Há mais de 10 anos na área de TI,
trabalhando com diversas tecnologias
•ZCPE 5.5
•Membro da “Rumo a Certificação PHP”
•Developer no Zupper
http://www.zupper.com.br
Slideshare!
O ‘problema’ do FTP sendo usado
manualmente para deploy
1 . Segurança
No client de FTP
Interceptando a conexão
O ‘problema’ do FTP sendo usado
manualmente para deploy
2. Mais suscetível a falhas humanas
O ‘problema’ do FTP sendo usado
manualmente para deploy
O ‘problema’ do FTP sendo usado
manualmente para deploy
• Descontrole total do que de fato subiu
• Retrabalho
•Tentação de fazer alterações direto em prod
O ‘problema’ do FTP sendo usado
manualmente para deploy
• O erro aparece ‘na hora’ para o usuário
• Você pode esquecer de dar o push no repo
antes de ‘subir’ em prod (isso se você usar um VCS)
O ‘problema’ do FTP como forma unica
de deploy
3. Serviços de FTP configurados
“daquele jeito”
“Ah, conecta no FTP como ROOT”
O ‘problema’ do FTP sendo usado
manualmente para deploy
4. VCS e deployment andam de mãos
dadas
Pense nas possibilidades que um método
de deploy pode te oferecer…
•One-time setup
• One-line deployment / simplicidade
Pense nas possibilidades que um método
de deploy pode te oferecer…
• Automação de tarefas comuns
•Desfazer alterações indesejadas
(ou configurar o deployment para negar pushes cujos testes deram erro)
• “Build” e Integrações Contínuas
Mas... e agora?
Temos uma penca de ferramentas que
pode nos ajudar!
Mas vale lembrar:
• Não existe bala de prata
• Todas elas tem seus pontos fortes e fracos
• Cabe a você avaliar a ferramenta que melhor se enquadra
no seu cenário
Nada disso do que vamos falar faz
sentido...
… se você não usa (ou não quer usar) um controle de
versão!
Git-FTP
http://git-ftp.github.io/git-ftp/
Precisa urgentemente de testers (Windows e OSX)!
Git-FTP
Git-deploy
https://github.com/mislav/git-deploy
Setup bem simples
(é bom para quem está começando agora a aventura)
Git-deploy
Após o setup inicial
(que pode ser feito em apenas uma máquina) …
Git-deploy
Você consegue enfim realizar o deploy em apenas uma
linha de comando!
Capistrano
http://www.capistranorb.com
Escrito em Ruby (mas funciona com projetos PHP)
Possui plugins para Composer, Laravel, Symfony
Capistrano
Você pode definir a estratégia de deploy para cada ambiente
Capistrano
deploy.rb
Capistrano
Para o deploy (Prod/Homologação):
$ cap production deploy
$ cap staging deploy
$ cap deploy rollback
Outros PaaS (Platform as Service)
• Envolvem custos (mas possuem versões free para teste)
• Possuem GUIs
• Estão sujeitos a interrupções do serviço
• Simplificam demais o processo de dpeloy como um todo e
CI
• Não possuem tanta flexibilidade
FTPloy
https://ftploy.com/
FTPloy
FTPloy
FTPloy
FTPloy
FTPloy
Deploybot
https://deploybot.com
Deploybot
https://deploybot.com
• Integração com outros serviços
(DigitalOcean, AWS, Heroku)
•Está em constante aprimoramento
Deploybot
Deploybot
ContinuousPHP
https://continuousphp.com/
Que agora é grátis para projetos pessoais / Open-Source
=)
ContinuousPHP
https://continuousphp.com/
•Que agora é grátis para projetos pessoais / Open-Source
•Em constante desenvolvimento
ContinuousPHP
ContinuousPHP
ContinuousPHP
ContinuousPHP
ContinuousPHP
Outras ferramentas
Bamboo
https://www.atlassian.com/software/bamboo/
Beanstalk
http://beanstalkapp.com/
Engine yard
https://www.engineyard.com/
Dito isso tudo, o que é mais importante
Sugestão
Proponha uma evolução no seu ambiente de acordo com o
que vc pode gastar - Tempo e $$$!
Dito isso tudo, o que é mais importante
Antes de sair a caça de ferramentas, procure
desenvolver uma cultura de uma estratégia de
deployment clara
É um circulo vicioso e que busca sempre o
aperfeiçoamento!
Dito isso tudo, o que é mais importante
Não usar uma estrategia de deployment signifca
PERDER DINHEIRO
Uma estratégia de deployment pode não ser 100%
perfeita, mas usar qualquer metodo de deployment é
melhor do que nenhum!
Dito isso tudo, o que é mais importante
Existe um mundo de
possibilidades além
do Filezilla!
@gustavosteam
github.com/gustavoper
http://rumoacertificacaophp.com
https://br.linkedin.com/in/gustavoperphp
(fica, vai ter bolo… Digo, sorteio!)
Obrigado!

Mais conteúdo relacionado

Mais procurados

Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com Python
Dorneles Treméa
 

Mais procurados (19)

[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriver
 
Testes e depuração de código com Python
Testes e depuração de código com PythonTestes e depuração de código com Python
Testes e depuração de código com Python
 
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva 3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
 
Gitlab CI/CD com python
Gitlab CI/CD com pythonGitlab CI/CD com python
Gitlab CI/CD com python
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Mtc docker - utilizando no seu dia a dia
Mtc   docker - utilizando no seu dia a diaMtc   docker - utilizando no seu dia a dia
Mtc docker - utilizando no seu dia a dia
 
Alcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaAlcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínua
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com Cypress
 
Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)
 
Jenkins, o CI ao seu dispor
Jenkins, o CI ao seu disporJenkins, o CI ao seu dispor
Jenkins, o CI ao seu dispor
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
 
Minas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com LocustMinas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com Locust
 
Criando Desktop Apps com Electron
Criando Desktop Apps com ElectronCriando Desktop Apps com Electron
Criando Desktop Apps com Electron
 

Semelhante a Existe Vida além do FTP!

Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
Gilmar Pupo
 

Semelhante a Existe Vida além do FTP! (20)

Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!
 
PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOps
 
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
PHPSP TestFest 2010
PHPSP TestFest 2010PHPSP TestFest 2010
PHPSP TestFest 2010
 
Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature Flags
 
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
Desenvolvimento PHP com Vagrant - PHP Conference Brasil 2012
 
Docker - Colocando aplicações em produção
Docker  - Colocando aplicações em produçãoDocker  - Colocando aplicações em produção
Docker - Colocando aplicações em produção
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenv
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSS
 
Fedora 11 Release Party
Fedora 11 Release PartyFedora 11 Release Party
Fedora 11 Release Party
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
 
PaaS - OpenShift como plataforma pública
PaaS - OpenShift como plataforma públicaPaaS - OpenShift como plataforma pública
PaaS - OpenShift como plataforma pública
 
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
PT-BR - Lauching a Public PaaS on Open Source Getup & OpenShift Origin - FISL14
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 

Mais de Gustavo Pereira

Mais de Gustavo Pereira (7)

Jwt mais (emoção) segurança na sua aplicação
Jwt   mais (emoção) segurança na sua aplicaçãoJwt   mais (emoção) segurança na sua aplicação
Jwt mais (emoção) segurança na sua aplicação
 
Eu não sou um "bom programador"!
Eu não sou um "bom programador"!Eu não sou um "bom programador"!
Eu não sou um "bom programador"!
 
Do Windows para o Linux é mais fácil do que você imagina!
Do Windows para o Linux é mais fácil do que você imagina!Do Windows para o Linux é mais fácil do que você imagina!
Do Windows para o Linux é mais fácil do que você imagina!
 
As Escrituras e suas Características - Clareza
As Escrituras e suas Características - ClarezaAs Escrituras e suas Características - Clareza
As Escrituras e suas Características - Clareza
 
As parábolas (revisitadas)
As parábolas (revisitadas)As parábolas (revisitadas)
As parábolas (revisitadas)
 
As parábolas de Mateus 13 (Parte 2)
As parábolas de Mateus 13 (Parte 2)As parábolas de Mateus 13 (Parte 2)
As parábolas de Mateus 13 (Parte 2)
 
Php Conference 2013 (Resumão)
Php Conference 2013 (Resumão)Php Conference 2013 (Resumão)
Php Conference 2013 (Resumão)
 

Último

Último (9)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Existe Vida além do FTP!