Lightning talk falando muito superficialmente sobre escalabilidade, tentando prover o básico de informação para melhorar a escalabilidade e performance dos sistemas escritos com PHP.
Falando desde
1. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Quem?
Nome: Filipe La Ruina
Empresa: Cortex Intelligence
Desenvolvedor Web a um bom tempo
Serviços web escaláveis
Bolsa de Mulher
Novo Serviço no futuro ;)
Com uma paixão por desenvolvimento de jogos
2. Técnicas para ser escalável com PHP
PHP'n Rio 2011
O que é Escalabilidade?
Não é performance (mas ela afeta)
Manter a performance
Escalável = Aguenta aumento de tráfego
3. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Comofas?
Verticalmente (mais forte)
Compre servidores mais fortes
Mais rápido de fazer
Mais caro
Horizontalmente (maior quantidade) vamos falar desse :)
Mais servidores
Mais difícil (arquitetura tem que acompanhar)
Mais barato (bem mais a longo prazo)
4. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Servidor
Use PHP 5.3 (e 5.4 quando sair)
Arquitetura ”separada”
Cache
APC (http://br.php.net/apc)
Memcache (http://br2.php.net/memcache)
Faça filas
Gearman (http://br2.php.net/gearman)
Perfeito para atividades não-síncronas
5. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Arquitetura
Banco
Master Slave
Read/Write entre 80/20 – 90/10 %
Load balancer
Hardware
Mais caro
Mais rápido
Software
Barato
Perlbal
Apache mod_proxy
...
6. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Arquitetura
Servidores de Memcache
Armazena Sessões
Armazena resultados de queries
Servidores de Gearman
Armazena seus Jobs
7. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Cliente
HTTP Cache
Menos Requests
Cabeçalhos de Cache
Cache-Control: max-age
Expires
Etag
Javascript e CSS
Minify
Gzip
Otimizações
Servidor de arquivos estáticos
8. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Dicas Gerais
Evite acesso a disco
Faça cache de memória
Meça onde está seu gargalo
Cache x1000
Ative o APC
9. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Ferramentas
Google PageSpeed
Firebug
Yahoo YSlow
Xdebug (profiling)
HipHop para análise estática
(http://talks.php.net/show/latinoware/18)
10. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Links
http://code.google.com/speed/articles/
http://highscalability.com/
http://duartes.org/gustavo/blog/post/what-your-
computer-does-while-you-wait
http://www.slideshare.net/techdude/scalable-web-
architectures-common-patterns-and-approaches
11. Técnicas para ser escalável com PHP
PHP'n Rio 2011
Obrigado!
@filipelaruina
filaruina@gmail.com