SlideShare uma empresa Scribd logo
Técnicas para ser
              escalável com



07/07/2012         The Developer's Conference   1
Filipe La Ruina
Works @ ecompete.com.br
@filaruina




07/07/2012                The Developer's Conference   2
Escalabilidade

07/07/2012       The Developer's Conference   3
Escalabilidade
               Técnicas não são regras!




07/07/2012           The Developer's Conference   4
O que é?




07/07/2012   The Developer's Conference   5
O que é?
             O que não é?




07/07/2012     The Developer's Conference   6
O que é?
                  O que não é?
➔
    Performance




07/07/2012          The Developer's Conference   7
O que é?
                   O que não é?
➔
    Performance

➔
    Usar Tecnologia X




07/07/2012              The Developer's Conference   8
O que é?
                   O que não é?
➔
    Performance

➔
    Usar Tecnologia X

➔
    Separação de Responsabilidades




07/07/2012              The Developer's Conference   9
O que é?
                   O que não é?
➔
    Performance

➔
    Usar Tecnologia X

➔
    Separação de Responsabilidades




07/07/2012              The Developer's Conference   10
Escalabilidade é uma característica
             desejável em todo o sistema, em uma
             rede ou em um processo, que indica sua
             habilidade de manipular uma porção
             crescente de trabalho de forma uniforme,
             ou estar preparado para crescer.




07/07/2012   The Developer's Conference           11
O que é?

➔
    Aguenta aumento no uso




07/07/2012           The Developer's Conference   12
O que é?

➔
    Aguenta aumento no uso

➔
    Aguenta aumento nos dados




07/07/2012           The Developer's Conference   13
O que é?

➔
    Aguenta aumento no uso

➔
    Aguenta aumento nos dados

➔
    Fácil manutenção




07/07/2012             The Developer's Conference   14
Vamos por Partes



07/07/2012   The Developer's Conference   15
1º Passo
       Desenvolvimento

07/07/2012   The Developer's Conference   16
Desenvolvimento

➔
    Separação de Conceitos (OOP, Camadas, etc)




07/07/2012             The Developer's Conference   17
Desenvolvimento

➔
    Separação de Conceitos (OOP, Camadas, etc)




             API                                    Cliente




07/07/2012             The Developer's Conference             18
Desenvolvimento

➔
    Separação de Conceitos (OOP, Camadas, etc)


                  API




       DB         API                         LB     Client




                  API


07/07/2012              The Developer's Conference            19
Desenvolvimento

➔
    Arquitetura Orientada a Serviços



         Authentication



                                API                        Client
     Product




             Email



07/07/2012                    The Developer's Conference            20
Desenvolvimento

➔
    Use Controle de Versão




07/07/2012             The Developer's Conference   21
Desenvolvimento

➔
    Use Controle de Versão


                      Usa esse blz?




07/07/2012               The Developer's Conference   22
Desenvolvimento

➔
    Integração Contínua




07/07/2012                The Developer's Conference   23
Desenvolvimento

➔
    Integração Contínua
    ➔
        Build Automatizado (e rápido)




07/07/2012                    The Developer's Conference   24
Desenvolvimento

➔
    Integração Contínua
    ➔
        Build Automatizado (e rápido)

    ➔
        Testes




07/07/2012                    The Developer's Conference   25
Desenvolvimento

➔
    Integração Contínua
    ➔
        Build Automatizado (e rápido)

    ➔
        Testes

    ➔
        Verifique Qualidade


                          http://phpqatools.org




07/07/2012                    The Developer's Conference   26
Desenvolvimento

➔
    Atualize-se




07/07/2012            The Developer's Conference   27
Desenvolvimento

➔
    Atualize-se

                                                   THIS




07/07/2012            The Developer's Conference          28
2º Passo
             Monitoramento

07/07/2012       The Developer's Conference   29
Monitoramento

➔
    Por que?




07/07/2012        The Developer's Conference   30
Monitoramento

➔
    Por que?




07/07/2012        The Developer's Conference   31
Monitoramento

➔
    Por que?

     ➔
         Identificar Gargalos (+ usuários => + tempo gasto)




07/07/2012                      The Developer's Conference    32
Monitoramento

➔
    Por que?

     ➔
         Identificar Gargalos (+ usuários => + tempo gasto)

     ➔
         Prevenir Problemas




07/07/2012                      The Developer's Conference    33
Monitoramento

➔
    Por que?

     ➔
         Identificar Gargalos (+ usuários => + tempo gasto)

     ➔
         Prevenir Problemas

     ➔
         Poder dormir tranquilo




07/07/2012                      The Developer's Conference    34
Monitoramento

➔
    Ferramentas




07/07/2012           The Developer's Conference   35
Monitoramento

➔
    Ferramentas
    ➔
        Top (é sério)




07/07/2012                 The Developer's Conference   36
Monitoramento

➔
    Ferramentas
    ➔
        Top (é sério)
                                                        Load: 1, 5, 15 minutos




07/07/2012                 The Developer's Conference                            37
Monitoramento

   ➔
       Ferramentas
       ➔
           Top (é sério)
                                                           Load: 1, 5, 15 minutos




Memória e Swap




   07/07/2012                 The Developer's Conference                            38
Monitoramento

   ➔
       Ferramentas
       ➔
           Top (é sério)
                                                           Load: 1, 5, 15 minutos




Memória e Swap


                                                                            Processos




   07/07/2012                 The Developer's Conference                                39
Monitoramento

➔
    Ferramentas
    ➔
        Profiling




07/07/2012             The Developer's Conference   40
Monitoramento

➔
    Ferramentas
    ➔
        MySql SHOW (tem tudo lá! http://dev.mysql.com/doc/refman/5.0/en/show.html)

    ➔
        Slow Query Log

    ➔
        Explain Query




07/07/2012                        The Developer's Conference                   41
Monitoramento

➔
    Ferramentas
    ➔
        Monitoramento de Infra




07/07/2012                  The Developer's Conference   42
3º Passo
             Crescimento

07/07/2012      The Developer's Conference   43
Crescimento

➔
    Formas de Crescer




07/07/2012              The Developer's Conference   44
Crescimento

➔
    Formas de Crescer

    ➔
        Horizontalmente

         AppServer   AppServer        AppServer           AppServer   AppServer




                                    Load Balancer


                                          Client


07/07/2012                       The Developer's Conference                       45
Crescimento

➔
    Formas de Crescer

    ➔
        Horizontalmente
                                           AppServer            AppServer
    ➔
        Verticalmente


                                                   Load Balancer


                                                       Client



07/07/2012                The Developer's Conference                        46
Crescimento

➔
    Cache




07/07/2012     The Developer's Conference   47
Crescimento

➔
    Cache

    ➔
        HTTP Cache (Diminui quantidade de requests)




07/07/2012                     The Developer's Conference   48
Crescimento

➔
    Cache

    ➔
        Opcode Cache (APC)
        http://www.php.net/apc




07/07/2012                         The Developer's Conference   49
Crescimento

➔
    Cache

    ➔
        Memory Cache (memcached)
    https://github.com/php-memcached-dev/php-memcached
    http://pecl.php.net/package/memcached




                    DB                   Memcached                   App




07/07/2012                              The Developer's Conference         50
Crescimento

➔
    Replicação                   Slave
                                           Slave

                                      Slave
    ➔
        Master (Escritas)                                             Master
                                   Slave
                                            Slave
    ➔
        Slaves (Leituras)
                                                         Read
                                                                        Write




                                                                App




07/07/2012                  The Developer's Conference                          51
Crescimento

➔
    Índices em tabelas




07/07/2012               The Developer's Conference   52
Crescimento

➔
    Índices em tabelas




07/07/2012               The Developer's Conference   53
Crescimento

➔
    Índices em tabelas




07/07/2012               The Developer's Conference   54
Crescimento

➔
    Índices em tabelas

     ➔
         Preferência a campos com baixa cardinalidade




07/07/2012                The Developer's Conference    55
Crescimento

➔
    Índices em tabelas

     ➔
         Preferência a campos com baixa cardinalidade

     ➔
         Ocupam mais espaço em disco




07/07/2012                The Developer's Conference    56
Crescimento

➔
    Índices em tabelas

     ➔
         Preferência a campos com baixa cardinalidade

     ➔
         Ocupam mais espaço em disco

     ➔
         Índices são agrupamentos




07/07/2012                The Developer's Conference    57
Crescimento

➔
    Índices em tabelas

     ➔
         Preferência a campos com baixa cardinalidade

     ➔
         Ocupam mais espaço em disco

     ➔
         Índices são agrupamentos

     ➔
         Diminuem o tempo de escrita



07/07/2012                The Developer's Conference    58
Crescimento

➔
    Distribuição de Tarefas




07/07/2012              The Developer's Conference   59
Crescimento

➔
    Distribuição de Tarefas

     ➔
         Gearman                       http://gearman.org/
                                       http://php.net/gearman




07/07/2012              The Developer's Conference              60
Crescimento

➔
    Distribuição de Tarefas

     ➔
         Gearman                       http://gearman.org/
                                       http://php.net/gearman




07/07/2012              The Developer's Conference              61
Crescimento

➔
    Distribuição de Tarefas

     ➔
         Gearman                       http://gearman.org/
                                       http://php.net/gearman




07/07/2012              The Developer's Conference              62
Mais Umas Coisas



07/07/2012   The Developer's Conference   63
Mais Umas Coisas

➔
    Entenda o que está acontecendo

➔
    Análise os custos antes de tomar uma decisão

➔
    Use um proxy reverso (nginx, squid, Varnish)

➔
    Lado cliente é importante




07/07/2012              The Developer's Conference   64
Case – Bolsa de Mulher




        by: @zanaca

07/07/2012             The Developer's Conference   65
Case – Bolsa de Mulher




                                                    ~ 7K Simultâneos
        by: @zanaca

07/07/2012             The Developer's Conference                      66
Referências
                                Cases interessantes
                             Tumblr: http://bit.ly/z4cdCG
                             YouPorn: http://bit.ly/Hhz0PV (Sério!)
                             Facebook: http://b.qr.ae/gB5C6b
                             Digg: http://bit.ly/Xp4NW
                             Flickr: http://bit.ly/1Jywk1

                                             Livros




             http://oreil.ly/N7LH6b    http://oreil.ly/pnKqJG http://oreil.ly/LwjPXd


07/07/2012                            The Developer's Conference                       67
Obrigado!
                                  @filaruina

Agradecimentos:
● @alganet e @duodraco pela oportunidade

● @searleoliveira pela ajuda com MySql

● @zanaca pela lembrança da arquitetura do Bolsa de Mulher

● @igorpsantos pela ajuda com a Infra




07/07/2012                     The Developer's Conference    68

Mais conteúdo relacionado

PPT
DevOps - visão geral
PDF
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
PDF
Metodologias Ageis
PDF
Gerenciamento Ágil de Projetos
PPTX
Metodologia ágil
PPT
Introdução a Métodos Ágeis de Desenvolvimento de Software
PDF
Inovação Disruptiva na Gestão de Projetos de Inovação - rumo à agilidade e ba...
KEY
1. Abordagens Ágeis
DevOps - visão geral
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
Metodologias Ageis
Gerenciamento Ágil de Projetos
Metodologia ágil
Introdução a Métodos Ágeis de Desenvolvimento de Software
Inovação Disruptiva na Gestão de Projetos de Inovação - rumo à agilidade e ba...
1. Abordagens Ágeis

Mais procurados (20)

PDF
DevOps - o que é?
PDF
Monografia-Devops
PDF
Como montar um DevOps Toolchain
PDF
Métodos ágeis
DOC
Metodologias ágeis de desenvolvimento trabalho
PPTX
Curso Scrum
PDF
Toc aplicada a gestão de projetos
PDF
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
PPTX
Gerenciamento Ágil de Projetos, Uma nova abordagem para os desafio de sempre
PPT
Metodologias ágeis de desenvolvimento
PDF
Tradução resumida do livro "The Elements of Scrum"
PDF
Metodos Ageis
PDF
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
PDF
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
PDF
Colocando o Scrum em prática
PDF
Fluxograma processo - desenvolvimento de software
PDF
COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021
PDF
Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...
PDF
Projeto e Desenvolvimento de Software
PDF
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
DevOps - o que é?
Monografia-Devops
Como montar um DevOps Toolchain
Métodos ágeis
Metodologias ágeis de desenvolvimento trabalho
Curso Scrum
Toc aplicada a gestão de projetos
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
Gerenciamento Ágil de Projetos, Uma nova abordagem para os desafio de sempre
Metodologias ágeis de desenvolvimento
Tradução resumida do livro "The Elements of Scrum"
Metodos Ageis
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Colocando o Scrum em prática
Fluxograma processo - desenvolvimento de software
COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021
Agile Brazil 2018 - LPPD - Lean Product and Process Development, uma alternat...
Projeto e Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Anúncio

Semelhante a Técnicas para ser escalável com PHP (20)

PDF
RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel...
PPTX
Visual Studio Summit 2012 - Novidades do Visual Studio 2012 Express
PDF
Integração do Zabbix com Testes Automatizados
PDF
TDC 2012 - Processo de Teste e Qualidade de Software
PDF
TDC 2016 Trilha Testes - Floripa
PPTX
Visual Studio Summit 2012 - Team Foundation Server 2012 Express
ODP
9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados
PPTX
São Paulo MuleSoft Meetups - DevOps
PPTX
Msp workshop
PDF
Uma Olhada no Netbeans 6
PPTX
Refactoring
PDF
Design for change: Fatores que influenciam na longevidade de um Software PHP
PDF
Desenvolvimento Ágil de Software
PPT
Apresentacao pré banca TCC em SI
PDF
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
PPTX
Continuous Delivery com TFS e Release Management for Visual Studio 2013
PPTX
DevBrasil OpenDay São José do Rio Preto
PPTX
PPTX
PDF
Fatores que influenciam na longevidade de um Software
RSJUG Day - Ferramentas Para Projetos Java Usando Metodologias Ageis - Daniel...
Visual Studio Summit 2012 - Novidades do Visual Studio 2012 Express
Integração do Zabbix com Testes Automatizados
TDC 2012 - Processo de Teste e Qualidade de Software
TDC 2016 Trilha Testes - Floripa
Visual Studio Summit 2012 - Team Foundation Server 2012 Express
9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados
São Paulo MuleSoft Meetups - DevOps
Msp workshop
Uma Olhada no Netbeans 6
Refactoring
Design for change: Fatores que influenciam na longevidade de um Software PHP
Desenvolvimento Ágil de Software
Apresentacao pré banca TCC em SI
Just Java 2006 - Qualidade em Desenvolvimento Java para todos os gostos - Dan...
Continuous Delivery com TFS e Release Management for Visual Studio 2013
DevBrasil OpenDay São José do Rio Preto
Fatores que influenciam na longevidade de um Software
Anúncio

Último (8)

PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Mecânico de Manutenção de Equipamentos.pptx
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Manejo integrado de pragas na cultura do algodão
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Viasol Energia Solar -Soluções para geração e economia de energia
Mecânico de Manutenção de Equipamentos.pptx
Arquitetura de computadores - Memórias Secundárias
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf

Técnicas para ser escalável com PHP

  • 1. Técnicas para ser escalável com 07/07/2012 The Developer's Conference 1
  • 2. Filipe La Ruina Works @ ecompete.com.br @filaruina 07/07/2012 The Developer's Conference 2
  • 3. Escalabilidade 07/07/2012 The Developer's Conference 3
  • 4. Escalabilidade Técnicas não são regras! 07/07/2012 The Developer's Conference 4
  • 5. O que é? 07/07/2012 The Developer's Conference 5
  • 6. O que é? O que não é? 07/07/2012 The Developer's Conference 6
  • 7. O que é? O que não é? ➔ Performance 07/07/2012 The Developer's Conference 7
  • 8. O que é? O que não é? ➔ Performance ➔ Usar Tecnologia X 07/07/2012 The Developer's Conference 8
  • 9. O que é? O que não é? ➔ Performance ➔ Usar Tecnologia X ➔ Separação de Responsabilidades 07/07/2012 The Developer's Conference 9
  • 10. O que é? O que não é? ➔ Performance ➔ Usar Tecnologia X ➔ Separação de Responsabilidades 07/07/2012 The Developer's Conference 10
  • 11. Escalabilidade é uma característica desejável em todo o sistema, em uma rede ou em um processo, que indica sua habilidade de manipular uma porção crescente de trabalho de forma uniforme, ou estar preparado para crescer. 07/07/2012 The Developer's Conference 11
  • 12. O que é? ➔ Aguenta aumento no uso 07/07/2012 The Developer's Conference 12
  • 13. O que é? ➔ Aguenta aumento no uso ➔ Aguenta aumento nos dados 07/07/2012 The Developer's Conference 13
  • 14. O que é? ➔ Aguenta aumento no uso ➔ Aguenta aumento nos dados ➔ Fácil manutenção 07/07/2012 The Developer's Conference 14
  • 15. Vamos por Partes 07/07/2012 The Developer's Conference 15
  • 16. 1º Passo Desenvolvimento 07/07/2012 The Developer's Conference 16
  • 17. Desenvolvimento ➔ Separação de Conceitos (OOP, Camadas, etc) 07/07/2012 The Developer's Conference 17
  • 18. Desenvolvimento ➔ Separação de Conceitos (OOP, Camadas, etc) API Cliente 07/07/2012 The Developer's Conference 18
  • 19. Desenvolvimento ➔ Separação de Conceitos (OOP, Camadas, etc) API DB API LB Client API 07/07/2012 The Developer's Conference 19
  • 20. Desenvolvimento ➔ Arquitetura Orientada a Serviços Authentication API Client Product Email 07/07/2012 The Developer's Conference 20
  • 21. Desenvolvimento ➔ Use Controle de Versão 07/07/2012 The Developer's Conference 21
  • 22. Desenvolvimento ➔ Use Controle de Versão Usa esse blz? 07/07/2012 The Developer's Conference 22
  • 23. Desenvolvimento ➔ Integração Contínua 07/07/2012 The Developer's Conference 23
  • 24. Desenvolvimento ➔ Integração Contínua ➔ Build Automatizado (e rápido) 07/07/2012 The Developer's Conference 24
  • 25. Desenvolvimento ➔ Integração Contínua ➔ Build Automatizado (e rápido) ➔ Testes 07/07/2012 The Developer's Conference 25
  • 26. Desenvolvimento ➔ Integração Contínua ➔ Build Automatizado (e rápido) ➔ Testes ➔ Verifique Qualidade http://phpqatools.org 07/07/2012 The Developer's Conference 26
  • 27. Desenvolvimento ➔ Atualize-se 07/07/2012 The Developer's Conference 27
  • 28. Desenvolvimento ➔ Atualize-se THIS 07/07/2012 The Developer's Conference 28
  • 29. 2º Passo Monitoramento 07/07/2012 The Developer's Conference 29
  • 30. Monitoramento ➔ Por que? 07/07/2012 The Developer's Conference 30
  • 31. Monitoramento ➔ Por que? 07/07/2012 The Developer's Conference 31
  • 32. Monitoramento ➔ Por que? ➔ Identificar Gargalos (+ usuários => + tempo gasto) 07/07/2012 The Developer's Conference 32
  • 33. Monitoramento ➔ Por que? ➔ Identificar Gargalos (+ usuários => + tempo gasto) ➔ Prevenir Problemas 07/07/2012 The Developer's Conference 33
  • 34. Monitoramento ➔ Por que? ➔ Identificar Gargalos (+ usuários => + tempo gasto) ➔ Prevenir Problemas ➔ Poder dormir tranquilo 07/07/2012 The Developer's Conference 34
  • 35. Monitoramento ➔ Ferramentas 07/07/2012 The Developer's Conference 35
  • 36. Monitoramento ➔ Ferramentas ➔ Top (é sério) 07/07/2012 The Developer's Conference 36
  • 37. Monitoramento ➔ Ferramentas ➔ Top (é sério) Load: 1, 5, 15 minutos 07/07/2012 The Developer's Conference 37
  • 38. Monitoramento ➔ Ferramentas ➔ Top (é sério) Load: 1, 5, 15 minutos Memória e Swap 07/07/2012 The Developer's Conference 38
  • 39. Monitoramento ➔ Ferramentas ➔ Top (é sério) Load: 1, 5, 15 minutos Memória e Swap Processos 07/07/2012 The Developer's Conference 39
  • 40. Monitoramento ➔ Ferramentas ➔ Profiling 07/07/2012 The Developer's Conference 40
  • 41. Monitoramento ➔ Ferramentas ➔ MySql SHOW (tem tudo lá! http://dev.mysql.com/doc/refman/5.0/en/show.html) ➔ Slow Query Log ➔ Explain Query 07/07/2012 The Developer's Conference 41
  • 42. Monitoramento ➔ Ferramentas ➔ Monitoramento de Infra 07/07/2012 The Developer's Conference 42
  • 43. 3º Passo Crescimento 07/07/2012 The Developer's Conference 43
  • 44. Crescimento ➔ Formas de Crescer 07/07/2012 The Developer's Conference 44
  • 45. Crescimento ➔ Formas de Crescer ➔ Horizontalmente AppServer AppServer AppServer AppServer AppServer Load Balancer Client 07/07/2012 The Developer's Conference 45
  • 46. Crescimento ➔ Formas de Crescer ➔ Horizontalmente AppServer AppServer ➔ Verticalmente Load Balancer Client 07/07/2012 The Developer's Conference 46
  • 47. Crescimento ➔ Cache 07/07/2012 The Developer's Conference 47
  • 48. Crescimento ➔ Cache ➔ HTTP Cache (Diminui quantidade de requests) 07/07/2012 The Developer's Conference 48
  • 49. Crescimento ➔ Cache ➔ Opcode Cache (APC) http://www.php.net/apc 07/07/2012 The Developer's Conference 49
  • 50. Crescimento ➔ Cache ➔ Memory Cache (memcached) https://github.com/php-memcached-dev/php-memcached http://pecl.php.net/package/memcached DB Memcached App 07/07/2012 The Developer's Conference 50
  • 51. Crescimento ➔ Replicação Slave Slave Slave ➔ Master (Escritas) Master Slave Slave ➔ Slaves (Leituras) Read Write App 07/07/2012 The Developer's Conference 51
  • 52. Crescimento ➔ Índices em tabelas 07/07/2012 The Developer's Conference 52
  • 53. Crescimento ➔ Índices em tabelas 07/07/2012 The Developer's Conference 53
  • 54. Crescimento ➔ Índices em tabelas 07/07/2012 The Developer's Conference 54
  • 55. Crescimento ➔ Índices em tabelas ➔ Preferência a campos com baixa cardinalidade 07/07/2012 The Developer's Conference 55
  • 56. Crescimento ➔ Índices em tabelas ➔ Preferência a campos com baixa cardinalidade ➔ Ocupam mais espaço em disco 07/07/2012 The Developer's Conference 56
  • 57. Crescimento ➔ Índices em tabelas ➔ Preferência a campos com baixa cardinalidade ➔ Ocupam mais espaço em disco ➔ Índices são agrupamentos 07/07/2012 The Developer's Conference 57
  • 58. Crescimento ➔ Índices em tabelas ➔ Preferência a campos com baixa cardinalidade ➔ Ocupam mais espaço em disco ➔ Índices são agrupamentos ➔ Diminuem o tempo de escrita 07/07/2012 The Developer's Conference 58
  • 59. Crescimento ➔ Distribuição de Tarefas 07/07/2012 The Developer's Conference 59
  • 60. Crescimento ➔ Distribuição de Tarefas ➔ Gearman http://gearman.org/ http://php.net/gearman 07/07/2012 The Developer's Conference 60
  • 61. Crescimento ➔ Distribuição de Tarefas ➔ Gearman http://gearman.org/ http://php.net/gearman 07/07/2012 The Developer's Conference 61
  • 62. Crescimento ➔ Distribuição de Tarefas ➔ Gearman http://gearman.org/ http://php.net/gearman 07/07/2012 The Developer's Conference 62
  • 63. Mais Umas Coisas 07/07/2012 The Developer's Conference 63
  • 64. Mais Umas Coisas ➔ Entenda o que está acontecendo ➔ Análise os custos antes de tomar uma decisão ➔ Use um proxy reverso (nginx, squid, Varnish) ➔ Lado cliente é importante 07/07/2012 The Developer's Conference 64
  • 65. Case – Bolsa de Mulher by: @zanaca 07/07/2012 The Developer's Conference 65
  • 66. Case – Bolsa de Mulher ~ 7K Simultâneos by: @zanaca 07/07/2012 The Developer's Conference 66
  • 67. Referências Cases interessantes Tumblr: http://bit.ly/z4cdCG YouPorn: http://bit.ly/Hhz0PV (Sério!) Facebook: http://b.qr.ae/gB5C6b Digg: http://bit.ly/Xp4NW Flickr: http://bit.ly/1Jywk1 Livros http://oreil.ly/N7LH6b http://oreil.ly/pnKqJG http://oreil.ly/LwjPXd 07/07/2012 The Developer's Conference 67
  • 68. Obrigado! @filaruina Agradecimentos: ● @alganet e @duodraco pela oportunidade ● @searleoliveira pela ajuda com MySql ● @zanaca pela lembrança da arquitetura do Bolsa de Mulher ● @igorpsantos pela ajuda com a Infra 07/07/2012 The Developer's Conference 68