Was brauchen Sie zu berücksichtigen, wenn sie für eine RoR app zwischen MySQL und Amazon SimpleDB entscheiden?

StackOverflow https://stackoverflow.com/questions/163275

Frage

Ich bin erst am Anfang der Forschung in die Machbarkeit tun von Amazon SimpleDB Service als Datenspeicher für RoR Anwendung ich zu bauen bin die Planung. Wir werden EC2 für den Web-Server verwenden, und hatten auch geplant, EC2 für den MySQL-Server zu verwenden. Aber jetzt ist die Frage, warum nicht SimpleDB verwenden?

Die Anwendung wird (wenn erfolgreich) in Bezug auf die Anzahl der Benutzer sehr skalierbar sein müssen unterstützt werden, müssen eine einfache und effiziente Codebasis halten und müssen zuverlässig sein.

Ich bin neugierig, was die SO Gemeinden Gedanken zu diesem Thema.

War es hilfreich?

Lösung

Die Bibliothek Rubin SimpleDB ist nicht so vollständig wie Activerecord (der Standard-Schienen DB-Adapter), so viele der Funktionen, die Sie verwendet wird nicht da sein.

Auf der positiven Seite ist es schemaless, skalierbar und arbeitet gut mit EC2.

Wenn Sie vorhaben, Dinge wie Volltextsuche in Ihrer Anwendung tun, dann könnte SimpleDB nicht die beste Wahl sein, Stick mit AR + Sphinx.

Andere Tipps

Nun, einfach DB unter Berücksichtigung nicht SQL nicht verwendet, oder auch Tabellen haben, bedeutet, dass es ein ganz anderes Tier ist als MySQL und andere SQL-basierten Dinge ( http://aws.amazon.com/simpledb/ ). Es gibt keine Einschränkungen, Trigger oder verbindet. Viel Glück.

Hier ist ein Weg, um es zu bekommen und läuft: http://developer.amazonwebservices.com/connect/entry.jspa?externalID= 1242 (Via http://rubyforge.org/projects/aws-sdb/ )

Ich nehme an, wenn Sie nie die Daten außerhalb der Schienen abzufragen gehen zu müssen, dann kann SimpleDB sein OK beweisen. Aber wie es ist kein First-Class unterstützt DB, sind Sie wahrscheinlich in Fehler führen, die schwer zu beheben. Ich würde nicht eine Produktions Rails-Anwendung in einem semi-Beta-Backend ausgeführt werden soll.

Für mich fühlt sich einfach wie: „Hey gibt es diese ordentlich Tools gibt, sollte ich ein Projekt mit ihnen gehen bauen“, anstatt tatsächlich benötigen diese speziellen Werkzeuge zu benutzen. Vielleicht bin ich einfach nur mürrische, aber es fühlt sich an wie ein klassischer Fall der vorzeitigen Optimierung. Sie versuchen, einen externen Service zu nutzen, das Geld für eine App kostet, die noch nicht einmal geschrieben wird und Sie nicht sagen, Sie ein garantiertes Publikum oder eine haben, die notwendigerweise auf ein Niveau skaliert, die das gewährleistet.

„Die Anwendung wird (falls erfolgreich) müssen in Bezug auf die Anzahl der Benutzer sehr skalierbar sein unterstützt“, im Ernst, das beschreibt, die Hälfte Internet. Es ist der „wenn sie erfolgreich ist“ Teil, der wirklich die Frage ist. Konzentriere die Anwendung schnell und einfach auf den Aufbau. Der einfachste Weg, dies zu tun, ist nur ROR verwenden, da es out-of-the-box ist sozusagen. In Kombination mit einer Datenbank, verwenden Sie Active und etwas gebaut und anziehende Benutzer.

In der Tat werde ich noch weiter gehen und sagen, dass EC2 ziemlich teuer ist für immer auf Servern. Bereitstellen es über auf Slicehost oder eine andere gehostete Lösung und dann zu EC2 bewegen, wenn Sie, um benötigen Nachfrage zu unterstützen.

Ich selbst bin sehr interessiert an diesem Thema. Im Moment bin ich auf einem Cloud-Computing-hoch, so würde ich sagen, mit SimpleDB gehen, da es wahrscheinlich im Sinne besser skaliert wird, dass Sie ein hohe Verfügbarkeit haben werden, aber das ist nur meine Gedanken, wie der Augenblick. Nicht aus der Erfahrung noch.

Edit: Es stimmt, dass SimpleDB keine normalen Funktionen eine „normale“ Datenbank hat, aber es sollte es tun, wenn Sie nur eine einfache CRUD Schicht müssen gegen die Arbeit, die mein Fall ist

Es gibt eine Bibliothek mit dem Namen SimpleRecord , die ein direkter Ersatz für Active ist, nutzt aber SimpleDB als Back-End-Datenspeicher.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top