Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014

Preview:

Citation preview

Reduzindo Tempo de Resposta do Servidor

#wordcampbh 2014

Zertico

Celso Fernandes

fernandes

celsovjf

Cloud Computing

Cloud Computing

Cloud Computing

Cloud Computing

Cloud Computing

Cloud Computing

Cloud Computing

Cloud Computing

Cloud Computing

Cloud Computing

Maratona Mineira!de Programação

1. Requisições Web

2. Nginx vs PHP FPM

3. Cache

4. Conheça seus inimigos (e amigos!)

5. Ferramentas

6. Case

7. Finalizando

Agenda

Desenvolvedor Operações

DevOps DevOps

Conceitos básicos de HTTP Nada de RFC

Apresentação Servidores Web Configuração Servidores

Interface Web Linha de Comando

WordPress Outras Plataformas

Ganho de Performance -

O que vai ter, o que não vai

Desenvolvedor Operações

DevOps DevOps

Conceitos básicos de HTTP Nada de RFC

Apresentação Servidores Web Configuração Servidores

Interface Web Linha de Comando

WordPress Outras Plataformas

Ganho de Performance -

O que vai ter, o que não vai

Desenvolvedor Operações

DevOps DevOps

Conceitos básicos de HTTP Nada de RFC

Apresentação Servidores Web Configuração Servidores

Interface Web Linha de Comando

WordPress Outras Plataformas

Ganho de Performance -

O que vai ter, o que não vai

Desenvolvedor Operações

DevOps DevOps

Conceitos básicos de HTTP Nada de RFC

Apresentação Servidores Web Configuração Servidores

Interface Web Linha de Comando

WordPress Outras Plataformas

Ganho de Performance -

O que vai ter, o que não vai

Desenvolvedor Operações

DevOps DevOps

Conceitos básicos de HTTP Nada de RFC

Apresentação Servidores Web Configuração Servidores

Interface Web Linha de Comando

WordPress Outras Plataformas

Ganho de Performance -

O que vai ter, o que não vai

Desenvolvedor Operações

DevOps DevOps

Conceitos básicos de HTTP Nada de RFC

Apresentação Servidores Web Configuração Servidores

Interface Web Linha de Comando

WordPress Outras Plataformas

Ganho de Performance -

O que vai ter, o que não vai

Desenvolvedor Operações

DevOps DevOps

Conceitos básicos de HTTP Nada de RFC

Apresentação Servidores Web Configuração Servidores

Interface Web Linha de Comando

WordPress Outras Plataformas

Ganho de Performance -

O que vai ter, o que não vai

Desenvolvedor Operações

DevOps DevOps

Conceitos básicos de HTTP Nada de RFC

Apresentação Servidores Web Configuração Servidores

Interface Web Linha de Comando

WordPress Outras Plataformas

Ganho de Performance -

O que vai ter, o que não vai

Requisições Web

WordPress Cloud

Aplicações

Virtualização

Servidor Servidor Servidor

Servidor de Aplicação

Requisição WordPress

1. www.zertico.com

2. Chrome: Qual IP do zertico.com? DNS: IP é 192.168.0.1

3. Chrome: Olá 192.168.0.1 quero ver www.zertico.com

4. Nginx: Quero o HTML

6. PHP: Quero dados!

Edição Nginx

5. index.php

7. banco

Requisição WordPress

1. www.zertico.com 2. Me da a imagem logo.png

Edição Nginx

3. /path/to/logo.png

Requisição WordPress

1. www.zertico.com

2. Chrome: Qual IP do zertico.com? DNS: IP é 192.168.0.1

3. Chrome: Olá 192.168.0.1 quero ver www.zertico.com

4. Apache+mod_php: Quero dados!

Edição Apache

5. index.php

6. banco

Requisição WordPress

1. www.zertico.com 2. Me da a imagem logo.png

Edição Apache

3. /path/to/logo.png

Imagina quanto arquivos .php são lidos/processados

Quantas chamadas ao banco de dados são executadas

Quantos arquivos de imagem, css e JS são lidos do disco

Quantas requisições HTTP são executadas

Chamadas via API, são novas requisições

Quantos ciclos de CPU foram utilizados

Quantos segundos seus clientes ficaram esperando

Requisições

Imagina quanto arquivos .php são lidos/processados

Quantas chamadas ao banco de dados são executadas

Quantos arquivos de imagem, css e JS são lidos do disco

Quantas requisições HTTP são executadas

Chamadas via API, são novas requisições

Quantos ciclos de CPU foram utilizados

Quantos segundos seus clientes ficaram esperando

Requisições

Imagina quanto arquivos .php são lidos/processados

Quantas chamadas ao banco de dados são executadas

Quantos arquivos de imagem, css e JS são lidos do disco

Quantas requisições HTTP são executadas

Chamadas via API, são novas requisições

Quantos ciclos de CPU foram utilizados

Quantos segundos seus clientes ficaram esperando

Requisições

Imagina quanto arquivos .php são lidos/processados

Quantas chamadas ao banco de dados são executadas

Quantos arquivos de imagem, css e JS são lidos do disco

Quantas requisições HTTP são executadas

Chamadas via API, são novas requisições

Quantos ciclos de CPU foram utilizados

Quantos segundos seus clientes ficaram esperando

Requisições

Imagina quanto arquivos .php são lidos/processados

Quantas chamadas ao banco de dados são executadas

Quantos arquivos de imagem, css e JS são lidos do disco

Quantas requisições HTTP são executadas

Chamadas via API, são novas requisições

Quantos ciclos de CPU foram utilizados

Quantos segundos seus clientes ficaram esperando

Requisições

Imagina quanto arquivos .php são lidos/processados

Quantas chamadas ao banco de dados são executadas

Quantos arquivos de imagem, css e JS são lidos do disco

Quantas requisições HTTP são executadas

Chamadas via API, são novas requisições

Quantos ciclos de CPU foram utilizados

Quantos segundos seus clientes ficaram esperando

Requisições

Imagina quanto arquivos .php são lidos/processados

Quantas chamadas ao banco de dados são executadas

Quantos arquivos de imagem, css e JS são lidos do disco

Quantas requisições HTTP são executadas

Chamadas via API, são novas requisições

Quantos ciclos de CPU foram utilizados

Quantos segundos seus clientes ficaram esperando

Requisições

Requisição WordPressNginx vs Apache

Requisição WordPressNginx vs Apache

Requisição WordPressNginx vs Apache

Requisição WordPressNginx vs Apache

Requisição WordPressNginx vs Apache

Filas!! :/

Cache

Requisição WordPress

1. www.zertico.com

2. Chrome: Qual IP do zertico.com? DNS: IP é 192.168.0.1

3. Chrome: Olá 192.168.0.1 quero ver www.zertico.com

5. Quero o HTML

7. PHP: Quero dados!

Varnish Miss

6. index.php

8. banco

4. Quero o HTML

Requisição WordPress

1. www.zertico.com

2. Chrome: Qual IP do zertico.com? DNS: IP é 192.168.0.1

3. Chrome: Olá 192.168.0.1 quero ver www.zertico.com

Varnish Hit

4. Varnish

Requisição WordPressNginx vs Apache + Cache

Requisição WordPressNginx vs Apache + Cache

Requisição WordPressNginx vs Apache + Cache

Requisição WordPressNginx vs Apache + Cache

Resposta Rápida

Consome Ram

RAM é mais rápida que disco

Ajuda Economizar Ram do Servidor App

Ajuda na performance, mas não resolve problemas

Páginas não são atualizadas instatâneamente

Gerenciamento de cache FTW!

Cache

-

It’s time!!!

Botões Twitter e Facebook melhor usar link a JS

Requisições 404 realizam requisições desnecessárias

Apache deve ser evitado quando se tem opções melhores

WP_DEBUG não deve ser ativado em produção (CPU)

WP_CRON deve ser evitado, cron do Linux

Logs são escrita em disco (lento), devem ser evitados

Plugins se não tomar cuidado…

Problemas

Mude uma variável

GZip

Assets Minify

CSS Sprites

Banco de Dados

Banco de Dados

Content Delivery Network

( ) Compatível com minha versão?

( ) Última atualização recente?

( ) Muitos downloads? (critério duvidoso)

( ) Boas avaliações?

( ) Desenvolvedor conhecido?

( ) Tutorial explicando funcionamento, particularidades, …?

( ) Testei muito bem antes de colocar em produção?

Plugins Checklist

Ferramentas

Developer Tools

Page Speed Insights

Pingdom

GTMetrix

Apache Benchmark

Abrindo a Caixa Preta

Ambiente de Homologação

Um gato morre!

Em Produção

Agente ZerticoCloud ComputingPrazer,

Sou seu Agente de Cloud

http://agente.zertico.com/

1. Escolha seu Cloud Server

2. Escolha sua Aplicação

3. Aproveite :)

Como Funciona

1. Escolha seu Cloud Server

2. Escolha sua Aplicação

3. Aproveite :)

Como Funciona

Análise

zertico

Faça a Web Mais Rápida

Cloud ComputingCloud ComputingObrigado

Esclarecimentos?

Zertico fernandes@zertico.com www.zertico.com