O que você precisa levar em consideração quando decidir entre MySQL e SimpleDB da Amazon para um aplicativo de RoR?

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

Pergunta

Eu estou apenas começando a fazer pesquisas sobre a viabilidade do uso de serviço SimpleDB da Amazon como o armazenamento de dados para aplicação RoR estou planejando construir. Nós estaremos usando EC2 para o servidor web, e tinha planejado também EC2 uso para os servidores MySQL. Mas agora a pergunta é, por que não usar SimpleDB?

A aplicação vai (se bem sucedida) necessidade de ser muito escalável em termos de # de usuários suportados, terá de manter um simples e base de código eficiente, e terão de ser confiável.

Estou curioso para saber o que os pensamentos comunidades para se sobre este assunto.

Foi útil?

Solução

A biblioteca Ruby SimpleDB não é tão completa quanto ActiveRecord (o padrão Rails adaptador DB), então muitas das características que você está acostumado não vai estar lá.

No plus lado É sem esquema, escalável e funciona bem com o EC2.

Se você estiver indo para fazer coisas como pesquisa de texto completo em seu aplicativo, em seguida, SimpleDB pode não ser a melhor escolha, vara com AR + esfinge.

Outras dicas

Bem, considerando simples DB não usa SQL, ou mesmo ter tabelas, significa que é uma besta completamente diferente do MySQL e outras coisas baseadas em SQL ( http://aws.amazon.com/simpledb/ ). Não há restrições, gatilhos, ou junta. Boa sorte.

Aqui está uma maneira de consegui-lo instalado e funcionando: http://developer.amazonwebservices.com/connect/entry.jspa?externalID= 1242 (Via http://rubyforge.org/projects/aws-sdb/ )

Suponho que se você nunca vai necessidade de consultar o exterior de dados de trilhos, em seguida, SimpleDB pode vir a ser OK. Mas, como não é uma primeira classe suportado DB, é provável que você topar com erros que são difíceis de corrigir. Eu não quero correr uma produção trilhos aplicativo em um backend semi-beta.

Para mim, isso só se sente como, "Hey existem essas ferramentas legais lá fora, eu deveria ir construir um projeto de usá-los", ao invés de realmente precisar usar essas ferramentas específicas. Talvez eu esteja apenas sendo mal-humorada, mas parece que um caso clássico de otimização prematura. Você está tentando usar um serviço externo que os custos de dinheiro para um aplicativo que não está mesmo escrito ainda, e você não diz que você tem uma audiência garantida ou aquele que vai necessariamente escala a um nível que garante que.

"A aplicação vai (se bem sucedida) necessidade de ser muito escalável em termos de # de usuários suportados", a sério, que descreve a metade da Internet. É a parte "se bem sucedida" que é realmente a questão. Basta concentrar-se em construir a aplicação rápida e fácil. A maneira mais fácil de fazer isso é usar apenas ROR como é out-of-the-box por assim dizer. Pá-lo com um banco de dados, usar ActiveRecord e obter algo construído e usuários atraindo.

Na verdade, eu vou ir mais longe e dizer que EC2 é bastante caro para sempre em servidores. Implantá-lo mais em Slicehost ou outra solução hospedada e, em seguida, movê-lo para EC2 se você precisa, a fim de sustentar a procura.

Eu mesmo estou muito interessado neste tópico. Agora eu estou em uma nuvem de computação de alto então eu diria que ir com SimpleDB, uma vez que provavelmente vai dimensionar melhor no sentido de que você vai ter alta disponibilidade, mas isso é apenas o meu pensamento a partir do momento. Não da experiência ainda.

Edit: É verdade que SimpleDB não tem características normais de um banco de dados "normal", mas deve fazer o truque se você só precisa de uma camada de CRUD simples para trabalhar contra, que é o meu caso

Há uma biblioteca chamada SimpleRecord que é uma gota no substituto para ActiveRecord, mas usa SimpleDB como seu backend armazenamento de dados.

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