Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção

A cada ano aumenta a quantidade de profissionais que além de criar e desenvolver o site em WordPress, precisam fazer a configuração, instalação e manutenção, tarefas que podem consumir um tempo significativo da sua semana, e que certamente pioram à medida em que o número de projetos cresce. Esta palestra apresenta uma alternativa para a gestão de múltiplos sites em WordPress, usando uma única instalação e sem Multisite, plugins ou outros serviços (que em muitos casos são pagos). Combinando wp-cli para administração e git para deploy automático, reduz-se o tempo gasto nas tarefas de manutenção, resultando numa economia significativa de tempo, incluindo atualização do core e plugins.

palestrante-daniel-ferraz

1. Quando você percebeu que precisava de soluções para automatizar tarefas repetitivas?
Começou bem cedo, acredito que em 2000/2001, na época eu era bem ativo no IRC em um canal chamado #webmasters na rede BrasNET. Sempre haviam pessoas perguntando coisas como “como coloca um contador no meu site?”, “quero criar um fórum, onde baixo um código?”, “onde posso achar imagens gratuitas?”, e via que eu me repetia muito nas respostas, então resolvi criar um “script” chamado WTA (WebTeam Add-on) que adicionava um menu no mIRC (na época eu usava uma modificação chamada Full Throttle) com uma lista de tipos de serviços separados por categorias e eu selecionava um deles e ele colava a lista no canal direcionando para a pessoa que perguntou. Resolvi compartilhar ele para possibilitar que outras pessoas também o utilizassem e pudessem colaborar também. Na época eu nem tinha ideia do que era Software Livre. Uma curiosidade engraçada, meu nick era DarK_WeB, bem coisa de adolescente, rs

Outra grande mudança nesse sentido foi por conta de um site que existia na mesma época chamado, se não me engana a memória, Webmasters Online, onde no site havia um contador de quando iria acontecer a próxima atualização de conteúdo e conversando um dia com o criador, ele me explicou que essa atualização era toda automática (hoje em dia, o famoso agendar post, rs). Isso abriu minha mente para muitas possibilidades de automação e eu acabei criando um site que fazia algo parecido baseado em um sistema de pontuação e quantidade de artigos disponíveis em uma fila de espera. Na época eu estava aprendendo PHP e nem existia o WordPress ainda, o CMS mais conhecido era o PhpNuke. Fico aqui imaginando o quão divertido teria sido se eu já tivesse começado podendo utilizar todo o poder que o WordPress oferece hoje em dia…

Quando comecei a trabalhar profissionalmente com sites, percebi que eu constantemente realizava tarefa que eram muito repetitivas entre os vários projetos, principalmente toda a parte de instalação, manutenção e migração de sites. Então quando algo começa a se repetir, começo a pensar em como eu não poderia otimizar aquela atividade para que eu pudesse ter mais tempo para fazer outras coisas mais divertidas.

2. Qual a importância do terminal no gerenciamento de sites?
É muito legal criar coisas através de uma interface, mas a partir do momento que você coloca a mão no terminal, você começa a ter uma visão completamente diferente, muito mais ampla, principalmente porque você começa a entender como as coisas funcionam e são estruturadas.

É possível fazer muita coisa sabendo apenas os comandos básicos do terminal e conforme a necessidade for surgindo, você pode ir aprendendo mais coisas. Quer exportar o banco de dados de um site em WordPress para fazer um backup ou migração? Você não precisa de um plugin para isso (nem do PhpMyAdmin)! Você pode utilizar o comando mysqldump ou utilizar ferramentas já existentes que ajudam a automatizar muitas tarefas como o wp-cli. Quer automatizar esse backup? É possível criar um script que roda no horário que você definir através do cron. Através de uma interface, você está sempre limitado às funcionalidades de quem programou e muitas vezes perde bastante tempo clicando em várias opções e botões para executar uma tarefa. É claro que se você tiver acesso ao código você poderia adicionar essas funcionalidades que precisa, mas acredito que na maioria das vezes é bem mais prático e rápido você criar um script para resolver essa tarefa.

Acredito que além do ganho na velocidade (na maioria das vezes é muito mais rápido abrir um terminal e executar um comando do que ter que abrir uma interface e ter que esperar carregar e fazer vários cliques), também tem a questão da autonomia, pois você tem muito mais possibilidades para fazer várias combinações de comandos. Que tal criar um comando para atualizar o WordPress, que automaticamente faz primeiro o backup do banco e dos arquivos e depois atualiza o core e plugins em seu ambiente de homologação para depois de testado colocar tudo em produção?

Hoje em dia eu vejo que minha experiência profissional deu um salto muito grande quando eu deixei de usar painéis de controle, para fazer as mesmas coisas por um terminal. No começo dá mais trabalho, você se depara com muitos erros e situações que você não faz a mínima ideia de como resolver, mas tudo isso agrega muito na sua experiência e vai expandindo seu conhecimento e capacidade de resolução de problemas.

3. É possível incluir esses processos dentro da rotina de equipes que contam com vários desenvolvedores?
Não é só possível, como é algo que eu recomendo fortemente. A automatização pode resolver vários problemas comuns em equipes com vários desenvolvedores, como por exemplo permitir o deploy de código para o ambiente de homologação, e mais tarde de produção, sem sequer nenhum deles terem acesso direto ao servidor, o que também acaba sendo um ganho de segurança. É possível também criar rotinas para automação de criação de sites, backups, exportação de sites, otimizações de imagens, limpeza de arquivos, etc. As possibilidades são infinitas.

Para as empresas, o principal ganho é na redução significativa de tempo gasto com tarefas repetitivas, que normalmente não agregam em nada no valor final de um projeto, e também uma maior segurança, pois a automatização retira o fator de erro humano ao realizar essas tarefas. Já para os desenvolvedores a principal vantagem é poder ter mais tempo para focar na programação, não precisando mais se incomodar com essas tarefas que normalmente não exigem nada da sua capacidade de resolução de problemas.

Infelizmente nem sempre as pessoas responsáveis pelas decisões conseguem visualizar a vantagem em investir tempo para automatizar tarefas, pois é preciso inicialmente gastar mais tempo do que se a tarefa fosse feita manualmente, sem contar que muitas vezes nós mesmos estamos diariamente “apagando incêndios” e é difícil se afastar um pouco para ter uma visão mais global e perceber o que pode ser automatizado para otimizar o nosso trabalho. Mas posso garantir que uma vez que você começar a ter tarefas automatizadas, é muito difícil voltar atrás.

4. Você colabora ou já colaborou com o desenvolvimento de alguma ferramenta para automatização?
Ainda não, o WordCampBH será meu primeiro grande passo nesse sentido, nele vou compartilhar uma metodologia que minha empresa já está utilizando faz algum tempo para automatizar o gerenciamento de sites. A ideia da palestra é apresentar uma solução alternativa ao WordPress Multisite e aos plugins disponíveis, que através de comandos simples no terminal, torne possível gerenciar vários sites de forma rápida e sem muito trabalho.

Ainda não fez sua inscrição? Clique aqui e se inscreva.

Palestrante