tudo o que você gostaria de saber sobre infraestrutura ... · introdução ao varnish • proxy...

29
Tudo o que você gostaria de saber sobre infraestrutura WordPress e nunca teve coragem de perguntar Alessandro Huber dos Santos

Upload: others

Post on 21-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

Tudo o que você gostaria de saber sobre infraestrutura WordPress e nunca teve

coragem de perguntarAlessandro Huber dos Santos

Page 2: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 2

Short Bio &Roadmap

WordCamp Porto Alegre 2018

Page 3: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018

Short Bio

● Analista de Infraestrutura de Hosting Senior @ KingHost

● MBA em Gestão Estratégica da TI @ FGV

● Engenheiro de Computação @ FURG

● Apaixonado por tuning e performance de ambientes Linux

● Pai do Enzo e torcedor fanático do Grêmio

3

Who am I?

Page 4: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 4

Roadmap

• Estruturas de Hospedagens WordPress

– O mais usual: Apache + PHP + MySQL

– Avançando um pouco: NGINX + PHP + MySQL

– Aumentando ainda mais o nível: Varnish Cache

– Mais um nível acima: Terminação SSL com Varnish Cache

• Comparativos de performance entre modelos

• Dicas para Melhorar a Performance de seu WordPress

O que será apresentado aqui?

Page 5: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 5

Estruturas de Hospedagem WordPress(ou “O que está por detrás do meu site?”)

WordCamp Porto Alegre 2018

Page 6: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018

Apache + PHP(-FPM) + MySQL

6

A estrutura mais usual para servir qualquer tipo de site

Page 7: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 7

Apache + PHP(-FPM) + MySQL

• Mais conhecido como “pilha LAMP”• Padrão em grande parte dos provedores de hospedagem• Vastamente usado em ambientes de desenvolvimento• Fácil de usar e configurar• Vasta documentação na Internet

Page 8: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 8

Apache + PHP(-FPM) + MySQLApache + módulo PHP

Page 9: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 9

Apache + PHP(-FPM) + MySQLApache + proxy FastCGI + PHP-FPM

Page 10: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018

Nginx + PHP-FPM + MySQL

10

Avançando um pouco o nível...

Page 11: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 11

Nginx + PHP-FPM + MySQL

• Mais conhecido como “pilha LEMP”• Requer maior conhecimento para configuração• Mais performático para conteúdo estático

– Bastante utilizada para ambientes específicos para WP• Usa necessariamente PHP-FPM para processar scripts PHP

Page 12: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 12

Nginx + PHP-FPM + MySQL

Page 13: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018

Introdução ao Varnish

13

Ou “Como adicionar uma camada de cache ao seu site”

Page 14: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 14

Introdução ao Varnish

• Proxy reverso (frontend)– Conteúdo em cache é servido por ele– Conteúdo não está em cache, proxy reverso requisita o

mesmo para o web server (backend)• Armazenamento do cache em memória (mais performático) ou

em disco

Page 15: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 15

Introdução ao Varnish

• Nem todo conteúdo pode ser mantido em cache– Sessões de clientes– Áreas autenticadas

• Onde não pode ser feito cache, proxy reverso deve ser instruído a repassar a requisição para o web server

Page 16: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 16

Introdução ao Varnish

Page 17: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018

Varnish com Terminação SSL

17

Ou “Como Trabalhar com Cache e SSL Juntos?”

Page 18: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 18

Varnish com Terminação SSL

• Varnish não suporta SSL por design• Terminação SSL

– Um web server recebe as requisições HTTPS e redireciona pro Varnish

– Nginx ou Pound ou HAProxy, etc.

Page 19: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 19

Varnish com Terminação SSL

Page 20: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 20

Testes de performanceOu “Como estas estruturas se saem na

prática?”

WordCamp Porto Alegre 2018

Page 21: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 21

Metodologia do Teste

● Utilizados três domínios para simulação, todos com a mesma instalação do WordPress:○ Apache ou Nginx + PHP-FPM○ Varnish + Nginx + PHP-FPM○ Terminação SSL + Varnish + Nginx + PHP-FPM

● Rodamos localmente um teste de stress com o Apache Benchmark (ab)

Como o teste foi conduzido?

Page 22: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 22

ResultadosTempo Total do Teste (em Segundos)

EstruturaConexões simultâneas

1 5 10 25 50 100Apache + PHP 81,13 38,17 35,04 39,96 35,56 33,73Nginx + PHP 75,25 37,24 35,8 35,64 34,95 34,8Varnish + Nginx + PHP 0,53 0,17 0,19 0,2 0,19 0,17

SSL + Varnish + Nginx + PHP 4,0 3,8 3,8 3,9 3,8 3,8

22

Page 23: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 23

EstruturaConexões simultâneas

1 5 10 25 50 100Apache + PHP 12,3 38,2 35 39,9 35,6 33,73Nginx + PHP 13,3 26,85 27,93 28,06 28,61 28,74Varnish + Nginx + PHP 1891,4 5849,7 5322,8 4867,3 5172,7 5845,9

SSL + Varnish + Nginx + PHP 246,6 260,4 260,9 253,3 260,4 261,3

23

ResultadosRequisições por Segundo (RPS)

Page 24: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 24

Otimização de Ambientes WordPressOu “O Que Posso Fazer para Melhorar?”

WordCamp Porto Alegre 2018

Page 25: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 25

Otimização de Ambientes WP

● Sistema operacional○ Tuning de parâmetros do kernel (performance de rede,

consumo de memória e IO)○ Separação do serviço de banco de dados dos serviços Web

● Apache ou Nginx○ Ajuste do número máximo de conexões simultâneas

● Varnish○ Ajuste na quantidade de memória a ser alocada para

armazenamento de cache

O que fazer para melhorar?

Page 26: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 26

Otimização de Ambientes WP

● PHP○ Utilize a última versão disponível (7.2)○ Utilize apenas as extensões PHP necessárias○ Ajuste coerentemente suas diretivas no php.ini

● PHP-FPM○ Escolha do gerenciador de processos ideal○ Ajuste do número máximo de processos por pool

O que fazer para melhorar?

Page 27: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018 27

Otimização de Ambientes WP

● WordPress○ Mantenha instalado apenas plugins e temas ativos○ Substitua plugins que impactam sua performance○ Se não puder utilizar Varnish no seu ambiente, instale um

plugin de cache de conteúdo○ Mantenha sob controle o tamanho da sua base de dados○ Redimensione suas imagens conforme necessidade○ Desabilite o wp-cron e adicione-o como uma cron em seu

sistema operacional

O que fazer para melhorar?

Page 28: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

WordCamp Porto Alegre 2018

Dúvidas?

28

Page 29: Tudo o que você gostaria de saber sobre infraestrutura ... · Introdução ao Varnish • Proxy reverso (frontend) – Conteúdo em cache é servido por ele – Conteúdo não está

Obrigado!Dúvidas e sugestões

Alessandro Huber dos [email protected]