Domanda

Sto appena iniziando a fare ricerche sulla fattibilità dell'utilizzo del servizio SimpleDB di Amazon come archivio dati per l'applicazione RoR che sto pianificando di costruire. Utilizzeremo EC2 per il server Web e avevamo pianificato di utilizzare EC2 anche per i server MySQL. Ma ora la domanda è: perché non usare SimpleDB?

L'applicazione (in caso di successo) dovrà essere molto scalabile in termini di # utenti supportati, dovrà mantenere una base di codice semplice ed efficiente e dovrà essere affidabile.

Sono curioso di sapere quali siano i pensieri delle comunità SO su questo.

È stato utile?

Soluzione

La libreria Ruby SimpleDB non è completa come ActiveRecord (l'adattatore Rails DB predefinito), quindi molte delle funzionalità a cui sei abituato non saranno presenti.

Sul lato positivo è schematico, scalabile e funziona bene con ec2.

Se hai intenzione di fare cose come la ricerca di testo completo nella tua app, SimpleDB potrebbe non essere la scelta migliore, mantieni la sphinx AR +.

Altri suggerimenti

Bene, considerando che un DB semplice non usa SQL, o addirittura ha tabelle, significa che è una bestia completamente diversa da MySQL e altre cose basate su SQL ( http://aws.amazon.com/simpledb/ ). Non ci sono vincoli, trigger o join. Buona fortuna.

Ecco un modo per metterlo in funzione: http://developer.amazonwebservices.com/connect/entry.jspa?externalID= 1242 (tramite http://rubyforge.org/projects/aws-sdb/ )

Suppongo che se non avrai mai bisogno di interrogare i dati al di fuori dei binari, allora SimpleDB potrebbe rivelarsi OK. Ma poiché non si tratta di un DB supportato di prima classe, è probabile che si verifichino bug difficili da correggere. Non vorrei eseguire un'app di binari di produzione in un backend semi-beta.

Per me questo sembra, " Ehi, ci sono questi strumenti accurati là fuori, dovrei andare a costruire un progetto usando loro, " piuttosto che effettivamente bisogno di utilizzare questi strumenti specifici. Forse sto solo facendo il furbo, ma sembra un classico caso di ottimizzazione prematura. Stai tentando di utilizzare un servizio esterno che costa denaro per un'app che non è nemmeno stata ancora scritta e non dici di avere un pubblico garantito o uno che si ridurrà necessariamente a un livello che lo garantisce.

" L'applicazione (in caso di successo) dovrà essere molto scalabile in termini di # utenti supportati " ;, seriamente, che descrive metà di Internet. È il " in caso di successo " parte che è davvero la domanda. Concentrati sulla creazione dell'applicazione in modo rapido e semplice. Il modo più semplice per farlo è usare ROR in quanto è out-of-the-box per così dire. Associarlo a un database, utilizzare ActiveRecord e ottenere qualcosa creato e attirare gli utenti.

In effetti, andrò oltre e dirò che EC2 è piuttosto costoso per sempre sui server. Distribuiscilo su Slicehost o su un'altra soluzione ospitata e poi spostalo su EC2 se necessario per supportare la domanda.

Io stesso sono molto interessato a questo argomento. In questo momento sono su un cloud computing alto, quindi direi di andare con SimpleDB poiché probabilmente scalerà meglio nel senso che avrai un'alta disponibilità, ma sono solo i miei pensieri al momento. Non ancora per esperienza.

Modifica: è vero che SimpleDB non ha caratteristiche normali a " normal " database, ma dovrebbe fare il trucco se hai solo bisogno di un semplice livello CRUD per lavorare, che è il mio caso

Esiste una libreria chiamata SimpleRecord che sostituisce ActiveRecord, ma usa SimpleDB come suo archivio dati back-end.

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