2. Tópicos do Nosso WebSeminário
• Varnish
realmente
melhora
a
performance
do
meu
ambiente
Web
?
• Vale
a
pena
migrar
o
meu
servidor
Web
Apache
para
Nginx
?
• Em
quais
casos
o
Nginx
não
é
recomendado
?
• Ataques
DDoS/DoS
versus
Varnish
+
Nginx,
como
é
essa
luta,
tem
um
vencedor
?
• O
que
muda
para
ambientes
web
como
o
PHP5.4
e
PHP5.5
?
Perguntas e respostas que nos auxiliarão a melhorar a performance do nosso
ambiente Web.
3. Objetivo
Demonstrar
como
é
possível
melhorar
a
performance
de
um
site
ou
portal,
seja
ele
feito
em
PHP
ou
HTML,
com
tecnologias
opensource,
como
Varnish
+Nginx+Apache,
além
de
miUgar
uma
série
de
ataques
e
vulnerabilidades,
como
DoS/DDoS
Performance
Analisar
Implementar
Testar
Coletar
4. Por que analisamos a performance ?
• Redução
de
tempo
ou
recursos
de
tecnologia
–
encontrando
pontos
a
melhorar,
reconfigurar
ou
tunar
• Procuramos
por
arquiteturas
escaláveis
– ambientes
que
possam
atender,
e
rápido,
as
necessidades
de
nossos
clientes
• Resolução
de
problemas
– procurando
e
resolvendo
problemas
quanto
a
gargalos
e
latência
O trabalho de um sysadmin nunca acaba quando o assunto é performance
5. Sistema Operacional - Linux
• Antes
de
sair
instalando
tudo
que
vc
acha
que
precisa,
análise
o
servidor
Linux
que
vc
uBlizará:
– Kernel
– Rede
– Disco
(HDD
versus
SSD)
– File
System
– Pacotes
necessário
para
o
seu
ambiente
funcionar
e
ser
monitorado
– E
possível
segmentação
de
funções
e
produtos
–
(um
servidor
para
cada
coisa)
Um tuning bem feito em seu linux poderá lhe salvar de diversos problemas
6. Cache
• Redução
no
tempo
de
carregamento
de
uma
página
ou
portal
• Melhora
a
sensação
de
navegação
para
o
usuário
• Diminuição
da
quanBdade
de
recursos
computacionais,
tais
como
memória
e
processador,
para
suportar
um
site
ou
portal
• Previne
sobre-‐carregas,
tempo
de
outage
e
até
mesmo,
ataques,
como
DDoS/DoS
Layer
7
• Facilidade
na
escalabilidade
do
seu
projeto
web
Por que trabalhar com cache é tão importante hoje em dia ?
7. Cache
• Redução
no
tempo
de
carregamento
de
uma
página
ou
portal
• Melhora
a
sensação
de
navegação
para
o
usuário
• Diminuição
da
quanBdade
de
recursos
computacionais,
tais
como
memória
e
processador,
para
suportar
um
site
ou
portal
• Previne
sobre-‐carregas,
tempo
de
outage
e
até
mesmo,
ataques,
como
DDoS/DoS
Layer
7
• Facilidade
na
escalabilidade
do
seu
projeto
web
Por que trabalhar com cache é tão importante hoje em dia ?
8. Cache - Varnish
A solução de cache opensource mais utilizada do mercado
Basicamente,
o
Varnish
funciona
desta
forma,
mas
há
regras
que
podem
melhorar
ainda
mais
a
sua
performance,
além
de
aumentar
a
segurança
de
seu
site
ou
portal
–
VSF
&
Security.vcl,
por
exemplo
9. Cache - Varnish
No que o Varnish é diferente, se comparado com outros serviços ou
servidores de cache ?
HDD
versus
RAM
Versus
SSD
1
2
Fonte:
hdp://devblog.moz.com/
2011/05/how-‐to-‐cache-‐hdp-‐
range-‐requests/
10. Análise & Coleta – IOPS
hdp://eshop.macsales.com/shop/SSD/PCIe/OWC/
Mercury_Accelsior/RAID
É
o
número
de
operações
por
segundo
que
um
disco
individual
consegue
chegar.
Por
exemplo,
um
disco
SAS
de
10K
consegue
em
média
140
IOPS.
Note
que
a
diferença
é
muito
grande,
principalmente
levando
em
conta
os
novos
discos
SSD.
Requer
atenção
em
ambientes
suportados
em
Cloud
Cortesia do Curso de Performance and Tunig Linux do Coruja****
11. Cache - Varnish
• Globo.com,
R7,
Wall
Mart
e
tantos
outros
portais
e
sites
brasileiros
• No
meu
caso,
eu
já
reduzi
um
ambiente
web
suportado
por
16
servidores
para
4,
mas
como
?
– 2
servidores
varnish
+
2
servidores
Nginx(Opcode
5.4
PHP
+
PHP5-‐FPM*)
• Possibilidade
de
trabalhar
com
diferentes
Bpos
de
serviços
IaaS
– Os
mais
barato
e
interessante
para
o
seu
negócio,
já
que
a
quanBdade
de
requests
para
o
seu
servidor
web
cai
drasBcamente.
– Que
tal
migrar
da
Amazon
para
Digital
Ocean
?
Alguns Casos de Sucesso quanto a implementação do Varnish
12. Cache - Varnish
Só para ilustrar algumas das funções que ele possui
Fonte:
h)p://devblog.moz.com/2011/05/
how-‐to-‐cache-‐h)p-‐range-‐requests/
14. Nginx – Um dos mais rápidos WebServers
Por que o Nginx virou sensação entre os grandes blogs e portais em todo o
mundo ?
"Apache
is
like
Microsoo
Word,
it
has
a
million
opUons
but
you
only
need
six.
Nginx
does
those
six
things,
and
it
does
five
of
them
50
Umes
faster
than
Apache.”
by
Chris
Lea
Menos
fuções,
menos
recursos,
uma
forma
diferente
de
lidar
com
requisições
HTTP
e
HTTPS,
entregando
assim
mais
performance.
15. Nginx – Utilização e Crescimento
Como está a utilização deste Web Server pelo mundo
Fonte:
h)p://news.netcraD.com/archives/
2014/03/03/march-‐2014-‐web-‐server-‐
survey.html/
16. Nginx – Como ele funciona ?
Uma nova abordagem, agora assíncrona, de resposta a requisições
Fonte:
hdp://www.aosabook.org/en/nginx.html
17. Nginx
Comparando com outros WebServers
• Ele
é
2x
mais
rápido,
se
comparado
com
um
Apache,
mesmo
o
2.4,
e
4x
mais
rápido,
se
comparado
com
o
IIS
7
• Possui
menos
módulos,
mas
altamente
performáBcos
e
fáceis
de
serem
uBlizados
• Já
há
Waf(Web
ApplicaBon
Firewall)
compaeveis
com
ele,
como
o
Mod_security
e
o
Naxsi
• Há
possibilidade
de
migrar
regras
.htaccess
para
ele
• UBliza
menos
recursos
computacionais
se
comprado
com
o
Apache
–
seja
memória
e
CPU
• Performa
bem
melhor
quando
integrado
com
serviços
de
cache,
como
php-‐apc,
opcode
e
gerenciamento
de
processos,
como
o
PHP5-‐FPM.
21. Varnish + Nginx
Trabalhando em conjunto contra ataques DDoS/DoS Layer 7
• A
combinação
de
performance
do
conjunto
Varnish+Nginx(S.O)
gera
um
ambiente
muito
mais
robusto
e
preparado
para
diversos
Bpos
de
ataque,
principalmente
DoS
e
DDoS*
• Exemplos:
Coruja
de
TI
–
Sedentario&HiperaBvo
–
NãoSalvo
• O
acesso
aos
logs
e
o
acompanhamento
das
requisições
farão
toda
a
diferença
para
implementação
de
medidas
para
melhorar
a
performance
e
até
mesmo
o
bloqueio
de
alguns
ips
• Há
casos
em
que
precisamos
uBlizar
outras
alternaBvas,
como
o
CloudFlare,
Incapsula
ou
CloudProxy
22. Varnish + Nginx
No caso de ambientes PHP, a utilização de opcode, php5-fpm ou php-apc,
melhora ainda mais a performance
• Sites
ou
portais
PHP,
nos
dias
de
hoje,
precisam
rodar
em
ambientes
Web
suportados
por
tecnologias
que
gerenciem
melhor
o
processamento,
a
compilação
e
o
cache
do
código
• PHP5.4
trouxe
ao
mercado
o
opcode
imbuBdo,
trocando
assim
o
php-‐apc
por
ele.
Melhora
de
mais
de
15%
quando
o
assunto
é
performance
• O
PHP5-‐FPM
possibilita
um
gerenciamento
melhor
quanto
aos
processos
e
a
uBlização
correta
de
recursos
• No
caso
de
Performance
para
o
PHP,
há,
além
do
Opcode
e
do
APC
o
OpBmezer+
hlp://www.intracto.com/blog/testdriving-‐zend-‐
opBmizer