BT

Quatro Add-ons NoSQL para os usuários do Heroku

por Michael Hunger , traduzido por Pedro Mariano em 27 Ago 2010 |

Os primeiros quatro bancos de dados NoSQL estão disponíveis como Add-ons para a plataforma Heroku PaaS (platform-as-a-service). Utilizando o sistema de add-ons que foi lançado em Outubro de 2009, o  CouchDB da Cloudant, o Membase da NorthScale, o MongoDB da MongoHQ e o Redis estão disponíveis para os usuários do Heroku.

O Heroku é um provedor de hospedagem para a plataforma Ruby que atualmente possui 70.000 aplicações. Entre seus principais benefícios temos o setup simples (via git), o gerenciamento de dependência e a escalabilidade transparente e fácil de suas aplicações ruby. Ele tem como base o Amazon EC2 no qual o Heroku adicionou um gerenciador de infraestrutura customizado, para servir e escalar as aplicações ruby.

O vice presidente do Heroku Oren teich assim como os contribuidores do NoSQL Add-ons nos disponibilizaram algumas informações adicionais que estão nesse artigo.

O Heroku vê os bancos de dados NoSQL como benefício para seus consumidores, especialmente para aqueles que tem problemas em lidar com grande quantidade de dados, falta de estruturação e estruturas em grafos. Outros atributos dos banco de dados NoSQL como alta disponibilidade, tolerância a falhas, escalabilidade também são diferenciais.

Devido a alta demanda de clientes o Heroku escolheu utilizar os banco de dados NoSQL. Ao mesmo tempo os vendedores de NoSQL se aproximaram da companhia, o que gerou uma "perfeita tempestade" nas palavras de Oren's.

O sistema de add-ons e o marketplace possibilitaram aos vendedores integrarem facilmente sua infraestrutura e serviços com o sistema do Heroku.

Oren citou o status atual dos add-ons NoSQL:

"O status atual dos Add-ons são diferentes. O memcache da Northscale e o Mongo da MongoHQ já estão prontos para o release de produção. O Cloudant está em beta público, o Redis To Go está em beta privado. Este status apenas diz respeito ao add-on e não ao banco de dados. Alguns desses add-ons já estão disponíveis a meses, como o Memcached da Northscale. Outros tem oferecido um programa beta bem consistente onde tivemos a oportunidade de adquirir feedback de centenas de usuários. "

Para outros Add-ons NoSQL no Heroku, a companhia gostaria que os usuários demonstrassem o seu interesse (enviando email para addons@heroku.com) para que eles possam prover a infra estrutura necessária para a integração.

Nós perguntamos a quatro provedores sobre suas experiências na integração com o Heroku, como foi feita a integração e suas funcionalidades. Outras questões abordadas são sobre suporte a migração de um banco de dados relacional assim como documentação de referência e futuros desenvolvimentos.

Todos os provedores hospedam suas próprias instâncias e apenas provêm acesso aos usuários do Heroku via interface REST ou APIs programáticas (i.e rubygems). Os Add-ons se integram ao sistema de provisionamento do Heroku fazendo com que suas aplicações escalem de forma transparente. A maioria das soluções oferecidas utilizam as funcionalidades dos próprios databases, com uma melhor tolerância a falhas e monitoramento. Para a migração de um banco de dados relacional existem ferramentas open source que podem ser utilizadas.

MongoDB da MongoHQ

Com o add-on do MongoHQ é possivel gerenciar os bancos de dados visualmente. Ele também provê backup e replicação.

A conexão com o banco de dados MongoDB é feita via MongoMapper, o mapeador de objetos ruby ou o Mongoid, um framework para objeto documento ou então com o driver do Mongo para ruby.

NorthScale Membase e Memcached

A integração com o Heroku foi simples e direta. As atualizações das instalações são transparentes ao usuário (e ao Heroku). A Northscale trabalhou em conjunto com o Heroku buscando criar uma API que estivesse de acordo com os requerimentos dos Add-Ons e que também seguisse a arquitetura do Membase. O provisionamento dos serviços é feito pelo Heroku e disponibilizado diretamente para o usuário. A Northscale também está integrada com o sistema de tickets do Heroku.

No lado do cliente, a Northscale trabalhou com Evan Weaver, o criador do Fauna um cliente ruby para o memcached, para criar comportamentos apropriados com o ambiente multi-tenant do Heroku. O Membase é compatível com o memcached, então o atual Ruby on Rails pode ser trocado transparentemente para o Membase incluindo o suporte ao ActiveRecord com o membase como store.

Atualmente cerca de 2000 usuários utilizam o Memcache Server no Heroku. O NorthScale Membase Server estará disponível como um Add-in para o Heroku ainda este mês.

Redis To Go - James Bracy

Dado que o sistema tem como base o EC2, escalar não é um problema assim como adicionar novos servidores através do sistema de provisionamento do Heroku. O monitoramento já é um pouco mais dificil. O Redis To Go utiliza um conjunto de ferramentas internas e servidores a fim de monitorar o status das instâncias do Redis e dos servidores.

O Redis To Go vem sendo utilizado por diversas aplicacões em produção. Atualmente o maior usuário é o FlightCaster. E o feedback das pessoas no Heroku tem sido bem positivo.

O add-on do Redis possui uma API para o provisionamento do serviço. Para realizar a comunicação com o Redis existe diversas opções open source. A documentação pode ser encontrada no site do redistogo.

Backups são realizados diariamente. Se você estiver utilizando a interface web você pode fazer o download dos backups diretamente. O sistema também avisa os usuários quando eles estiverem próximos de estourar a capacidade de provisionamento de uma instância.

Cloudant - Alan Hoffman

Como o Cloudant já possui experiência hospedando instâncias do CouchDB (também no EC2) a integração com o Heroku foi simples e direta. Os deploys das instâncias são controlados pelo Cloudant e o acesso aos usuários do Heroku é disponibilizado através de uma interface REST com o CouchDB.

Existem usuários do Heroku que já utilizavam o Cloudant mesmo antes do lançamento do add-on, e sempre forneceram feedback positivo.

O add-on é uma API compatível com o CouchDB 1.0. Ela provê acesso a todas as funcionalidades do CouchDB incluindo map/reduce incremental e replicação. O Cloudant adicionalmente possui um sistema de redundância; ele armazena diversas cópias de cada registro em diferentes servidores.

A ruby-gem padrão para lidar com o CouchDB é a CouchRest. Existe um um tutorial simples de como utilizar o Heroku com o CouchDB. Para integração específica com o Rails existe uma wiki com informações sobre.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT