Domanda

Mi chiedevo se qualcuno mi può dire se MongoDB o CouchDB sono pronti per un di produzione ambiente.

Ora sto guardando queste soluzioni di storage (sto favorendo MongoDB al momento), ma questi progetti sono molto giovane e quindi prevedo che ho intenzione di lavorare molto duramente per convincere il mio manager che abbiamo dovrebbe adottare questa nuova tecnologia.

Quello che mi piacerebbe sapere è:

  1. Chi utilizza MongoDB o CouchDB oggi in un ambiente di produzione?

  2. Come state usando MongoDB / CouchDB?

  3. Quali sono i problemi (se presente) fatto che si incontra quando si adottato questo nuovo meccanismo di stoccaggio (e come le avete superate)?

  4. Come hai fatto a trattare con tutti i problemi di migrazione che avete dovuto affrontare?

  5. Avete buone esperienze negative / con una di queste soluzioni che desideri condividere?

È stato utile?

Soluzione

Sono il CTO di 10gen (sviluppatori di MongoDB), quindi sono un po 'di parte, ma riesco anche alcuni siti che utilizzano MongoDB in produzione.

businessinsider ha utilizzato mongo in produzione per oltre un anno. Essi lo usano per tutto da utenti e post di blog, per ogni immagine sul sito.

ShopWiki la sta usando per un paio di cose tra cui analisi in tempo reale e un livello di cache. Stanno facendo più di 1000 scrive al secondo per una abbastanza grande database.

Se si va al href="http://www.mongodb.org/about/production-deployments/" rel="nofollow noreferrer"> mongodb pagina vedrete alcune persone che utilizzano mongo nella produzione.

Se avete domande circa l'entità e la portata di distribuzioni di produzione, pubblicare sul nostro elenco degli utenti e saremo più che felici di aiutarvi.

Altri suggerimenti

Il BBC e meebo.com uso CouchDB nella produzione e così fa uno dei miei clienti. Ecco un elenco di altre persone utilizzando Divano: CouchDB in natura

La sfida principale è quella di sapere come organizzare i vostri documenti e smettere di pensare in termini di dati relazionali.

Ci sono in esecuzione CouchDB come replacemant per MySQL per i nostri negozi (70.0000 articoli / negozio, per un totale di 4 milioni di attributi di tutti gli elementi, i collegamenti incrociati tra gli elementi).

I nostri obiettivi erano:

  1. Facile la replica da un master-db a diversi clienti con diversi documenti.

  2. veloce dei dati precalcolati come "quante parti devo con questo attributo e che filtrano, il montaggio a tali condizioni"

fatti:

  1. I nostri negozi sono ora in esecuzione molto più velocemente che con MySQL (e mysql-base di dati necessaria additionaly 1-3 giorni di pre-calcolo (quindi l'aggiornamento è stato due volte al mese), rendendo i dati pronti per il conteggio del prodotto e il filtraggio, CouchDB ha bisogno di 5 ore, così abbiamo potuto aggiornare i dati prodotti ogni notte)
  2. Impostazione della distribuzione dei dati (filtrata) e backup per i nodi Shop è facile e veloce

, ma anche:

  1. mappa Understanding / ridurre e i limiti di non avere unisce è molto difficile
  2. Nessuna operazione su dati come "cancellare la dicitura" o "aggiornamento in cui" senza programmi esterni
  3. replica funziona bene, a meno che non ci sia un problema; allora è davvero difficile per scoprire che cosa è stato il motivo (per i principianti)
  4. L'installazione di CouchDB senza binari (sì, ci sono un po 'in natura, ma non per tutti i sistemi operativi / versione) potrebbe essere difficile, se non sei un geek Linux. Ma la Comunità CouchDB è utile (#couchdb), e per fortuna ci sono aziende là fuori (cloudant, iriscouch) che offrono servizi da libero a grandi imprese.
  5. CouchDB sta muovendosi in avanti, quindi ci sono un sacco di cambiamenti (miglioramenti) in corso che potrebbe cambiare il loro modo di lavorare. Ma le cose di base rimangono stabili.

Di conseguenza: MySQL come database per la creazione e il mantenimento dei dati è affidabile e facile da capire e da gestire. Penso che non cambierà questo. Ma anche io non voglio perdere il potere della vista CouchDB e la facilità di installazione di replica.

divani produzione a volte causato problemi dopo mesi di lavoro a causa di errori di configurazione e logrotates dimenticati (la vista della costruzione si blocca troppo a lungo o, la replica si ferma), ma mai i dati persi, e sempre potrebbe essere facilmente ripristinare.

Sto usando CouchDB in produzione. Attualmente esso memorizza tutti quei campi 'facoltativi' che non erano nello schema DB originale. E in questo momento sto pensando di spostare tutti i dati per CouchDB.

E 'piuttosto un passo rischioso, lo ammetto. In primo luogo, perché non è ancora v1.0. E in secondo luogo, perché è DriveSpace-fame. Secondo i miei calcoli, file di CouchDB (con gli indici) è ~ 30 volte più grande di database MySQL con le stesse righe. Ma sono abbastanza sicuro che tutto si risolverà bene.

0,11 CouchDB (rilasciato alla fine di marzo) è una release funzione antigelo per 1.0. Questo significa che saremo mantenendo la compatibilità con le API di corrente per 1,0, così ora è un buon momento per dare un'altra occhiata a CouchDB, se non si dispone di un po '.

Il rilascio del codice sorgente di CouchDB 0.11 è disponibile qui. Ci sono installatori binari e altre chicche legate qui

Io non so niente di MongoDB, ma dal CouchDB FAQ :

  

è CouchDB Pronto per la produzione?

     

Si, vedi InTheWild per un elenco parziale dei progetti che utilizzano CouchDB. Un'altra buona panoramica è CouchDB Case Studies

Inoltre, alcuni link:

utilizzare CouchDB nella produzione e da allora poco prima che il progetto è andato sotto l'ombrello di Apache.

L'usiamo per memorizzare tutto ciò che potremmo utilizzare in altro modo un DBMS, più tutti i tipi di dati non strutturati. Personalmente, mi piace molto come si può semplicemente gettare tutti i tipi di dati in esso e utilizzare i punti di vista di abbattere ciò che non è necessario a seconda della situazione.

La parte più difficile stava allontanando dal DBMS mentalità. Abbiamo scritto i nostri utils di migrazione quando il formato di archiviazione cambiato solo per essere sicuro, in modo che non era davvero un problema.

Non abbiamo ancora avuto esperienze negative, ma poi di nuovo non abbiamo avuto il setup in qualsiasi tipo di carico enorme. I pensare le cose avrebbe funzionato abbastanza bene dal momento che abbiamo due assistenti tipo di slave che replicano da un singolo server master che ottiene tutte le operazioni di scrittura. Sono abbastanza sicuro che non abbiamo a che fare in questo modo per la replica funzioni correttamente, ma è il modo in cui configurarlo in principio e bloccati.

Usiamo CouchDB per memorizzare i messaggi in entrata e in uscita mobili e di riferire su questo traffico tramite alcune visualizzazioni personalizzate che ho scritto. Il front-end è scritto in Python. Non abbiamo avuto reali problemi tecnici, ed è in funzione dal fine di dicembre. L'unico ostacolo che ho incontrato è stato inizialmente pensare in termini di MapReduce, ma una volta che ho imparato come fare, tutto il resto è andato liscio.

Attualmente stiamo usando MongoDB nella produzione dello strato caching così come motore di memorizzazione di prodotto importare e manipolare dati di prodotto. Siamo una società di e-commerce gestione di oltre due milioni di prodotti (oltre 100 milioni di attributi), che coprono oltre 10 distributori e senza MongoDB, questo compito sarebbe in via di impossibile.

Al momento stiamo utilizzando MongoDB come un servizio di archiviazione file per la nostra collaborazione su rete LAN. Inoltre, progetti come Trello stanno usando MongoDB come il loro archivio dati back-end. Ho usato CouchDB in precedenza, ma non nella capacità di produzione.

Stiamo usando MongoDB in produzione nel nostro servizio di back-end mobili e cioè Netmera. Stiamo usando per memorizzare tutti gli utenti e i dati contenuti.

Sono stato utilizzando CouchDB in produzione per quasi 2 anni. Non c'è lavoro migrazione come il progetto è iniziato con l'implementazione di direttamente CouchDB. Serve come un database che memorizza i dati di un singolo prodotto elettronico, dall'inizio fino al confezionamento.

Dato che stiamo vendendo sensore con una domanda sui elevata precisione, ci facciamo un sacco di test a fase diversa e tutti questi saranno conservati in un unico documento su CouchDB.

C'è una certa curva di apprendimento che ho imparato dalla mia esperienza, che è quello di fare pieno uso dei punti di vista (o anche conosciuto come viste permanenti). Vista dovrebbero essere "piccolo filtro" di una frazione del database che verrà chiamato spesso.

Il mio databse CouchDB non è così folle come altra società gigantesca. Ma finora, sto ancora facendo bene. Attualmente sto avendo 24000 documenti a 700MB.

Feature da CouchDB che mi piace è 'replica', 'memorizzare le revisioni di un documento.

Ho letto un sacco di buone recensioni su MongoDB e io voglio provare se c'è una possibilità.

Stiamo usando MongoDB in produzione per

www.beachfront.io - vicino a 5K richiesta di scrittura per sec www.beachfrontbuilder.com -. 500 di lettura / richiesta di scrittura per sec, mantenere gli utenti 10m dati e OLAP

L'unica sfida affrontata intorno archiviazione dei dati, superiamo implementando il nostro componente personalizzato.

Questa domanda ha già accettato risposta, ma ora un giorno ancora una NoSQL DB è in tendenza per molte delle sue grandi caratteristiche. È Couchbase; che viene eseguito come CouchbaseLite su piattaforma mobile e Couchbase Server sul lato server.

Ecco alcune delle caratteristiche principali di Couchbase Lite.

Couchbase Lite è un peso leggero, motore di database sincronizzabili documento-oriented (NoSQL), adatto per l'incorporamento in applicazioni mobili.

mezzi leggeri:

Embedded-il motore di database è una libreria collegata in app, non è un processo server separato. Piccolo codice dimensione importante per applicazioni mobili, che sono spesso scaricati su reti cellulari. tempo importante di avvio rapido, perché i dispositivi mobili hanno le CPU relativamente lenti. insiemi di dati mobili di utilizzo tipica bassa di memoria sono relativamente piccole, ma alcuni documenti potrebbero avere grandi allegati multimediali. Le buone figure di spettacolo-esatti dipendono i dati e le applicazioni, ovviamente.

documento orientato mezzi:

Negozi record in formato JSON flessibile invece di richiedere schemi predefiniti o la normalizzazione. I documenti possono essere allegati binari arbitrari dimensioni, quali contenuti multimediali. formato dei dati applicazione può evolvere nel tempo senza necessità di migrazioni espliciti. MapReduce indicizzazione fornisce ricerche veloci, senza bisogno di utilizzare linguaggi di query speciali.

sincronizzabili significa:

Ogni due copie di un database possono essere portati in sincronia tramite un algoritmo efficiente, affidabile, collaudata replica. Sincronizzazione può essere on-demand o continuo (con una latenza di pochi secondi). I dispositivi possono sincronizzare con un sottoinsieme di un database di grandi dimensioni su un server remoto. Il motore di sincronizzazione supporta connessioni di rete intermittenti e inaffidabile. Conflitti possono essere rilevati e risolti, con logica applicazione nel pieno controllo di fusione. alberi di revisione consentono topologie di replica complessi, tra cui server-to-server (per più data center) e peer-to-peer, senza perdita di dati o falsi conflitti. Couchbase Lite fornisce le API native per iOS senza soluzione di continuità (Objective-C) e Android di sviluppo (Java). Inoltre, include il Couchbase Lite Plug-in per PhoneGap, che consente di creare iOS e applicazioni Android che si sviluppano utilizzando familiari tecniche di programmazione web-applicazione e il quadro di sviluppo mobile PhoneGap.

È possibile esplorare più su Couchbase Lite

Couchbase Server

Questo sta per la prossima grande cosa.

A proposito di produzione, senza soluzione di continuità di failover / ripristino sia bisogno di una baby sitter
1- Couchbase, non v'è senza soluzione di continuità di failover / ripristino, è necessario un intervento manuale.
riequilibrio richiede troppo tempo, troppo rischio, se più di un nodo perdersi.

2- Mongo con schegge, il recupero dei dati da perdere un server di configurazione, non è un compito facile

Adobe sta usando MongoDB per il loro imminente rilascio di Adobe Experience Manager (ex Day CQ ) come il motore principale di DB.

Diversi cliente di presso l'agenzia di lavoro presso stanno utilizzando CouchDB a progetti per grandi clienti.

Entrambi sono grandi e vitale DB, a mio parere. :)

Ecco un elenco dei siti produttivi schierato con MongoDB

  • The New Yorks tempi : Usandolo in un modulo di domanda di costruzione per la presentazione di foto. mancanza di schema di Mongo dà ai produttori la possibilità di definire qualsiasi combinazione di campi modulo personalizzato.
  • SourceForge :. Viene utilizzato per la memorizzazione di back-end sulle prime pagine di SourceForge anteriori, pagine di progetto, e le pagine di download per tutti i progetti
  • Bit.ly
  • Etsy
  • IGN :. I poteri di IGN in tempo reale analisi del traffico e le API Content RESTful
  • Justin.tv :. Poteri strumenti di analisi interne di Justin.tv per viralità, fidelizzazione degli utenti, e le statistiche generali di utilizzo che out-of-the-box soluzioni non possono fornire
  • Posterous
  • Intuit
  • Foursquare :. Database sharded Mongo sono utilizzati per la maggior parte dei dati a foursquare
  • Business Insider :. Usandolo dall'inizio del 2008. Tutti i dati del sito, inclusi i messaggi, i commenti e anche le immagini, vengono memorizzate su MongoDB
  • Github :. Viene utilizzato per un'applicazione di reporting interno
  • Examiner :. Migrato il proprio sito da Cold Fusion e SQL Server per Drupal 7 e MongoDB
  • Grooveshark :. Utilizza attualmente Mongo per gestire più di un milione di sessioni utente unici al giorno
  • Buzzfeed
  • Discus
  • Evite :. Usato per l'analisi e la segnalazione rapida
  • Squarespace
  • Shutterfly : viene utilizzato per diverse esigenze di storage dei dati persistenti all'interno Shutterfly. MongoDB aiuta a Shutterfly costruire un servizio senza eguali che permette profonde, relazioni più personali tra i clienti e coloro che contano di più nella loro vita.
  • Topsy
  • ShareThis
  • Mongohq : fornisce una piattaforma di hosting per MongoDB e utilizza anche MongoDB come il back-end per il suo servizio. La nostra pagina di centri di hosting fornisce ulteriori informazioni su MongoHQ e altre opzioni di hosting MongoDB.

e molto altro ancora ...

Estratto da: http://lineofthought.com/tools/mongodb

È possibile controllare altri database o strumenti anche lì.

MongoDB ha alcuni problemi con le licenze alle imprese, non sono sicuro dei dettagli, ma il nostro ufficio legale ci ha detto senza mezzi termini certi che non ci hanno permesso di usare MongoDB in uno qualsiasi dei nostri prodotti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top