68
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção Daniel Kossmann Ferraz WordCamp São Paulo 2016 | 10.DEZ.2016

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

Embed Size (px)

Citation preview

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

Gerenciando sitesem WordPressde forma eficiente:do deploy à manutençãoDaniel Kossmann Ferraz

WordCamp São Paulo 2016 | 10.DEZ.2016

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

Daniel Kossmann [email protected]

www.spirallab.com.br

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

Desde 2009 <3 com WordPress

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

Criar sites no WordPressé divertido

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

Deploy e manutenção de vários sitesem WordPress leva muito tempo

(e não é divertido)

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

Minha jornadacriando sites em WordPress

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

WorkflowLOCAL → TEST → PROD

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

DeployLOCAL → TESTLOCAL → PROD

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

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

(…)

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

~10min

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

E se derproblema?

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

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

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

Problemas

● Falta de Versionamento● Trabalhoso identificar as alterações● “Bloqueio” do arquivo quando

alguém da equipe edita ele

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

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

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

DeployLOCAL → TESTLOCAL → PROD

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

1. Conectava no servidor pelo terminal2. Entrava na pasta do tema do site

(clone de um repositório Git)3. Atualizava o repositório

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

~2min

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

2 projetos por mês com 15 envios por semana (11 DEV e 4 PROD) por projeto

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

SFTP: ~240hrs/ano

Git: ~48hrs/ano

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

"Automatizar isto não é"Yoda,

filósofo da automatização emestre Jedi nas horas vagas

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

Git HooksDisparar scripts personalizados quando certas

ações importantes ocorrerem

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

Git Hooks

A cada envio (push):LOCAL → TEST

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

Git Hooks

A cada envio (push) com tag:LOCAL → PROD

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

0s para DEV (automático)

menos de 1min para PROD(~42s)

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

2 projetos por mês com 15 envios por semana (11 DEV e 4 PROD) por projeto

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

SFTP: ~96hrs/ano

Git: ~48hrs/ano

Git Hooks: ~4,5hrs/ano

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

Automatizar rulez!

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

Outras vantagens

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

Diminuir a possibilidadede erros (humano)

Todos os arquivos do projeto sincronizados

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

Melhorar a segurançaDesenvolvedores não precisam de acesso ao servidor

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

Automatizar a remoção de arquivos somente de desenvolvimento

readme.*, SCSS/, Gruntfile, node_modules/,bower_components/, ...

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

Deploy automatizado

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

Agora a manutençãodas instalações do WordPress

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

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

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

~2min para atualizar o WordPress+

~1min para teste mínimo do sitex

dois ambientes (TEST e PROD) =

~6min(sem erros)

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

WP 1WP 2WP 3WP 4

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

WP 11WP 12WP 13WP 14WP 15WP 16WP 17WP 18WP 19WP 20

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

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

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

ai meu corassaum

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

Soluçõesmais conhecidas

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

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

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

Plugins ( ManageWP / InfiniteWP / Calypso / ... )

Pontos negativos:● Dependência de serviços de terceiros● Custo● Segurança:

○ Comunicação externa○ Nem sempre tudo é transparente

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

Outra maneira?

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

Solução inspirada no WordPress empacotado (.deb) pelo Debian

( https://wiki.debian.org/WordPress )

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

Mesma instalação do WordPresspara vários sites isolados

(WordPress Farm)

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

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

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

Sites: Plugins

A pasta de plugins do site contém apenas links simbólicos para os

plugins do WordPress Farm

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

Atualizando o WordPress:wp-cli no WordPress Farm

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

WordPress Farm sóé acessível pelo terminal

(mais segurança)

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

Requisitos / Limitações

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

Necessário ter controle do Servidor

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

Uso do terminal para manutençãoe gerenciamento de temas e plugins

( usuários: role = editor)

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

Mesma versão (core/plugins) em todos sites no WordPress Farm

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

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

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

~30s para atualizar a base+

~1min para teste mínimo do sitex

dois ambientes (TEST e PROD) =

~3min(sem erros)

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

30 sites(TEST e PROD)

2 atualizações por mês(Plugins e/ou Core)

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

Painel do WordPress:~72hrs/ano

WordPress Farm:~12hrs/ano

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

Conforme o número de sites aumenta o ganho proporcional de horas

fica ainda maior

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

A ser implementado:atualização automática do TEST

a cada 24hrs e automatizar os testes

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

Outras vantagens

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

Facilidade emimportar/exportar sites

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

Autonomia e controle totaldo que acontece "nos bastidores"

(solução tecnicamente simples)

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

SegurançaIsolamento de sites e

sem comunicações externas

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

Menos um plugin ;)

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

Manutenção automatizada

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

Surgiu uma oportunidade?

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

Use a magiada automação!

Page 68: Gerenciando sites em WordPress de forma eficiente: do deploy à manutençã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