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.

Avalie esse artigo

Relevância
Estilo/Redação

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 mensagens dessa discussão
Comentários da comunidade

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

Receber mensagens dessa discussão

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

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.