MongoDB czy CouchDB-nadające się do produkcji? [zamknięte]

Zastanawiałem się czy ktoś może mi powiedzieć czy MongoDB lub CouchDB są gotowe do produkcji środowiska.

Patrzę teraz na te rozwiązania pamięci masowej (w tej chwili faworyzuję MongoDB), jednak te projekty są dość młode, więc przewiduję, że będę musiał ciężko pracować, aby przekonać mojego menedżera, że powinniśmy przyjąć tę nową technologię.

To co chciałbym wiedzieć to:

  1. Kto korzysta MongoDB czy CouchDB dzisiaj w środowisku produkcyjnym?

  2. Jak używasz MongoDB/CouchDB?

  3. Jakie problemy (jeśli w ogóle) napotkałeś, kiedy przyjąłeś ten nowy mechanizm przechowywania (i jak je przezwyciężyłeś)?

  4. Jak poradziłeś sobie z wszelkimi problemami migracyjnymi, z którymi musiałeś się uporać?

  5. Czy masz jakieś dobre / złe doświadczenia z którymś z tych rozwiązań, którymi chciałbyś się podzielić?

Author: Alan, 2009-05-22

19 answers

Jestem CTO 10gen (deweloperzy MongoDB), więc jestem trochę stronniczy, ale zarządzam również kilkoma witrynami, które używają MongoDB w produkcji.

Businessinsider używa mongo w produkcji od ponad roku. Używają go do wszystkiego, od użytkowników i postów na blogu, po każdy obraz na stronie.

Shopwiki używa go do kilku rzeczy, w tym analizy w czasie rzeczywistym i warstwy buforowania. Robią ponad 1000 zapisów na sekundę do dość dużego baza danych.

Jeśli przejdziesz do strony wdrożenia produkcyjne mongodb zobaczysz kilka osób, które używają mongo w produkcji.

Jeśli masz jakiekolwiek pytania dotyczące skali lub zakresu wdrożeń produkcyjnych, napisz na naszą listę użytkowników, a my z przyjemnością Ci pomożemy.

 270
Author: 5 revs, 5 users 73%user111359,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-05 06:04:28

The BBC i meebo.com Użyj CouchDB w produkcji, tak jak jeden z moich klientów. Oto lista innych osób korzystających z Couch: CouchDB in the wild

Głównym wyzwaniem jest wiedzieć, jak zorganizować swoje dokumenty i przestać myśleć w kategoriach danych relacyjnych.

 111
Author: Matt Aimonetti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-18 03:22:32
 44
Author: dormsbee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-18 03:23:11

Uruchamiamy CouchDB jako zamiennik MySQL dla naszych sklepów (70.0000 pozycji/sklep, łącznie 4 miliony atrybutów wszystkich pozycji, połączenia krzyżowe między przedmiotami).

Nasze cele to:

  1. Łatwa replikacja z bazy master-db do kilku klientów z różnymi dokumentami.

  2. Szybkie wstępnie obliczone dane, takie jak "ile części mam z tym atrybutem i tym filtrem, pasujących do tych warunków"

Fakty:

    Nasze sklepy obecnie działają znacznie szybciej niż z MySQL (i mysql-baza danych potrzebne dodatkowo 1-3 dni wstępnego obliczenia (więc aktualizacja była dwa razy w miesiącu), dzięki czemu dane są gotowe do zliczania i filtrowania produktów, CouchDB potrzebuje 5 godzin, więc możemy aktualizować dane produktów co noc) {]}
  1. Konfiguracja (filtrowana) dystrybucji danych i kopii zapasowych w węzłach sklepu jest szybka i łatwa

Ale także:

  1. zrozumienie map/reduce i granic braku połączenia jest dość trudne
  2. nie operacja na danych takich jak" Usuń gdzie "lub" Aktualizuj gdzie " bez zewnętrznych programów
  3. replikacja działa dobrze, chyba że jest jakiś problem; wtedy naprawdę trudno jest dowiedzieć się, co było powodem (dla początkujących)
  4. Instalacja CouchDB bez binariów (tak, są pewne w dziczy, ale nie dla każdego OS/wersji) może być trudna, jeśli nie jesteś maniakiem Linuksa. Ale społeczność CouchDB jest pomocna (#couchdb) i na szczęście istnieją firmy (cloudant, iriscouch), które oferuj usługi od bezpłatnego do dużego biznesu.
  5. CouchDB idzie do przodu, więc dzieje się wiele zmian (ulepszeń), które mogą zmienić sposób pracy. Ale podstawowe rzeczy pozostają stabilne.

W wyniku: MySQL jako baza danych do tworzenia i utrzymywania danych jest niezawodna i łatwa do zrozumienia i obsługi. Myślę, że tego nie zmienimy. Ale nie chcę też przegapić mocy widoków CouchDB i łatwości konfiguracji replikacji.

Kanapy produkcyjne czasami powodował problemy po miesiącach pracy z powodu błędnej konfiguracji i zapomnianych logrotatów( budowanie widoku trwa zbyt długo lub zawiesza się, replikacja zatrzymuje się), ale nigdy nie stracił danych i zawsze można go łatwo zresetować.

 34
Author: okurow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-13 10:44:22

Używam CouchDB w produkcji. Obecnie przechowuje wszystkie "opcjonalne" pola, które nie były w oryginalnym schemacie DB. A teraz myślę o przeniesieniu wszystkich danych do CouchDB.

To dość ryzykowny krok, przyznaję. Po pierwsze, ponieważ nie jest to jeszcze v1. 0. A po drugie, ponieważ jest głodny. Według moich obliczeń plik CouchDB (z indeksami) jest ~30 razy większy niż baza danych MySQL z tymi samymi wierszami. Ale jestem pewien, że wszystko będzie dobrze.

 27
Author: Sergio Tulentsev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-14 00:35:54

CouchDB 0.11 (wydany pod koniec marca) to wersja freeze dla wersji 1.0. Oznacza to, że zachowamy kompatybilność z obecnym API w wersji 1.0, więc teraz jest dobry czas, aby ponownie przyjrzeć się CouchDB, jeśli tego nie zrobiłeś od jakiegoś czasu.

Wersja CouchDB 0.11 jest dostępna tutaj. istnieją binarne instalatory i inne gadżety połączone tutaj.

 18
Author: J Chris A,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-06 05:37:25

Nic nie wiem o MongoDB, ale z CouchDB FAQ :

Czy CouchDB jest gotowy do produkcji?

Tak, zobacz InTheWild po częściową listę projektów wykorzystujących CouchDB. Kolejny dobry przegląd to CouchDB Case Studies

Również kilka linków:

 17
Author: Sasha Chedygov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-16 02:28:54

Używamy couchdb w produkcji i od tego czasu tuż przed projektem poszedł pod parasol Apache.

Używamy go do przechowywania wszystkiego, co moglibyśmy użyć dbms, plus wszelkiego rodzaju nieustrukturyzowanych danych. Osobiście bardzo podoba mi się, jak możesz po prostu wrzucić do niego różnego rodzaju Dane i użyć widoków, aby usunąć to, czego nie potrzebujesz w zależności od sytuacji.

Najtrudniejszą częścią było odejście od podejścia dbms. Napisaliśmy własne utile migracji, gdy format przechowywania zmieniłem dla bezpieczeństwa, więc to nie był problem.

Nie mieliśmy jeszcze żadnych negatywnych doświadczeń, ale z drugiej strony nie mieliśmy konfiguracji pod żadnym ogromnym obciążeniem. Myślę, że wszystko będzie działać całkiem dobrze, ponieważ mamy dwa serwery typu slave, które replikują się z jednego serwera głównego, który pobiera wszystkie zapisy. Jestem prawie pewien, że nie musimy tego robić w ten sposób, aby replikacja działała poprawnie, ale tak ustawiliśmy ją na początku i utknęła.

 16
Author: clintm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-22 09:26:57

Używamy CouchDB do przechowywania mobilnych wiadomości przychodzących i wychodzących oraz do raportowania tego ruchu za pomocą niestandardowych widoków, które napisałem. Front-end jest napisany w Pythonie. Nie mieliśmy realnych problemów technicznych i działa od końca grudnia. Jedyną przeszkodą, z którą się zetknąłem, było początkowo myślenie w kategoriach MapReduce, ale kiedy nauczyłem się tego robić, wszystko inne poszło gładko.

 13
Author: Ryan Duffield,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-25 21:10:05

Obecnie używamy MongoDB w produkcji jako warstwy buforowania, a także silnika pamięci masowej do importowania produktów i manipulowania danymi produktów. Jesteśmy firmą eCommerce zarządzającą ponad dwoma milionami produktów( ponad 100 milionów atrybutów), obejmującymi ponad 10 dystrybutorów i bez MongoDB to zadanie byłoby prawie niemożliwe.

 9
Author: Joshua Burns,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-01 21:09:55

Obecnie używamy mongodb jako usługi przechowywania plików do naszej współpracy przez sieć LAN. Ponadto projekty takie jak trello używają mongodb jako magazynu danych zaplecza. Wcześniej używałem couchdb, ale nie w mocy produkcyjnej.

 1
Author: Sumit Bisht,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-06 10:40:01

Używamy MongoDB w produkcji w naszej mobilnej usłudze backendowej, mianowicie Netmera. używamy go do przechowywania wszystkich danych użytkownika i treści.

 0
Author: Parvin Gasimzade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-25 11:25:01

Używam CouchDB w produkcji od prawie 2 lat. Nie ma żadnych prac migracyjnych, ponieważ projekt rozpoczął się bezpośrednio z implementacją CouchDB. Służy jako baza danych, która przechowuje dane pojedynczego produktu elektronicznego od początku do opakowania.

Ponieważ sprzedajemy czujnik z wymaganiem wysokiej dokładności, wykonujemy wiele testów na różnych etapach i wszystkie te będą przechowywane w jednym dokumencie na CouchDB.

Jest jakaś krzywa uczenia się, której nauczyłem się od mojego doświadczenie, czyli pełne wykorzystanie widoków (lub znanych również jako stałe widoki). Widoki powinny być "małym filtrem" ułamka bazy danych, który będzie często wywoływany.

Moja baza danych CouchDB nie jest tak szalona jak inne gigantyczne firmy. Ale jak na razie, nadal dobrze mi idzie. Obecnie mam 24000 dokumentów po 700MB.

Funkcja z CouchDB, która mi się podoba, to "replikacja", "przechowywanie wersji dokumentu".

Przeczytałbym dużo dobrych recenzji na MongoDB i będę chciał spróbuj, jeśli jest szansa.

 0
Author: Nicholas TJ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-28 08:54:39

Używamy mongodb w produkcji dla

Www.beachfront.io -blisko 5K żądanie zapisu na sekundę www.beachfrontbuilder.com -500 żądanie odczytu/zapisu na sekundę, utrzymanie danych użytkowników 10M & olap.

Jedynym wyzwaniem stojącym przed archiwizacją danych jest wdrożenie naszego niestandardowego komponentu.

 0
Author: Udit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-22 08:18:23

To pytanie już zaakceptowało odpowiedź, ale teraz jeden dzień więcej NoSQL DB jest w trendzie dla wielu jego wspaniałych funkcji. Jest to Couchbase; który działa jako CouchbaseLite na platformie mobilnej i Couchbase Server Po stronie serwera.

Oto niektóre z głównych cech Couchbase Lite.

Couchbase Lite to lekki, zorientowany na dokumenty (NoSQL), synchronizowany silnik bazy danych, Odpowiedni do osadzania w aplikacjach mobilnych.

Lightweight oznacza:

Embedded-baza danych silnik jest biblioteką połączoną z aplikacją, a nie oddzielnym procesem serwera. Mały rozmiar kodu-ważny dla aplikacji mobilnych, które często są pobierane przez sieci komórkowe. Szybki czas uruchamiania-ważne, ponieważ urządzenia mobilne mają stosunkowo wolne Procesory. Niskie zużycie pamięci-typowe mobilne zestawy danych są stosunkowo małe, ale niektóre dokumenty mogą mieć duże załączniki multimedialne. Dobra wydajność-dokładne dane zależą oczywiście od Twoich danych i aplikacji.

Zorientowane na dokumenty oznacza:

Przechowuje rekordy w elastycznym formacie JSON zamiast wymagać predefiniowanych schematów lub normalizacji. Dokumenty mogą zawierać załączniki binarne o dowolnych rozmiarach, takie jak treści multimedialne. Format danych aplikacji może ewoluować w czasie bez potrzeby jawnej migracji. Indeksowanie MapReduce zapewnia szybkie wyszukiwanie bez konieczności używania specjalnych języków zapytań.

Zsynchronizowane oznacza:

Dowolne dwie kopie bazy danych można zsynchronizować za pomocą wydajnego, niezawodny, sprawdzony algorytm replikacji. Synchronizacja może być na żądanie lub ciągła(z opóźnieniem kilku sekund). Urządzenia mogą synchronizować się z podzbiorem dużej bazy danych na zdalnym serwerze. Silnik synchronizacji obsługuje przerywane i zawodne połączenia sieciowe. Konflikty można wykrywać i rozwiązywać, a logika aplikacji ma pełną kontrolę nad scalaniem. Drzewa rewizji pozwalają na stosowanie złożonych topologii replikacji, w tym server-to-server (dla wielu centrów danych) i peer-to-peer, bez utraty danych lub fałszerstw konflikty. Couchbase Lite zapewnia natywne interfejsy API do bezproblemowego tworzenia systemów iOS (Objective-C) i Android (Java). Ponadto zawiera wtyczkę Couchbase Lite dla PhoneGap, która umożliwia tworzenie aplikacji na iOS i Androida, które można tworzyć przy użyciu znanych technik programowania aplikacji internetowych oraz platformy PhoneGap mobile development framework.

Możesz dowiedzieć się więcej na Couchbase Lite

I Couchbase Server

To idzie do następnego wielkiego rzecz.

 0
Author: Master,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-20 06:22:43

Produkcja mówienia, bezproblemowe przełączanie awaryjne / odzyskiwanie wymaga Opiekunki
1-Couchbase, nie ma bezproblemowego przełączania awaryjnego/odzyskiwania, wymagana jest ręczna interwencja.
równoważenie zajmuje zbyt dużo czasu, zbyt duże ryzyko, jeśli więcej niż jeden węzeł zostanie utracony.

2-Mongo z odłamkami, odzyskiwanie danych po utracie serwera konfiguracyjnego, nie jest łatwym zadaniem

 0
Author: Muayad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-28 19:35:41

Adobe używa MongoDB w nadchodzącym wydaniu Adobe Experience Manager (dawniej Day CQ) jako podstawowego silnika DB.

Kilku klientów w agencji, w której pracuję, używa CouchDB w projektach dla dużych klientów.

Oba są świetne i realne DBs, moim zdaniem. :)

 0
Author: Andrei,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-18 03:25:06

Oto lista wdrożonych witryn produkcyjnych z mongoDB

  • The New Yorks Times : wykorzystanie go w aplikacji do tworzenia formularzy do nadsyłania zdjęć. Brak schematu Mongo daje producentom możliwość definiowania dowolnej kombinacji niestandardowych pól formularza.
  • SourceForge : jest używany do przechowywania back-end na pierwszych stronach SourceForge, stronach projektu i stronach pobierania dla wszystkich projekty.
  • Bit.ly
  • Etsy
  • IGN: obsługuje analitykę ruchu w czasie rzeczywistym i interfejsy API zawartości RESTful.
  • Justin.tv : uprawnienia Justin.tv wewnętrzne narzędzia analityczne do wirusowości, retencji użytkowników i ogólnych statystyk użytkowania, których nie są w stanie zapewnić gotowe rozwiązania.
  • Posterous
  • Intuit
  • Foursquare : bazy Sharded Mongo są używane dla większości danych w foursquare.
  • Business Insider : korzystanie z niego od początku 2008 roku. Wszystkie dane witryny, w tym posty, komentarze, a nawet obrazy, są przechowywane w MongoDB.
  • Github : jest używany do wewnętrznej aplikacji raportującej.
  • Examiner : przenieśli swoją stronę z Cold Fusion i SQL Server na Drupal 7 i MongoDB.
  • Grooveshark: obecnie używa Mongo do zarządzania ponad milionem unikalnych sesji użytkownika na dzień.
  • Buzzfeed
  • Discus
  • Evite : służy do analizy i szybkiego raportowania.
  • Squarespace
  • Shutterfly : jest używany do różnych stałych wymagań przechowywania danych w Shutterfly. MongoDB pomaga Shutterfly zbudować bezkonkurencyjną usługę, która umożliwia głębsze, bardziej osobiste relacje między klientami a tymi, którzy mają największe znaczenie w ich życia.
  • Topsy
  • Sharethis
  • Mongohq : zapewnia platformę hostingową dla MongoDB, a także używa MongoDB jako zaplecza dla swojej usługi. Nasza strona centrów hostingowych zawiera więcej informacji o MongoHQ i innych opcjach hostingu MongoDB.

I nie tylko...

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

Możesz tam również sprawdzić inne bazy danych lub narzędzia.

 -2
Author: fernandopasik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-05 06:41:08

MongoDB ma pewne problemy z licencjonowaniem dla firm, nie jestem pewien szczegółów, ale nasz dział prawny nie powiedział nam w pewnych warunkach, że nie wolno nam używać MongoDB w żadnym z naszych produktów.

 -6
Author: Mike Carr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-23 16:41:59