Successfully reported this slideshow.
7 mil publishers
420 milhões de impressões ao mês
O que é qualidade?
Formatos
   Monetização diferenciada

  Excelência          Liberdade de escolha


    Transparência

           Velocidad...
Felipe Luis de Souza Vieira
@felipetio
http://felipetio.net
Formatos
   Monetização diferenciada

  Excelência          Liberdade de escolha


    Transparência            Idealismo
...
Targeting


                                Que informações
   Quais sites
                               temos sobre ele?...
Targeting

  User                             Classificação
behaviour                       Que informações
               ...
Formatos



Não sei deixar nada bonito na web,
Formatos



     Não sei deixar nada bonito na web,

Nem nesssa apresentação (obrigado @fmafra),
Formatos



            Não sei deixar nada bonito na web,

      Nem nesssa apresentação (obrigado @fmafra),

Ainda não c...
Formatos




como desenvolvedor eu sei
por que como usuário eu sei
Formatos
OK
NÃO
Velocidade




como desenvolvedor eu sei
por que como usuário eu sei
Velocidade

                  Evolução de Impressions
                                                     121MM



      ...
Velocidade




0                100
Velocidade




0                100
Velocidade




0                200
Velocidade
Velocidade
                                                           -)./)!"!

       *+,$"+-

                          ...
Velocidade
Velocidade




Não processar os requests...
Velocidade
Velocidade




CACHE
Evolução do sistema
 de cache boo-box
Início
            Servidor                        API


Tags/Shop


                       Prepara Requisição



        ...
Problemas




Tempo
Limite de Requests
Indisponibilidade da API
Primeira Estratégia
 de cache adotada
 CouchDB e Beanstalked
Fluxo do request
            Servidor            Fila          Cache       API


Tags/Shop
                Adiciona p/
   ...
Fluxo de atualização do cache
Fila                    Cache   API                   Daemon




       Pega Shop/Tags


   ...
Resultado




Tempo
Limite de Requests
Indisponibilidade da API
Resultado




Tempo
Limite de Requests
Indisponibilidade da API
Problemas




Expiração do cache
Escrita em disco
Atualização de versão
Manutenção
Solução atual
Redis e Beanstalked
Redis



Como memcache          Diferente do memcache
Key-values store       Operações avançadas com as keys
Dados na memó...
Redis



Como memcache                  Diferente do memcache
Key-values store               Operações avançadas com as ke...
Fluxo do request
            Servidor            Fila           Cache   API


Shop/Tags
                Adiciona p/
      ...
Fluxo do request
            Servidor            Fila           Cache   API


Shop/Tags
                Adiciona p/
    M ...
Fluxo do request
            Servidor              Fila              Cache   API


Shop/Tags
                Adiciona p/
 ...
Fluxo do request
            Servidor            Fila             Cache           API


Shop/Tags
                Requisit...
Fluxo de atualização do cache
Daemon                 Fila                   Cache   API


     Pega Shop/Tags


          ...
Resultados
Recursos otimizados

                  couchDB



     300



     200
GB




     100



       0
Recursos otimizados

                   Redis



     300



     200
MB




     100



       0
Recursos otimizados




300 GB -> 300 MB
Sem intervenção!
Recursos otimizados

                   couchDB



      400


      300
CPU




      200


      100


        0
Recursos otimizados

                    Redis



      400


      300
CPU




      200


      100


        0
Recursos otimizados




Usando 3%
 da CPU
Recursos otimizados

 Quer mais?
Redução de 2 servidores...
Reduçao do response time:
Felipe Luis de Souza Vieira
@felipetio
felipe@boo-box.com
http://felipetio.net
Usando Redis para otimizar o sistema boo-box
Usando Redis para otimizar o sistema boo-box
Usando Redis para otimizar o sistema boo-box
Upcoming SlideShare
Loading in …5
×

Usando Redis para otimizar o sistema boo-box

2,788 views

Published on

Published in: Education, Technology
  • Be the first to comment

Usando Redis para otimizar o sistema boo-box

  1. 1. 7 mil publishers 420 milhões de impressões ao mês
  2. 2. O que é qualidade?
  3. 3. Formatos Monetização diferenciada Excelência Liberdade de escolha Transparência Velocidade Originalidade Simplicidade Estatísticas Targeting
  4. 4. Felipe Luis de Souza Vieira @felipetio http://felipetio.net
  5. 5. Formatos Monetização diferenciada Excelência Liberdade de escolha Transparência Idealismo Velocidade Originalidade Simplicidade Estatísticas Targeting
  6. 6. Targeting Que informações Quais sites temos sobre ele? foram visitados? O que ele De onde ele é? procura?
  7. 7. Targeting User Classificação behaviour Que informações de textos Quais sites temos sobre ele? foram visitados? O que ele De onde ele é? procura? Inteligência Geo artificial localização
  8. 8. Formatos Não sei deixar nada bonito na web,
  9. 9. Formatos Não sei deixar nada bonito na web, Nem nesssa apresentação (obrigado @fmafra),
  10. 10. Formatos Não sei deixar nada bonito na web, Nem nesssa apresentação (obrigado @fmafra), Ainda não consigo desenvolver layouts com mais de 16 cores.
  11. 11. Formatos como desenvolvedor eu sei por que como usuário eu sei
  12. 12. Formatos
  13. 13. OK
  14. 14. NÃO
  15. 15. Velocidade como desenvolvedor eu sei por que como usuário eu sei
  16. 16. Velocidade Evolução de Impressions 121MM 93MM 72MM 55MM 42MM 34MM Jul 09 Aug 09 Sep 09 Oct 09 Nov 09 Dec 09
  17. 17. Velocidade 0 100
  18. 18. Velocidade 0 100
  19. 19. Velocidade 0 200
  20. 20. Velocidade
  21. 21. Velocidade -)./)!"! *+,$"+- !"#"$%&'$()! (+#0&1#(#,%)- 8-$") !"#$%&'(,))".!,%.*/ :;<;< 233&4 233&5 233&9 233&7 !"#$%&'("*0 !"#$%&' -)#0 8-$") : +,%, $*#'!& ; < -)3($%#") ; -)3($%#") < -)#0 8-$") => -)#0 !"#$%&'()'*+#!%$(!,!-& %#%6)&4 %#%6)&7 http://www.boo-box.com/blog/br/2009/nova-infraestrutura-de-servidores-web-do-sistema-boo-box/
  22. 22. Velocidade
  23. 23. Velocidade Não processar os requests...
  24. 24. Velocidade
  25. 25. Velocidade CACHE
  26. 26. Evolução do sistema de cache boo-box
  27. 27. Início Servidor API Tags/Shop Prepara Requisição Pega Produtos DEMORA Log Produtos
  28. 28. Problemas Tempo Limite de Requests Indisponibilidade da API
  29. 29. Primeira Estratégia de cache adotada CouchDB e Beanstalked
  30. 30. Fluxo do request Servidor Fila Cache API Tags/Shop Adiciona p/ atualização Pega Produtos +++ Rápido Log Produtos
  31. 31. Fluxo de atualização do cache Fila Cache API Daemon Pega Shop/Tags Prepara Requisição Pega Produtos Salva Produtos (loop)
  32. 32. Resultado Tempo Limite de Requests Indisponibilidade da API
  33. 33. Resultado Tempo Limite de Requests Indisponibilidade da API
  34. 34. Problemas Expiração do cache Escrita em disco Atualização de versão Manutenção
  35. 35. Solução atual Redis e Beanstalked
  36. 36. Redis Como memcache Diferente do memcache Key-values store Operações avançadas com as keys Dados na memória Escalabilidade Cache implementado Persistência
  37. 37. Redis Como memcache Diferente do memcache Key-values store Operações avançadas com as keys Dados na memória Escalabilidade Cache implementado Persistência Em números: 110.000 SETs/sec 81.000 GETs/sec
  38. 38. Fluxo do request Servidor Fila Cache API Shop/Tags Adiciona p/ atualização Tem Produtos (sim) Pega Produtos Log Produtos
  39. 39. Fluxo do request Servidor Fila Cache API Shop/Tags Adiciona p/ M atualização E M C Tem Produtos (sim) A C H Pega Produtos E Log Produtos
  40. 40. Fluxo do request Servidor Fila Cache API Shop/Tags Adiciona p/ M atualização E M Tem Produtos (não) C A C Pega Produtos H E Salva Log Produtos
  41. 41. Fluxo do request Servidor Fila Cache API Shop/Tags Requisita M atualização E M Tem Produtos (não) C A C Pega Produtos (demorou) H E Pega Produtos Similares Log Produtos
  42. 42. Fluxo de atualização do cache Daemon Fila Cache API Pega Shop/Tags Velho? Pega produtos Salva (loop)
  43. 43. Resultados
  44. 44. Recursos otimizados couchDB 300 200 GB 100 0
  45. 45. Recursos otimizados Redis 300 200 MB 100 0
  46. 46. Recursos otimizados 300 GB -> 300 MB Sem intervenção!
  47. 47. Recursos otimizados couchDB 400 300 CPU 200 100 0
  48. 48. Recursos otimizados Redis 400 300 CPU 200 100 0
  49. 49. Recursos otimizados Usando 3% da CPU
  50. 50. Recursos otimizados Quer mais? Redução de 2 servidores... Reduçao do response time:
  51. 51. Felipe Luis de Souza Vieira @felipetio felipe@boo-box.com http://felipetio.net

×