Existe Vida além do FTP!

Post on 13-Apr-2017

265 views 0 download

Transcript of Existe Vida além do FTP!

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 PereiraHá mais de 10 anos na área de TI, trabalhando com diversas tecnologias

•ZCPE 5.5

•Membro da “Rumo a Certificação PHP”

•Developer no Zupperhttp://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-deployApó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

Capistranodeploy.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

FTPloy

FTPloy

FTPloy

FTPloy

Deploybot https://deploybot.com

Deploybothttps://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 Bamboohttps://www.atlassian.com/software/bamboo/

Beanstalkhttp://beanstalkapp.com/

Engine yardhttps://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 importanteAntes 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!