Pergunta

Eu queria saber se alguém pode me dizer se MongoDB ou CouchDB está pronto para uma produção ambiente.

Agora estou olhando para essas soluções de armazenamento (eu estou favorecendo MongoDB no momento), porém esses projetos são muito jovem e por isso prevejo que eu vou ter que trabalhar muito duro para convencer meu gerente que nós deve adotar essa nova tecnologia.

O que eu gostaria de saber é:

  1. Quem está usando MongoDB ou CouchDB hoje em um ambiente de produção?

  2. Como você está usando MongoDB / CouchDB?

  3. Que problemas (se houver) que você se deparar quando você adotou esse novo mecanismo de armazenamento (e como você superá-los)?

  4. Como você lidar com quaisquer problemas de migração que você teve que lidar?

  5. Você tem alguma boa / más experiências com qualquer uma destas soluções que você gostaria de compartilhar?

Foi útil?

Solução

Eu sou o CTO da 10gen (desenvolvedores do MongoDB) por isso estou um pouco tendenciosa, mas eu também gerenciar alguns sites que estão usando MongoDB em produção.

businessinsider tem vindo a utilizar mongo em produção há mais de um ano. Eles estão usando-o para tudo, de usuários e blogs, para cada imagem no site.

ShopWiki é usá-lo para algumas coisas, incluindo análises em tempo real e uma camada de cache. Eles estão fazendo mais de 1000 gravações por segundo para um bastante grande banco de dados.

Se você vai para o href="http://www.mongodb.org/about/production-deployments/" rel="nofollow noreferrer"> mongodb Produção implantações página você verá alguns pessoas que estão usando mongo na produção.

Se você tem dúvidas sobre a escala eo alcance de implantações de produção, pós em nossa lista de usuário e nós estaremos mais do que feliz em ajudar.

Outras dicas

O BBC e meebo.com usar CouchDB na produção e o mesmo acontece com um dos meus clientes. Aqui está uma lista de outras pessoas usando Couch: CouchDB na natureza

O grande desafio é saber como organizar seus documentos e parar de pensar em termos de dados relacional.

SourceForge usa MongoDB. Consulte este apresentação ou leia aqui .

Estamos executando CouchDB como um replacemant para o MySQL para nossas lojas (70.0000 itens / loja, um total de 4 milhões de atributos de todos os itens, conexões cruzadas entre os itens).

Nossos objetivos foram:

  1. replicação Fácil de um mestre-db a vários clientes com diferentes documentos.

  2. rápida de dados pré-calculados como "quantas peças que eu tenho com este atributo e que filtram, cabendo a essas condições"

fatos:

  1. As nossas lojas estão agora correndo muito mais rápido do que com MySQL (e mysql-banco de dados necessário Additionaly 1-3 dias de pré-cálculo (para a actualização foi duas vezes por mês), tornando os dados prontos para a contagem do produto e filtrando, CouchDB precisa 5 horas, para que pudéssemos atualizar dados de produtos cada noite)
  2. Criação de distribuição de dados (filtrado) e backups para os gânglios loja é fácil e rápido

mas também:

  1. mapa Entendimento / reduzir e os limites de não ter se junta é muito difícil
  2. Nenhuma operação em dados como "riscar" ou "atualização de onde" sem programas externos
  3. A replicação funciona bem, a menos que haja um problema; então é realmente difícil descobrir qual foi a razão (para iniciantes)
  4. A instalação de CouchDB sem binários (sim há alguns em estado selvagem, mas não para cada OS / versão) pode ser difícil, se você não é um geek Linux. Mas a Comunidade CouchDB é útil (#couchdb), e felizmente existem empresas lá fora (Cloudant, iriscouch) que oferecem serviços de livre para um grande negócio.
  5. CouchDB está se movendo para a frente, de forma que há uma série de mudanças (melhorias) em curso que pode alterar eles maneira de trabalhar. Mas as coisas básicas permanecem estáveis.

Como resultado: MySQL como banco de dados para a criação de dados e manutenção é confiável e fácil de entender e alça. Acho que não vai mudar isso. Mas eu também não quero perder o poder de visualizações do CouchDB e da facilidade de configuração de replicação.

sofás de produção, por vezes causaram problemas depois de meses de trabalho devido à configuração incorreta e logrotates esquecidos (edifício vista é muito demorada ou trava, replicação pára), mas nunca perderam dados, e sempre podem ser facilmente repostas.

Eu estou usando o CouchDB na produção. Atualmente ele armazena todos os campos 'opcionais' que não estavam no esquema DB originais. E agora eu estou pensando em mudar todos os dados para CouchDB.

É bastante um passo arriscado, eu admito. Em primeiro lugar, porque não é v1.0 ainda. E em segundo lugar, porque é DriveSpace-fome. Pelos meus cálculos, arquivo CouchDB (com índices) é ~ 30 vezes maior do que banco de dados MySQL com as mesmas linhas. Mas eu tenho certeza que ele vai funcionar muito bem.

CouchDB 0,11 (lançado no final de Março) é uma característica de libertação por congelação para 1,0. Isso significa que vai ser manter a compatibilidade com a API atual para 1,0, então agora é uma boa hora para ter um outro olhar CouchDB se você não tem em quando.

O CouchDB lançamento do código 0,11 fonte está disponível aqui. instaladores binários e outras guloseimas ligados aqui

.

Eu não sei nada sobre MongoDB, mas a partir do CouchDB FAQ :

CouchDB está pronto para produção?

Sim, veja InTheWild para uma lista parcial de projetos utilizando CouchDB. Outra visão é bom CouchDB Estudos de Caso

Além disso, alguns links:

Nós usamos couchdb na produção e, desde então, pouco antes de o projeto foi sob o guarda-chuva Apache.

Vamos utilizá-lo para armazenar tudo o que poderiam usar um SGBD, além de todos os tipos de dados não estruturados. Pessoalmente, eu realmente gosto de como você pode simplesmente jogar todos os tipos de dados em-lo e usar os pontos de vista de abater o que você não precisa, dependendo da situação.

A parte mais difícil foi se afastando da mentalidade dbms. Nós escrevemos nossas próprias utils migração quando o formato de armazenamento mudou apenas para ser seguro, de modo que não era realmente um problema.

Nós não tivemos quaisquer experiências negativas ainda, mas mais uma vez não tivemos a configuração sob qualquer tipo de carga enorme. I pensar as coisas iriam funcionar muito bem desde que nós temos dois servidores do tipo escrava que replicam a partir de um único servidor mestre que recebe todas as gravações. Tenho certeza de que não temos de fazê-lo dessa forma para replicação para trabalho corretamente, mas é como nós configurá-lo no início e ele ficou preso.

Nós usamos CouchDB para armazenar entrada móvel e mensagens de saída e para informar sobre este tráfego através de algumas exibições personalizadas que eu escrevi. O front-end é escrito em Python. Nós não temos quaisquer questões técnicas reais, e está em funcionamento desde o final de dezembro. O único obstáculo que encontrei foi inicialmente pensando em termos de MapReduce, mas uma vez eu aprendi como fazer isso, tudo o resto correu bem.

Estamos actualmente a utilizar MongoDB em produção como a camada de cache bem como mecanismo de armazenamento para o produto a importação e manipulação de dados do produto. Somos uma empresa de comércio eletrônico gestão de mais de dois milhões de produtos (100 + milhões de atributos), abrangendo 10 + distribuidores e sem MongoDB, esta tarefa seria aproximando impossível.

No momento, estamos usando MongoDB como um serviço de armazenamento de arquivos para nossa colaboração over LAN. Além disso, projetos como Trello estiver usando MongoDB como seu armazenamento de dados back-end. Eu tenho usado couchdb mais cedo, mas não em capacidade de produção.

Estamos usando MongoDB na produção em nosso serviço de back-end móvel ou seja, Netmera. Estamos a usá-lo para armazenar todos os usuários e dados de conteúdo.

Eu tenho usado o CouchDB em produção há quase 2 anos. Não há nenhum trabalho a migração como o projeto começou de diretamente com a implementação CouchDB. Ele serve como um banco de dados que armazena os dados de um único produto eletrônico do início até a embalagem.

Uma vez que estamos vendendo sensor com uma demanda em alta precisão, fazemos um monte de teste em estágio diferente e todos estes serão armazenados em um documento sobre CouchDB.

Há alguma curva de aprendizagem que eu aprendi com a minha experiência, que é o de fazer pleno uso dos pontos de vista (ou também conhecido como vistas permanentes). Visualizações deve ser "pequeno filtro" de uma fração do banco de dados que será chamado muitas vezes.

Meu CouchDB databse não é tão louco como outra empresa gigantesca. Mas, até agora, eu ainda estou indo bem. Atualmente eu estou tendo 24000 documentos em 700MB.

Característica do CouchDB que eu gosto é 'replicação', 'armazenar revisões de um documento'.

Eu li um monte de bons comentários sobre MongoDB e vou querer experimentá-lo se houver uma chance.

Estamos usando MongoDB na produção para

www.beachfront.io - perto de 5k solicitação de gravação por segundo www.beachfrontbuilder.com -. 500 de leitura / solicitação de gravação por segundo, manter usuários 10m de dados e OLAP

O único desafio enfrentado em torno de arquivamento de dados, podemos superar através da implementação de nosso componente personalizado.

Esta questão já aceitou resposta, mas nos dias de hoje mais uma NoSQL DB está em tendência de muitas das suas grandes características. É Couchbase; que é executado como CouchbaseLite na plataforma móvel e Couchbase Server no lado do servidor.

Aqui estão algumas das principais características de Couchbase Lite.

Couchbase Lite é leve, motor de banco de dados syncable (NoSQL), orientado a documentos adequados para incorporação em aplicativos móveis.

meio Leves:

Incorporado-o motor de banco de dados é uma biblioteca ligada no aplicativo, não um processo servidor separado. tamanho importante código pequeno para aplicativos móveis, que muitas vezes são transferidos através de redes celulares. Rápido tempo importante inicialização porque os dispositivos móveis têm CPUs relativamente lentos. Baixa memória conjuntos de dados móveis de uso típico são relativamente pequenos, mas alguns documentos pode ter grandes anexos multimídia. bons números de desempenho-exato dependerá de seus dados e aplicativos, é claro.

meio-orientados documento:

Lojas registros em formato JSON flexível, em vez de exigir esquemas ou normalização predefinida. Os documentos podem ter anexos binários arbitrários porte, tais como conteúdo multimídia. formato de dados do aplicativo pode evoluir ao longo do tempo, sem qualquer necessidade de migrações explícitas. MapReduce indexação fornece pesquisas rápidas sem a necessidade de usar linguagens especiais de consulta.

meio sincronizáveis:

Qualquer duas cópias de um banco de dados pode ser trazido para sincronização via um algoritmo eficiente, confiável e comprovada replicação. Sync pode ser por demanda ou contínua (com uma latência de alguns segundos). Os dispositivos podem sincronizar com um subconjunto de um grande banco de dados em um servidor remoto. O motor de sincronização suporta conexões de rede intermitentes e pouco confiáveis. Os conflitos podem ser detectados e resolvidos, com a lógica de aplicativo em pleno controle de fusão. árvores de revisão permitem topologias de replicação complexos, incluindo servidor para servidor (para vários centros de dados) e peer-to-peer, sem perda de dados ou falsos conflitos. Couchbase Lite fornece APIs nativas para iOS perfeita (Objective-C) e Android desenvolvimento (Java). Além disso, ele inclui o Couchbase Lite Plug-in para PhoneGap, que lhe permite construir iOS e Android que você desenvolve usando técnicas de programação de aplicações web familiares eo quadro de desenvolvimento móvel PhoneGap.

Você pode explorar mais sobre Couchbase Lite

Couchbase Servidor

Este vai a próxima grande coisa.

produção Falando, recuperação perfeita de falhas / recuperação de ambos exigem um bebê sitter
1- Couchbase, não há o failover / recuperação, é necessária intervenção manual.
reequilíbrio leva muito tempo, um risco muito grande se mais de um nó se perder.

2 Mongo com cacos, recuperação de dados de perder um servidor de configuração, não é uma tarefa fácil

Adobe está usando MongoDB para o seu próximo lançamento do Adobe Experience Manager (anteriormente Dia CQ ) como o motor do núcleo DB.

Vários cliente está no trabalho agência de I a estiver usando CouchDB em projetos para grandes clientes.

Ambos são grandes e viáveis ??DBs, na minha opinião. :)

Aqui está uma lista de locais de produção implantado com mongoDB

  • The New Yorks Tempos : Usá-lo em um aplicativo de construção de formulário para submissões de fotos. falta de esquema de Mongo dá aos produtores a capacidade de definir qualquer combinação de campos de formulários personalizados.
  • SourceForge :. É usado para armazenamento de back-end nas páginas SourceForge dianteiros, páginas do projeto e páginas de download para todos os projetos
  • Bit.ly
  • Etsy
  • IGN :. Poderes da IGN análise em tempo real de tráfego e RESTful APIs conteúdo
  • Justin.tv :. Poderes ferramentas de análise internos da Justin.tv para viralidade, retenção do usuário e estatísticas de uso gerais que out-of-the-box soluções não podem fornecer
  • Posterous
  • Intuit
  • Foursquare :. Bases de dados Sharded Mongo são usados ??para a maioria dos dados em foursquare
  • Business Insider :. Usando-o desde o início de 2008. Todos os dados do site, incluindo mensagens, comentários e até mesmo as imagens, são armazenados no MongoDB
  • Github :. É usado para uma aplicação relatório interno
  • Examiner :. Migrou seu site a partir Cold Fusion e SQL Server para Drupal 7 e MongoDB
  • Grooveshark :. Atualmente usa Mongo para gerenciar mais de um milhão de sessões de usuários únicos por dia
  • Buzzfeed
  • Discus
  • Evite :. Usado para análises e relatórios rápida
  • Squarespace
  • Shutterfly : é usado para várias necessidades de armazenamento de dados persistentes dentro Shutterfly. MongoDB ajuda Shutterfly construir um serviço inigualável que permite mais profundo, mais relacionamentos pessoais entre clientes e aqueles que mais importam em suas vidas.
  • Topsy
  • ShareThis
  • MongoHQ : fornece uma plataforma de hospedagem para MongoDB e também usa MongoDB como o back-end para o seu serviço. Nossa página de centros de hospedagem oferece mais informações sobre MongoHQ e outras opções de hospedagem MongoDB.

e muito mais ...

Extraído de: http://lineofthought.com/tools/mongodb

Você pode verificar outros bancos de dados ou ferramentas lá também.

MongoDB tem alguns problemas com licenciamento para as empresas, eu não tenho certeza dos detalhes, mas o nosso departamento jurídico nos disse em certos termos que não foram autorizados a usar MongoDB em qualquer um dos nossos produtos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top