MongoDB @ Globo.com

7,619
-1

Published on

Estes são os slides da apresentação sobre o uso do MongoDB no projeto Cartola FC da Globo.com. Vc pode ver o vídeo dessa apresentação no link: http://www.gonow.com.br/blog/2011/07/29/o-mongodb-aplicado-ao-cartolafc-da-globo-com/

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,619
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
75
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

MongoDB @ Globo.com

  1. 1. MONGODB @ GLOBO.COM Julho/2011
  2. 2. FRANKLIN AMORIM email: franklin@corp.globo.com twitter: @cyberelfo
  3. 3. • Provedorade serviços tecnológicos e plataformas web para as empresas Globo• Líder nos segmentos de notícias, esportes e entretenimento
  4. 4. Números de Junho/2011:• Mais de 70 milhões de visitantes únicos (cookies distintos)• Mais de 550 milhões de visitas• Mais de 3 bilhões de pageviews, em quase 300.000 páginas distintas
  5. 5. • Maior aplicação dinâmica da Globo.com• Maior Fantasy Game da internet brasileira• Mais de 2 milhões de usuários cadastrados• 15 milhões de visitas em junho• Quase 90 milhões de pageviews em junho• Quase 30k sessões simultâneas nos picos de acesso
  6. 6. • Gráfico do datacenter
  7. 7. O DESAFIODesenvolver uma aplicação de mural, com capacidade para atender ao volume deacesso do Cartola, com alta performance e disponibilidade.
  8. 8. PREMISSAS• Velocidade• Robustez• Escalabilidade• Perda de mensagens não é critico• Indisponibilidade inicial é tolerável
  9. 9. MYSQL XMONGODB
  10. 10. MONGODB - VANTAGENS• Velocidade• Sem necessidade de um ORM• Acesso mais natural aos dados• Sem schema / sem migrations (com exceções)• Failover automático• Possibilidade de escalar escritas com sharding
  11. 11. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  12. 12. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  13. 13. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  14. 14. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  15. 15. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  16. 16. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  17. 17. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  18. 18. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  19. 19. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  20. 20. VISÃO SIMPLIFICADA Nginx/Tornado MongoDB
  21. 21. TECNOLOGIAS• Ngnix - Webserver• Tornado - Application• Beanstalk - Fila• Memcached• AsyncMongo (ao invés do PyMongo)• MongoDB
  22. 22. TESTES DE PERFORMANCE• 01 database server - MongoDB• 01 application server• 01 collection com 100 milhões de mensagens• Resultado: 300 requests/segundo• Com 02 application + Memcached: 1.000 reqs/sec
  23. 23. //newsfeed.post - Final { data: "Tue Jun 15 2010 9:00:00 GMT-0400" mensagem: "Minha mensagem"//newsfeed.post - Original liga: {{ id: 1930 id : 1223, nome: "Liga 1930" post_origem_id: 1123, slug: "liga-1930" data: "200411300746400000", } mensagem: "Minha mensagem", comentarios:[ Liga: { { id: 1930, id: 251902, nome: "Liga 1930", data: "Tue Jun 16 2010 11:00:00 GMT-0400", slug: "liga-1930" mensagem: "Legal!", } time: {...} time: { }, id: 1005, { nome: "Time 1005", id: 251903, slug: "time-1005", data: "Tue Jun 16 2010 14:00:00 GMT-0400", flashvars: {...} mensagem: "Nem tanto..." } time: {...}} } ] }
  24. 24. WORKING SET Trabalhar com um working setreduzido, minimizando o impacto das consultas ao banco
  25. 25. ARQUITETURA Primário ArbitroSecundário
  26. 26. ARQUITETURA Primário ArbitroSecundário Cartola
  27. 27. ARQUITETURA Primário Primário ArbitroSecundário Secundário Cartola Replica Set 2
  28. 28. RESULTADOS• Deploy feito em maio/2011• Banco funcionando 24/7• Nenhum incidente reportado desde a implantação•1 milhão de mensagens publicadas
  29. 29. RESULTADO
  30. 30. LIÇÕES APRENDIDAS• Embedding vs Referencing• Minimizar o tamanho dos documentos• Escolher corretamente os data types• Reduza o working set
  31. 31. OUTROS PROJETOS
  32. 32. RECEITAS.COM
  33. 33. CATALOGO DE VÍDEOS
  34. 34. PARTICIPAÇÕES
  35. 35. PERGUNTAS?
  36. 36. OBRIGADO! :) twitter: @cyberelfoemail: franklin@corp.globo.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×