Upload
spirallab
View
332
Download
0
Embed Size (px)
Citation preview
Gerenciando sitesem WordPressde forma eficiente:do deploy à manutençãoDaniel Kossmann Ferraz
WordCamp São Paulo 2016 | 10.DEZ.2016
Daniel Kossmann [email protected]
www.spirallab.com.br
Desde 2009 <3 com WordPress
Criar sites no WordPressé divertido
Deploy e manutenção de vários sitesem WordPress leva muito tempo
(e não é divertido)
Minha jornadacriando sites em WordPress
WorkflowLOCAL → TEST → PROD
DeployLOCAL → TESTLOCAL → PROD
1. Abria FileZilla2. Conectava ao servidor3. Entrava na pasta do site4. Seleciona os arquivos alterados5. Enviava os arquivos desta pasta6. Entrava na outra pasta7. Seleciona os arquivos alterados8. Enviava os arquivos desta pasta
(…)
~10min
E se derproblema?
header.phpheader.bkp.20120102.phpheader.bkp.20120203.php
header.bkp.20120203.02.phpheader.bkp.20120203.03.php
header.bkp.20120205.phpheader.bkp.20120207.phpheader.bkp.20120304.phpheader.bkp.20120505.php
Problemas
● Falta de Versionamento● Trabalhoso identificar as alterações● “Bloqueio” do arquivo quando
alguém da equipe edita ele
Sistema de controle de versão(Git, eu escolho você!)
● Ver o que você alterou● Poder restaurar alterações● Sincronizar o trabalho em equipe● Visualizar histórico das alterações
DeployLOCAL → TESTLOCAL → PROD
1. Conectava no servidor pelo terminal2. Entrava na pasta do tema do site
(clone de um repositório Git)3. Atualizava o repositório
~2min
2 projetos por mês com 15 envios por semana (11 DEV e 4 PROD) por projeto
SFTP: ~240hrs/ano
Git: ~48hrs/ano
"Automatizar isto não é"Yoda,
filósofo da automatização emestre Jedi nas horas vagas
Git HooksDisparar scripts personalizados quando certas
ações importantes ocorrerem
Git Hooks
A cada envio (push):LOCAL → TEST
Git Hooks
A cada envio (push) com tag:LOCAL → PROD
0s para DEV (automático)
menos de 1min para PROD(~42s)
2 projetos por mês com 15 envios por semana (11 DEV e 4 PROD) por projeto
SFTP: ~96hrs/ano
Git: ~48hrs/ano
Git Hooks: ~4,5hrs/ano
Automatizar rulez!
Outras vantagens
Diminuir a possibilidadede erros (humano)
Todos os arquivos do projeto sincronizados
Melhorar a segurançaDesenvolvedores não precisam de acesso ao servidor
Automatizar a remoção de arquivos somente de desenvolvimento
readme.*, SCSS/, Gruntfile, node_modules/,bower_components/, ...
Deploy automatizado
Agora a manutençãodas instalações do WordPress
Processo de atualização do WordPress:
1. Acessa o /wp-admin do site2. Usa acessos do gerenciador de senhas3. Abre tela de atualização do WP4. Atualiza tudo5. Testa para ver se não quebrou nada
~2min para atualizar o WordPress+
~1min para teste mínimo do sitex
dois ambientes (TEST e PROD) =
~6min(sem erros)
WP 1WP 2WP 3WP 4
WP 11WP 12WP 13WP 14WP 15WP 16WP 17WP 18WP 19WP 20
TEST: WP 11TEST: WP 12TEST: WP 13TEST: WP 14TEST: WP 15TEST: WP 16TEST: WP 17TEST: WP 18TEST: WP 19TEST: WP 20
PROD: WP 11PROD: WP 12PROD: WP 13PROD: WP 14PROD: WP 15PROD: WP 16PROD: WP 17PROD: WP 18PROD: WP 19PROD: WP 20
ai meu corassaum
Soluçõesmais conhecidas
WordPress Multisite
Pontos negativos:● Segurança:
○ Ambiente único para os arquivos○ Um banco de dados
● Importação/exportação de sites isolados é mais difícil○ Clientes/projetos entram e saem
Plugins ( ManageWP / InfiniteWP / Calypso / ... )
Pontos negativos:● Dependência de serviços de terceiros● Custo● Segurança:
○ Comunicação externa○ Nem sempre tudo é transparente
Outra maneira?
Solução inspirada no WordPress empacotado (.deb) pelo Debian
( https://wiki.debian.org/WordPress )
Mesma instalação do WordPresspara vários sites isolados
(WordPress Farm)
Carrega instalação WordPress Farm( instalação original, apenas com wp-config.php modificado )
Carrega arquivos específicos do Site( contém wp-config.php simplificado e wp-content/ )
Acesso ao Site
Sites: Plugins
A pasta de plugins do site contém apenas links simbólicos para os
plugins do WordPress Farm
Atualizando o WordPress:wp-cli no WordPress Farm
WordPress Farm sóé acessível pelo terminal
(mais segurança)
Requisitos / Limitações
Necessário ter controle do Servidor
Uso do terminal para manutençãoe gerenciamento de temas e plugins
( usuários: role = editor)
Mesma versão (core/plugins) em todos sites no WordPress Farm
Novo processo de atualização do WordPress:
1. Abre o terminal e conecta no servidor2. wp-cli para atualizar o Farm do TEST3. Testa para ver se não quebrou nada4. wp-cli para atualizar o Farm do PROD5. Testa para ver se não quebrou nada
~30s para atualizar a base+
~1min para teste mínimo do sitex
dois ambientes (TEST e PROD) =
~3min(sem erros)
30 sites(TEST e PROD)
2 atualizações por mês(Plugins e/ou Core)
Painel do WordPress:~72hrs/ano
WordPress Farm:~12hrs/ano
Conforme o número de sites aumenta o ganho proporcional de horas
fica ainda maior
A ser implementado:atualização automática do TEST
a cada 24hrs e automatizar os testes
Outras vantagens
Facilidade emimportar/exportar sites
Autonomia e controle totaldo que acontece "nos bastidores"
(solução tecnicamente simples)
SegurançaIsolamento de sites e
sem comunicações externas
Menos um plugin ;)
Manutenção automatizada
Surgiu uma oportunidade?
Use a magiada automação!
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Daniel Kossmann [email protected]
http://bit.ly/wcsp16-spirallab
WordCamp São Paulo 2016 | 10.DEZ.2016