• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MongoDB em producao
 

MongoDB em producao

on

  • 4,203 views

Palestra realizada no TDC2011

Palestra realizada no TDC2011

Statistics

Views

Total Views
4,203
Views on SlideShare
4,019
Embed Views
184

Actions

Likes
8
Downloads
0
Comments
0

11 Embeds 184

http://localhost 51
http://irr.posterous.com 33
http://paper.li 26
url_unknown 26
http://us-w1.rockmelt.com 20
http://twitter.com 13
http://k-cy.com 6
http://www.techgig.com 5
http://a0.twimg.com 2
http://10.0.1.2 1
https://si0.twimg.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

MongoDB em producao MongoDB em producao Presentation Transcript

  • em produção dá pra confiar?Antonio Marques - @acmarques André Ferraz - @deferraz
  • Em produção há quase 2 anos em diversas aplicações
  • Mas por que MongoDB?Laggard
  • • Reescrita incremental de sistema legado• Alterações de modelo frequentes• Muitas migrations...
  • Mas Rails com MySQL é tão legal!Laggard
  • Novidades interessantes surgindo +
  • Novidades interessantes surgindohttp://railscasts.com/episodes/194-mongodb-and- mongomapper
  • E então começou a saga do early adopter
  • Primeira semana em produção
  • 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
  • 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!
  • 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
  • Ferrando a vida dos sysadmins
  • Backporting
  • Backporting
  • Segurança / Autorização• RW User / RO User• No Roles• Plain String Key Exchange (Replica Set / Sharding)
  • Conhecimento• Evite ser o unico ponto focal• Aprendeu algo novo? Repasse ao time
  • Troubleshooting / Debugging• Cluster Offline• Repair Database
  • Alta Disponibilidade com Replica Sets
  • Replica Sets Server A slave syncServer B sync Server C slave master Web App
  • Replica Sets Server A slave syncServer B sync Server C slave master Web App
  • Replica Sets Server A voting slaveServer B Server C slave master Web App
  • Replica Sets Server A slave syncServer B Server C master Web App
  • Replica Sets Server A slave syncServer B Server C master Web App
  • Replica Sets Server A slave syncServer B Server C master Web App
  • Replica Sets Server A slave sync syncServer B Server C master slave Web App
  • Mas não tão simples...
  • Necessário atualizar aplicação para o driver mais recente
  • Necessário atualizar aplicação para o driver mais recente
  • Configurar a aplicação para usar o Replica SetAlterar classe de conexãoTratar tipos específicos de exceção
  • 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
  • Próximos passos
  • Sharding
  • Sharding Server AWeb App
  • ShardingServer A Web App
  • ShardingServer A Server B Web App
  • ShardingServer A Server B Server C Web App
  • ShardingServer A Server B Server C Server D Web App
  • ShardingServer A Server B Server C Server D Server N Web App
  • ShardingServer A Server B Server C Server D Server N mongos Web App
  • Sharding Server A Server B Server C Server D Server NConfigConfig mongos Web AppConfig
  • Sharding Server A Server B Server C Server D Server NConfigConfig mongos Web AppConfig
  • Sharding Server A Server B Server C Server D Server NConfigConfig mongos Web AppConfig
  • Sharding + Replica Set mongos Web App
  • Sharding + Replica Set mongos Web App
  • Sharding + Replica Set mongos Web App
  • 2.0
  • 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
  • 2.0 Muito barulho
  • 2.0
  • 2.0
  • 2.0 Muito boato
  • 2.0
  • E não é só a Locaweb que utiliza MongoDB...
  • E não é só a Locaweb que utiliza MongoDB...
  • PERGUNTAS ?http://twitter.com/acmarques http://blog.acmarques.com http://twitter.com/deferraz http://blog.ferraz.info
  • OBRIGADO!