SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
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
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
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)
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
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
                    ...
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
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
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
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)
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
Técnicas para ser escalável com PHP
PHP'n Rio 2011




                 Obrigado!
                       @filipelaruina
                  filaruina@gmail.com

Mais conteúdo relacionado

Destaque

Guia do mochileiro para escalabilidade
Guia do mochileiro para escalabilidadeGuia do mochileiro para escalabilidade
Guia do mochileiro para escalabilidadeAugusto Pascutti
 
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails brunoaalves
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porteFelipe Ribeiro
 
Escalabilidade e Disponibilidade em Arquiteturas Web
Escalabilidade e Disponibilidade em Arquiteturas WebEscalabilidade e Disponibilidade em Arquiteturas Web
Escalabilidade e Disponibilidade em Arquiteturas WebRenato Lucindo
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidademetzen
 
Escalabilidade de Aplicações Web
Escalabilidade de Aplicações WebEscalabilidade de Aplicações Web
Escalabilidade de Aplicações WebRenato Lucindo
 

Destaque (7)

Guia do mochileiro para escalabilidade
Guia do mochileiro para escalabilidadeGuia do mochileiro para escalabilidade
Guia do mochileiro para escalabilidade
 
RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails RubyMastersConf - Escalabilidade do S.O. ao Rails
RubyMastersConf - Escalabilidade do S.O. ao Rails
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
Segurança em sistemas distribuidos
Segurança em sistemas distribuidosSegurança em sistemas distribuidos
Segurança em sistemas distribuidos
 
Escalabilidade e Disponibilidade em Arquiteturas Web
Escalabilidade e Disponibilidade em Arquiteturas WebEscalabilidade e Disponibilidade em Arquiteturas Web
Escalabilidade e Disponibilidade em Arquiteturas Web
 
Otimização e Escalabilidade
Otimização e EscalabilidadeOtimização e Escalabilidade
Otimização e Escalabilidade
 
Escalabilidade de Aplicações Web
Escalabilidade de Aplicações WebEscalabilidade de Aplicações Web
Escalabilidade de Aplicações Web
 

Semelhante a Técnicas PHP Escalabilidade

Performance (Web&PHP)
Performance (Web&PHP)Performance (Web&PHP)
Performance (Web&PHP)Nuno Loureiro
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdfRubenManhia
 
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Celso Fernandes
 
REST: Faça o Serviço Direito
REST: Faça o Serviço DireitoREST: Faça o Serviço Direito
REST: Faça o Serviço DireitoAlexandre Gaigalas
 
TDC2016POA | Trilha IoT - Controlando AR Drone com PHP
TDC2016POA | Trilha IoT -  Controlando AR Drone com PHPTDC2016POA | Trilha IoT -  Controlando AR Drone com PHP
TDC2016POA | Trilha IoT - Controlando AR Drone com PHPtdc-globalcode
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7Silvano Oliveira
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Case PHP como base de digital asset management arizona
Case PHP como base de digital asset management arizonaCase PHP como base de digital asset management arizona
Case PHP como base de digital asset management arizonaiMasters
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPelliando dias
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-phpBrenno Abreu
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFlávio Lisboa
 
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPLabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPCarlos Santos
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformanceFelipe Ribeiro
 
Apache PHP MySQL
Apache  PHP  MySQLApache  PHP  MySQL
Apache PHP MySQLkisb1337
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveiselliando dias
 
Cache e Performance (in portuguese)
Cache e Performance (in portuguese)Cache e Performance (in portuguese)
Cache e Performance (in portuguese)Bruno Pedro
 
Php Visao Geral Svs
Php Visao Geral SvsPhp Visao Geral Svs
Php Visao Geral Svscristhianobv
 

Semelhante a Técnicas PHP Escalabilidade (20)

Performance (Web&PHP)
Performance (Web&PHP)Performance (Web&PHP)
Performance (Web&PHP)
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
 
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
 
REST: Faça o Serviço Direito
REST: Faça o Serviço DireitoREST: Faça o Serviço Direito
REST: Faça o Serviço Direito
 
TDC2016POA | Trilha IoT - Controlando AR Drone com PHP
TDC2016POA | Trilha IoT -  Controlando AR Drone com PHPTDC2016POA | Trilha IoT -  Controlando AR Drone com PHP
TDC2016POA | Trilha IoT - Controlando AR Drone com PHP
 
PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7PW01 - Introdução a programação em PHPv7
PW01 - Introdução a programação em PHPv7
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Case PHP como base de digital asset management arizona
Case PHP como base de digital asset management arizonaCase PHP como base de digital asset management arizona
Case PHP como base de digital asset management arizona
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-php
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP
 
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHPLabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
LabMM4 (T10 - 12/13) - Tecnologias server-side - PHP
 
Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
Apache PHP MySQL
Apache  PHP  MySQLApache  PHP  MySQL
Apache PHP MySQL
 
Php
PhpPhp
Php
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveis
 
Cache e Performance (in portuguese)
Cache e Performance (in portuguese)Cache e Performance (in portuguese)
Cache e Performance (in portuguese)
 
Php Visao Geral Svs
Php Visao Geral SvsPhp Visao Geral Svs
Php Visao Geral Svs
 

Técnicas PHP Escalabilidade

  • 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