Quatro Add-ons NoSQL para os usuários do Heroku
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.
Conteúdo educacional
Lean na Globo.com
Bernardo Heynemann 24 Mai, 2013
Mobilidade: Frameworks, SOs e o Mercado
Ricardo Ogliari 23 Mai, 2013
Caminhos de uma estratégia mobile
Sérgio Lopes 23 Mai, 2013
Complexidade organizacional no Século 21
Alexandre Magno 16 Mai, 2013

Olá visitante
Você precisa cadastrar-se no InfoQ Brasil ou Login para enviar comentários. Há muitas vantagens em se cadastrar.Obtenha o máximo da experiência do InfoQ Brasil.
Dê sua opinião