Escalabilidade - Do S.O. ao Rails                                         Bruno Andrade Alves                             ...
Ideiasegunda-feira, 28 de fevereiro de 2011
Execuçãosegunda-feira, 28 de fevereiro de 2011
Publicaçãosegunda-feira, 28 de fevereiro de 2011
Divulgaçãosegunda-feira, 28 de fevereiro de 2011
Utilizaçãosegunda-feira, 28 de fevereiro de 2011
Satisfaçãosegunda-feira, 28 de fevereiro de 2011
O que aconteceu?segunda-feira, 28 de fevereiro de 2011
Solução imediatasegunda-feira, 28 de fevereiro de 2011
Feliz novamentesegunda-feira, 28 de fevereiro de 2011
Produto é um sucesso!segunda-feira, 28 de fevereiro de 2011
#fail :(segunda-feira, 28 de fevereiro de 2011
Aplicativo no orkut, facebook e portal de futebol           com mais de 940 mil usuários cadastrados e mais           de 5...
Game educativo para orkut para combate da dengue com   mais de 850 mil usuários cadastrados em menos de 2                 ...
Solução utilizada em grande parte dos e-commerces                         brasileiros dentre eles:segunda-feira, 28 de fev...
Aplicativo no orkut e no facebook com milhões de                           usuários impactadossegunda-feira, 28 de feverei...
Primeiro organizador de compra coletivas do Brasilsegunda-feira, 28 de fevereiro de 2011
Fluxo de uma aplicação websegunda-feira, 28 de fevereiro de 2011
Identifique o gargalosegunda-feira, 28 de fevereiro de 2011
segunda-feira, 28 de fevereiro de 2011
Pontos de otimização para a camada                 do browser                                             CSS             ...
Ferramentas                                         YSlow         Google Page speedsegunda-feira, 28 de fevereiro de 2011
Gargalo no servidor web                                                +segunda-feira, 28 de fevereiro de 2011
Gargalo no servidor web           Verificar número máximo de clientes configurada           (maxclients)           KeepAlive...
Apache Server Status                                                              Existem                                 ...
passenger-statussegunda-feira, 28 de fevereiro de 2011
passenger-statussegunda-feira, 28 de fevereiro de 2011
passenger-status                                                  GARGALOsegunda-feira, 28 de fevereiro de 2011
Gargalo na aplicaçãosegunda-feira, 28 de fevereiro de 2011
Como identificar gargalos na                            aplicação?segunda-feira, 28 de fevereiro de 2011
Newrelicsegunda-feira, 28 de fevereiro de 2011
Newrelictempo médiode requisição     36s                                                     SELECT está                  ...
Acompanhe o log durante o                             desenvolvimentosegunda-feira, 28 de fevereiro de 2011
Realize operações pesadas de modo                  assíncrono  DelayedJob  Resque  Permitem criar uma fila de jobs para ser...
Problema Odrible.comCom o crescimento dos usuários o ranking passou ademorar mais de 1 dia para executarsegunda-feira, 28 ...
Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubysegunda-feira, 28 de fevereiro de 2...
Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubyMuito tráfego de dados entre o MySQ...
Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubyMuito tráfego de dados entre o MySQ...
Solução                            Desnormalizar base, otimizando a estruturasegunda-feira, 28 de fevereiro de 2011
SoluçãoDesnormalizar base, otimizando a estruturaA ordenação do ranking foi substituída de:segunda-feira, 28 de fevereiro ...
SoluçãoDesnormalizar base, otimizando o processamentoA ordenação do ranking foi substituída de:  Por:segunda-feira, 28 de ...
SoluçãoDesnormalizar base, otimizando o processamentoA ordenação do ranking foi substituída de:  Por:                     ...
Problema no parser de XMLO parser de XML desenvolvido passava em todos ostestes, porém quando foi para produção o XML aume...
Solução        O parser que utilizava a biblioteca rexml teve que ser        reescrito utilizando a bliblioteca nokogirise...
Conclusão        Quando for utilizar bibliotecas, procure saber de sua        performance antes de começar a implementação...
Gargalo no banco de dadossegunda-feira, 28 de fevereiro de 2011
MySQLTunersegunda-feira, 28 de fevereiro de 2011
MySQLTuner    apenas 100MB de    um banco 3,9 GB    está em memóriasegunda-feira, 28 de fevereiro de 2011
MySQLTuner    apenas 100MB de    um banco 3,9 GB    está em memória     Leia asrecomendações   e procure  entender o   sig...
MySQL                             Procure manter o máximo possível do banco                             em memória        ...
MySQL                             Para fulltext search utilize algum servidor de                             busca por ex....
Problema Odrible.com                             Muitas apostas antigas que devem ser                             guardada...
Solução:                             Passar dados armazenados na engine InnoDB                             para Archive qu...
Resultado                             Necessário menos memória para suportar                             todo o banco em m...
Fluxo de uma aplicação websegunda-feira, 28 de fevereiro de 2011
Fluxo de uma aplicação web                              Cache                              (Varnish, Squid)segunda-feira, ...
Fluxo de uma aplicação web                              Cache               Cache                                         ...
Fluxo de uma aplicação web                              Cache               Cache               Cache                     ...
Conclusão?segunda-feira, 28 de fevereiro de 2011
Cachesegunda-feira, 28 de fevereiro de 2011
Cache                                         Cachesegunda-feira, 28 de fevereiro de 2011
Cache                                         Cache                                         Cachesegunda-feira, 28 de feve...
Faça benchmarkssegunda-feira, 28 de fevereiro de 2011
Tudo deve ser monitorado!segunda-feira, 28 de fevereiro de 2011
Como monitorar?segunda-feira, 28 de fevereiro de 2011
Como monitorar?          Nagios, Munin dentre outrossegunda-feira, 28 de fevereiro de 2011
Como monitorar?                     Geração de gráficossegunda-feira, 28 de fevereiro de 2011
Como monitorar?               Monitoramento proativosegunda-feira, 28 de fevereiro de 2011
Analytics para página de erros                        Permite acompanhar o resultado para o usuário final das soluções adot...
Se o gargalo for hardware?segunda-feira, 28 de fevereiro de 2011
Escalabilidade verticalsegunda-feira, 28 de fevereiro de 2011
Escalabilidade horizontalsegunda-feira, 28 de fevereiro de 2011
Escalabilidade horizontal  Infra boo-box  + 5 bilhões de  impressões  em 2010  Fonte: booblog.boo-box.comsegunda-feira, 28...
Não existe receita para escalabilidadesegunda-feira, 28 de fevereiro de 2011
Cada caso deve ser analisado                            separadamentesegunda-feira, 28 de fevereiro de 2011
Não se prenda a uma tecnologia.      Utilize a melhor para resolver o seu                    problemasegunda-feira, 28 de ...
Perguntas?segunda-feira, 28 de fevereiro de 2011
Referências                             http://highscalability.com/                             http://www.mysqlperformanc...
Obrigado!                                         Bruno Andrade Alves                                         bruno@dito.c...
Upcoming SlideShare
Loading in …5
×

RubyMastersConf - Escalabilidade do S.O. ao Rails

3,227 views

Published on

Palestra do RubyMastersConf falando a respeito de escalabilidade de aplicações web utilizando Ruby On Rails

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,227
On SlideShare
0
From Embeds
0
Number of Embeds
1,908
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

RubyMastersConf - Escalabilidade do S.O. ao Rails

  1. 1. Escalabilidade - Do S.O. ao Rails Bruno Andrade Alves bruno@dito.com.brsegunda-feira, 28 de fevereiro de 2011
  2. 2. Ideiasegunda-feira, 28 de fevereiro de 2011
  3. 3. Execuçãosegunda-feira, 28 de fevereiro de 2011
  4. 4. Publicaçãosegunda-feira, 28 de fevereiro de 2011
  5. 5. Divulgaçãosegunda-feira, 28 de fevereiro de 2011
  6. 6. Utilizaçãosegunda-feira, 28 de fevereiro de 2011
  7. 7. Satisfaçãosegunda-feira, 28 de fevereiro de 2011
  8. 8. O que aconteceu?segunda-feira, 28 de fevereiro de 2011
  9. 9. Solução imediatasegunda-feira, 28 de fevereiro de 2011
  10. 10. Feliz novamentesegunda-feira, 28 de fevereiro de 2011
  11. 11. Produto é um sucesso!segunda-feira, 28 de fevereiro de 2011
  12. 12. #fail :(segunda-feira, 28 de fevereiro de 2011
  13. 13. Aplicativo no orkut, facebook e portal de futebol com mais de 940 mil usuários cadastrados e mais de 50 milhões de apostassegunda-feira, 28 de fevereiro de 2011
  14. 14. Game educativo para orkut para combate da dengue com mais de 850 mil usuários cadastrados em menos de 2 mesessegunda-feira, 28 de fevereiro de 2011
  15. 15. Solução utilizada em grande parte dos e-commerces brasileiros dentre eles:segunda-feira, 28 de fevereiro de 2011
  16. 16. Aplicativo no orkut e no facebook com milhões de usuários impactadossegunda-feira, 28 de fevereiro de 2011
  17. 17. Primeiro organizador de compra coletivas do Brasilsegunda-feira, 28 de fevereiro de 2011
  18. 18. Fluxo de uma aplicação websegunda-feira, 28 de fevereiro de 2011
  19. 19. Identifique o gargalosegunda-feira, 28 de fevereiro de 2011
  20. 20. segunda-feira, 28 de fevereiro de 2011
  21. 21. Pontos de otimização para a camada do browser CSS Javascript Cache Imagens Requisiçõessegunda-feira, 28 de fevereiro de 2011
  22. 22. Ferramentas YSlow Google Page speedsegunda-feira, 28 de fevereiro de 2011
  23. 23. Gargalo no servidor web +segunda-feira, 28 de fevereiro de 2011
  24. 24. Gargalo no servidor web Verificar número máximo de clientes configurada (maxclients) KeepAlive KeepAliveTimeoutsegunda-feira, 28 de fevereiro de 2011
  25. 25. Apache Server Status Existem workers livressegunda-feira, 28 de fevereiro de 2011
  26. 26. passenger-statussegunda-feira, 28 de fevereiro de 2011
  27. 27. passenger-statussegunda-feira, 28 de fevereiro de 2011
  28. 28. passenger-status GARGALOsegunda-feira, 28 de fevereiro de 2011
  29. 29. Gargalo na aplicaçãosegunda-feira, 28 de fevereiro de 2011
  30. 30. Como identificar gargalos na aplicação?segunda-feira, 28 de fevereiro de 2011
  31. 31. Newrelicsegunda-feira, 28 de fevereiro de 2011
  32. 32. Newrelictempo médiode requisição 36s SELECT está demorando 4,8ssegunda-feira, 28 de fevereiro de 2011
  33. 33. Acompanhe o log durante o desenvolvimentosegunda-feira, 28 de fevereiro de 2011
  34. 34. Realize operações pesadas de modo assíncrono DelayedJob Resque Permitem criar uma fila de jobs para serem executados, ex.: Envio de emails, atualização de timeline de amigos, etc.segunda-feira, 28 de fevereiro de 2011
  35. 35. Problema Odrible.comCom o crescimento dos usuários o ranking passou ademorar mais de 1 dia para executarsegunda-feira, 28 de fevereiro de 2011
  36. 36. Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubysegunda-feira, 28 de fevereiro de 2011
  37. 37. Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubyMuito tráfego de dados entre o MySQL e o Rubysegunda-feira, 28 de fevereiro de 2011
  38. 38. Fatores complicadoresGrande parte do processamento da regra de negócio erafeita no rubyMuito tráfego de dados entre o MySQL e o RubyEstrutura de dados não estava otimizada para oprocessamentosegunda-feira, 28 de fevereiro de 2011
  39. 39. Solução Desnormalizar base, otimizando a estruturasegunda-feira, 28 de fevereiro de 2011
  40. 40. SoluçãoDesnormalizar base, otimizando a estruturaA ordenação do ranking foi substituída de:segunda-feira, 28 de fevereiro de 2011
  41. 41. SoluçãoDesnormalizar base, otimizando o processamentoA ordenação do ranking foi substituída de: Por:segunda-feira, 28 de fevereiro de 2011
  42. 42. SoluçãoDesnormalizar base, otimizando o processamentoA ordenação do ranking foi substituída de: Por: Processamento no bancosegunda-feira, 28 de fevereiro de 2011
  43. 43. Problema no parser de XMLO parser de XML desenvolvido passava em todos ostestes, porém quando foi para produção o XML aumentoude tamanho e o tempo de processamento ficou inviávelsegunda-feira, 28 de fevereiro de 2011
  44. 44. Solução O parser que utilizava a biblioteca rexml teve que ser reescrito utilizando a bliblioteca nokogirisegunda-feira, 28 de fevereiro de 2011
  45. 45. Conclusão Quando for utilizar bibliotecas, procure saber de sua performance antes de começar a implementaçãosegunda-feira, 28 de fevereiro de 2011
  46. 46. Gargalo no banco de dadossegunda-feira, 28 de fevereiro de 2011
  47. 47. MySQLTunersegunda-feira, 28 de fevereiro de 2011
  48. 48. MySQLTuner apenas 100MB de um banco 3,9 GB está em memóriasegunda-feira, 28 de fevereiro de 2011
  49. 49. MySQLTuner apenas 100MB de um banco 3,9 GB está em memória Leia asrecomendações e procure entender o significadosegunda-feira, 28 de fevereiro de 2011
  50. 50. MySQL Procure manter o máximo possível do banco em memória Performance muito mais lenta quando se utiliza disco Ative o log de slow queries para ajudar a identificar as queries que estão pesando o BDsegunda-feira, 28 de fevereiro de 2011
  51. 51. MySQL Para fulltext search utilize algum servidor de busca por ex.: Solr e Sphinx Utilizar índice nas tabelas quando necessário Utilizar o “Explain” nas queries para verificar o seu comportamento e otimizá-las se for o caso mysqlperformanceblog.comsegunda-feira, 28 de fevereiro de 2011
  52. 52. Problema Odrible.com Muitas apostas antigas que devem ser guardadas porém pouco acessadassegunda-feira, 28 de fevereiro de 2011
  53. 53. Solução: Passar dados armazenados na engine InnoDB para Archive que gastam quase 83% menos espaçosegunda-feira, 28 de fevereiro de 2011
  54. 54. Resultado Necessário menos memória para suportar todo o banco em memóriasegunda-feira, 28 de fevereiro de 2011
  55. 55. Fluxo de uma aplicação websegunda-feira, 28 de fevereiro de 2011
  56. 56. Fluxo de uma aplicação web Cache (Varnish, Squid)segunda-feira, 28 de fevereiro de 2011
  57. 57. Fluxo de uma aplicação web Cache Cache (Page cache,action (Varnish, Squid) cache, fragment cache)segunda-feira, 28 de fevereiro de 2011
  58. 58. Fluxo de uma aplicação web Cache Cache Cache (Page cache,action (Varnish, Squid) cache, fragment (Memcached) cache)segunda-feira, 28 de fevereiro de 2011
  59. 59. Conclusão?segunda-feira, 28 de fevereiro de 2011
  60. 60. Cachesegunda-feira, 28 de fevereiro de 2011
  61. 61. Cache Cachesegunda-feira, 28 de fevereiro de 2011
  62. 62. Cache Cache Cachesegunda-feira, 28 de fevereiro de 2011
  63. 63. Faça benchmarkssegunda-feira, 28 de fevereiro de 2011
  64. 64. Tudo deve ser monitorado!segunda-feira, 28 de fevereiro de 2011
  65. 65. Como monitorar?segunda-feira, 28 de fevereiro de 2011
  66. 66. Como monitorar? Nagios, Munin dentre outrossegunda-feira, 28 de fevereiro de 2011
  67. 67. Como monitorar? Geração de gráficossegunda-feira, 28 de fevereiro de 2011
  68. 68. Como monitorar? Monitoramento proativosegunda-feira, 28 de fevereiro de 2011
  69. 69. Analytics para página de erros Permite acompanhar o resultado para o usuário final das soluções adotadassegunda-feira, 28 de fevereiro de 2011
  70. 70. Se o gargalo for hardware?segunda-feira, 28 de fevereiro de 2011
  71. 71. Escalabilidade verticalsegunda-feira, 28 de fevereiro de 2011
  72. 72. Escalabilidade horizontalsegunda-feira, 28 de fevereiro de 2011
  73. 73. Escalabilidade horizontal Infra boo-box + 5 bilhões de impressões em 2010 Fonte: booblog.boo-box.comsegunda-feira, 28 de fevereiro de 2011
  74. 74. Não existe receita para escalabilidadesegunda-feira, 28 de fevereiro de 2011
  75. 75. Cada caso deve ser analisado separadamentesegunda-feira, 28 de fevereiro de 2011
  76. 76. Não se prenda a uma tecnologia. Utilize a melhor para resolver o seu problemasegunda-feira, 28 de fevereiro de 2011
  77. 77. Perguntas?segunda-feira, 28 de fevereiro de 2011
  78. 78. Referências http://highscalability.com/ http://www.mysqlperformanceblog.com/ http://railslab.newrelic.com/scaling-railssegunda-feira, 28 de fevereiro de 2011
  79. 79. Obrigado! Bruno Andrade Alves bruno@dito.com.brsegunda-feira, 28 de fevereiro de 2011

×