O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

MongoDB em producao

Palestra realizada no TDC2011

  • Seja o primeiro a comentar

MongoDB em producao

  1. 1. em produção dá pra confiar?Antonio Marques - @acmarques André Ferraz - @deferraz
  2. 2. Em produção há quase 2 anos em diversas aplicações
  3. 3. Mas por que MongoDB?Laggard
  4. 4. • Reescrita incremental de sistema legado• Alterações de modelo frequentes• Muitas migrations...
  5. 5. Mas Rails com MySQL é tão legal!Laggard
  6. 6. Novidades interessantes surgindo +
  7. 7. Novidades interessantes surgindohttp://railscasts.com/episodes/194-mongodb-and- mongomapper
  8. 8. E então começou a saga do early adopter
  9. 9. Primeira semana em produção
  10. 10. Primeira semana em produçãoNoMemoryError (failed to allocate memory): /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `recv /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `receive_full /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 206:in `object_from_stream /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 191:in `next_object_on_wire /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 157:in `read_objects_off_wire /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 153:in `read_all
  11. 11. Primeira semana em produçãoNoMemoryError (failed to allocate memory): /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `recv /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `receive_full /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 206:in `object_from_stream /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 191:in `next_object_on_wire /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 157:in `read_objects_off_wire /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 153:in `read_all Mas o servidor tem memória livre!
  12. 12. Primeira semana em produçãoNoMemoryError (failed to allocate memory): /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `recv /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/db.rb: 326:in `receive_full /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 206:in `object_from_stream /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 191:in `next_object_on_wire /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 157:in `read_objects_off_wire /usr/lib/ruby/gems/1.8/gems/mongodb-mongo-0.9/lib/mongo/cursor.rb: 153:in `read_all mongo driver atualizado para versão 0.11 e adicionada configuração específica para Passenger em config/initializers/mongo.rb
  13. 13. Ferrando a vida dos sysadmins
  14. 14. Backporting
  15. 15. Backporting
  16. 16. Segurança / Autorização• RW User / RO User• No Roles• Plain String Key Exchange (Replica Set / Sharding)
  17. 17. Conhecimento• Evite ser o unico ponto focal• Aprendeu algo novo? Repasse ao time
  18. 18. Troubleshooting / Debugging• Cluster Offline• Repair Database
  19. 19. Alta Disponibilidade com Replica Sets
  20. 20. Replica Sets Server A slave syncServer B sync Server C slave master Web App
  21. 21. Replica Sets Server A slave syncServer B sync Server C slave master Web App
  22. 22. Replica Sets Server A voting slaveServer B Server C slave master Web App
  23. 23. Replica Sets Server A slave syncServer B Server C master Web App
  24. 24. Replica Sets Server A slave syncServer B Server C master Web App
  25. 25. Replica Sets Server A slave syncServer B Server C master Web App
  26. 26. Replica Sets Server A slave sync syncServer B Server C master slave Web App
  27. 27. Mas não tão simples...
  28. 28. Necessário atualizar aplicação para o driver mais recente
  29. 29. Necessário atualizar aplicação para o driver mais recente
  30. 30. Configurar a aplicação para usar o Replica SetAlterar classe de conexãoTratar tipos específicos de exceção
  31. 31. Atualizar o MongoDB para versões a partir da 1.8.x As primeiras versões a suportar Replica Sets (1.6.x)apresentam falhas no sistema de votação em algumas situações http://groups.google.com/group/mongodb-user/ browse_thread/thread/6bee27d40a269eab
  32. 32. Próximos passos
  33. 33. Sharding
  34. 34. Sharding Server AWeb App
  35. 35. ShardingServer A Web App
  36. 36. ShardingServer A Server B Web App
  37. 37. ShardingServer A Server B Server C Web App
  38. 38. ShardingServer A Server B Server C Server D Web App
  39. 39. ShardingServer A Server B Server C Server D Server N Web App
  40. 40. ShardingServer A Server B Server C Server D Server N mongos Web App
  41. 41. Sharding Server A Server B Server C Server D Server NConfigConfig mongos Web AppConfig
  42. 42. Sharding Server A Server B Server C Server D Server NConfigConfig mongos Web AppConfig
  43. 43. Sharding Server A Server B Server C Server D Server NConfigConfig mongos Web AppConfig
  44. 44. Sharding + Replica Set mongos Web App
  45. 45. Sharding + Replica Set mongos Web App
  46. 46. Sharding + Replica Set mongos Web App
  47. 47. 2.0
  48. 48. 2.0• Journaling habilitado por padrão• Sharding Authentication• Prioridade em nós de Replica Sets• Data center awareness• Modo manutenção• Novas funções de Query• Shell customizável
  49. 49. 2.0 Muito barulho
  50. 50. 2.0
  51. 51. 2.0
  52. 52. 2.0 Muito boato
  53. 53. 2.0
  54. 54. E não é só a Locaweb que utiliza MongoDB...
  55. 55. E não é só a Locaweb que utiliza MongoDB...
  56. 56. PERGUNTAS ?http://twitter.com/acmarques http://blog.acmarques.com http://twitter.com/deferraz http://blog.ferraz.info
  57. 57. OBRIGADO!

    Seja o primeiro a comentar

    Entre para ver os comentários

  • mvrilo

    Jul. 10, 2011
  • TrueBanger

    Jul. 10, 2011
  • souzagodoi

    Jul. 10, 2011
  • gleicon

    Jul. 10, 2011
  • danielqo

    Jul. 11, 2011
  • leandrogodoyfernandes

    Jul. 11, 2011
  • brunoborges

    Jul. 15, 2011
  • hmbr

    Sep. 20, 2011

Palestra realizada no TDC2011

Vistos

Vistos totais

4.534

No Slideshare

0

De incorporações

0

Número de incorporações

186

Ações

Baixados

0

Compartilhados

0

Comentários

0

Curtir

8

×