Há mais de dez anos que meus processos de deploy, isto é, colocar um site ou sistema em produção, não usam FTP. Qualquer bom provedor, nacional ou internacional, oferece ferramentas muito mais eficientes para o deploy de sites e sistemas. E isso inclui desde pequenos sites em WordPress ou HTML estático até portais com milhares de acesso por hora e grandes sistemas rodando em estruturas de cloud computing elástico.
Por que você não deveria usar FTP
FTP é um protocolo muito simples de troca de arquivos, que pode ser útil para uma porção de coisas. Mas não possui os recursos necessários para o deploy e controle eficiente de aplicações web. Entre os problemas com o protocolo FTP, podemos citar:
- Falta de integração com controle de versão: você está fazendo uma manutenção num site, cujo diretório tem 5MB de dados. Você alterou não mais que uma dúzia de arquivos, em pastas diferentes. Arquivos texto cujos tamanhos, somados, não passam de 200KB. Como você faz o deploy por FTP? Ou sobe o site todo, “por via das dúvidas”, ou precisa pinçar os arquivos que precisa subir, um a um, certo? Algumas ferramentas de transferência, como o Filezilla, conseguem “sincronizar” as pastas, mas eles fazem isso varrendo as pastas uma por uma e comparando as datas e tamanhos dos arquivos. Leva um tempão e, se algum outro programador alterou os arquivos antes de você isso certamente vai dar problemas. O que nos leva a um segundo ponto:
- Falta de recursos de “auditoria” e controle de deploys: não há como obter um log ou lista de quem fez deploy, quando e o que foi feito. Um problema recorrente em ambientes em que uma equipe trabalha com FTP é a sobrescrita de alterações já publicadas. Na pior das hipóteses, gerando perda de trabalho. Mas mesmo que a equipe tenha um ambiente interno de controle de versões e a sobrescrita no FTP seja fácil de resolver, pense na dor de cabeça de ter que explicar para o cliente que o defeito que foi corrigido ontem voltou ao ar hoje, mas já estamos resolvendo.
- Falta de automatização: deploy por FTP é feito à mão. Um homo sapiens navega nas pastas de seu computador e do servidor e arrasta o que deve ser atualizado de um lado para outro. Num processo chato e delicado. Se ele arrasta as coisas para a pasta errada, pode ser muito difícil consertar o problema. Pode ser difícil até entender o problema. E se você coloca um homo sapiens para repetir uma mesma tarefa vinte ou trinta vezes, ele certamente vai errar alguma.
- Falta de recursos para rollback automatizado: você subiu a alteração. Em seguida abriu o site e viu um “erro de conexão ao banco de dados”. Percebe então que subiu a versão errada, ou no lugar errado. Como voltar atrás? Voltar atrás com FTP é um processo ainda mais manual e trabalhoso do que subir o site. Já vi casos, e não foram poucos, em que foi preciso pedir ao provedor para restaurar o backup diário. E esperar por isso, claro.
O que você deveria usar então?
SSH e Git. Há uma série de ferramentas para deploy automático, como o Capistrano ou o Jenkins. Esqueça isso tudo no começo. Aprenda SSH e Git, e construa seu processo de deploy com isso. Você vai ganhar:
- Deploy realmente automático. Com um único comando.
- Integração real com o controle de versão. Isso significa que sempre será possível rastrear cada alteração. Também significa rollback automático, o que é maravilhoso.
- Controle simplificado de múltiplos ambientes. Precisa fazer deploy em um ambiente de homologação, para mostrar as novidades ao cliente? Um comando. Ele aprovou as novidades, e agora é hora de fazer deploy em produção da versão que foi homologada ontem? Um comando.
- Preparação para o futuro. O site cresceu e você precisa agora migrar para um serviço como o AWS Elastic Beanstalk, que oferece escalabilidade “elástica” sob demanda dentro da estrutura de serviços da Amazon. O processo vai ser praticamente indolor. O cliente precisa agora de deploys com zero de indisponibilidade, e você resolveu usar a estratégia Blue Green. Já tem tudo o que precisa.
Por isso, não se conforme em usar FTP. Se precisa estudar SSH e Git, estude, vai valer a pena. Se já sabe, está esperando o quê?
“Jabá”: uma boa maneira de aprender como mudar seus processos de deploy, e muito mais, é o treinamento DevOps Heroes da Visie, que acontece daqui a duas semanas.
Nossa, que letra é essa nos post? estou com uma dificuldade estrema para ler…
Pare de usar FTP http://t.co/BonV9rOWGD
Pare de usar FTP http://t.co/ZpHYyuEdLL
RT @juao: Pare de usar FTP http://t.co/8xvZyAimpz
Pare de usar FTP http://t.co/8xvZyAimpz
RT @elcio: Pare de usar FTP: Há mais de dez anos que parei. Veja porque: http://t.co/GMyBDYtxpW
Marcos Timm Rossow liked this on Facebook.
Pare de usar FTP http://t.co/CJTwDD1Pi3
RT @elcio: Pare de usar FTP: Há mais de dez anos que parei. Veja porque: http://t.co/bsdGaYlPOC
RT @elcio: Pare de usar FTP: Há mais de dez anos que parei. Veja porque: http://t.co/GMyBDYtxpW
Nailton Sousa liked this on Facebook.
Rogério Ferraz liked this on Facebook.
RT @pinceladasdaweb: Pare de usar FTP http://t.co/OPrfHhALDn
João Guilherme liked this on Facebook.
Ricardo Roveran liked this on Facebook.
Andrews Ferreira Guedis liked this on Facebook.
Guilherme Bortolin Serrano liked this on Facebook.
Arthur Corenzan liked this on Facebook.
Kleber Galucio liked this on Facebook.
Ederson Peka liked this on Facebook.
WINSCP. Tenho usado o Filezilla.
Sim, tenho 4 servidores de Hosting nos EUA. Eu vou testar esse WinSCP.
Mario, não sabia do seu interesse por esses assuntos. No Windows eu usava o Putty. No Linux e no Mac já há um cliente nativo no terminal, invocado com o comando ssh.
Mario Jorge Lima liked this on Facebook.
Ricieri Garcez Rosa liked this on Facebook.
RT @elcio: Pare de usar FTP: Há mais de dez anos que parei. Veja porque: http://t.co/GMyBDYtxpW
RT @elcio: Pare de usar FTP: Há mais de dez anos que parei. Veja porque: http://t.co/GMyBDYtxpW
RT @elcio: Pare de usar FTP: Há mais de dez anos que parei. Veja porque: http://t.co/GMyBDYtxpW
No Windows eu uso o WinSCP e no MacOS uso o cyberduck.
Pare de usar FTP http://t.co/JFqsHxzE5u
William Bruno Rocha Moraes liked this on Facebook.
Maurivan Luiz liked this on Facebook.
Elcio, que ferramenta de SSH voce recomendaria?
Eu ia dizer que “deploy de FTP” era coisa de phpeiro… lembrei que mó galera faz RT @erichideki: Pare de usar FTP http://t.co/p7MKnBPyFa
Pare de usar FTP http://t.co/nzt3S9khsC // Tem lugares que já trabalhei que se tirar o FTP, o sysadmin não sabe o que fazer ..
Pare de usar FTP http://t.co/T5QpXhipSb
Felipe Dos Santos Gomes liked this on Facebook.
Vanessa Martinez Tonini liked this on Facebook.
RT @elcio: Pare de usar FTP: Há mais de dez anos que parei. Veja porque: http://t.co/GMyBDYtxpW
RT @pinceladasdaweb: Pare de usar FTP http://t.co/OPrfHhALDn
Pare de usar FTP http://t.co/OPrfHhALDn